summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore8
-rw-r--r--CONTRIBUTING.md16
-rw-r--r--COPYRIGHT.txt2
-rw-r--r--SConstruct5
-rw-r--r--core/bind/core_bind.cpp12
-rw-r--r--core/bind/core_bind.h4
-rw-r--r--core/class_db.cpp18
-rw-r--r--core/crypto/crypto.cpp14
-rw-r--r--core/crypto/crypto.h6
-rw-r--r--core/error_macros.h8
-rw-r--r--core/hash_map.h18
-rw-r--r--core/image.cpp22
-rw-r--r--core/input/gamecontrollerdb.txt57
-rw-r--r--core/input/input_map.cpp8
-rw-r--r--core/input/input_map.h4
-rw-r--r--core/io/dtls_server.cpp5
-rw-r--r--core/io/packet_peer_dtls.cpp5
-rw-r--r--core/math/a_star.cpp14
-rw-r--r--core/math/basis.cpp214
-rw-r--r--core/math/basis.h13
-rw-r--r--core/math/expression.cpp4
-rw-r--r--core/object.cpp18
-rw-r--r--core/object.h1
-rw-r--r--core/os/os.cpp10
-rw-r--r--core/os/os.h4
-rw-r--r--core/resource.cpp17
-rw-r--r--core/ustring.cpp31
-rw-r--r--core/variant_call.cpp12
-rw-r--r--core/variant_parser.cpp79
-rw-r--r--doc/classes/AStar.xml3
-rw-r--r--doc/classes/AStar2D.xml3
-rw-r--r--doc/classes/Array.xml10
-rw-r--r--doc/classes/AudioEffectRecord.xml1
-rw-r--r--doc/classes/Dictionary.xml8
-rw-r--r--doc/classes/DisplayServer.xml66
-rw-r--r--doc/classes/File.xml35
-rw-r--r--doc/classes/FileDialog.xml8
-rw-r--r--doc/classes/Image.xml2
-rw-r--r--doc/classes/InputMap.xml2
-rw-r--r--doc/classes/KinematicBody2D.xml2
-rw-r--r--doc/classes/Label.xml2
-rw-r--r--doc/classes/Light3D.xml18
-rw-r--r--doc/classes/LineEdit.xml20
-rw-r--r--doc/classes/Material.xml2
-rw-r--r--doc/classes/Node.xml5
-rw-r--r--doc/classes/OS.xml2
-rw-r--r--doc/classes/Object.xml1
-rw-r--r--doc/classes/OmniLight3D.xml2
-rw-r--r--doc/classes/PhysicsMaterial.xml2
-rw-r--r--doc/classes/PhysicsServer2D.xml18
-rw-r--r--doc/classes/RigidBody2D.xml7
-rw-r--r--doc/classes/RigidBody3D.xml7
-rw-r--r--doc/classes/Skeleton3D.xml39
-rw-r--r--doc/classes/SpotLight3D.xml2
-rw-r--r--doc/classes/String.xml14
-rw-r--r--doc/classes/SubViewportContainer.xml1
-rw-r--r--doc/classes/TileSet.xml2
-rw-r--r--doc/translations/classes.pot2
-rw-r--r--doc/translations/fr.po2
-rw-r--r--drivers/unix/os_unix.cpp16
-rw-r--r--drivers/unix/os_unix.h4
-rw-r--r--editor/code_editor.cpp9
-rw-r--r--editor/create_dialog.cpp57
-rw-r--r--editor/debugger/editor_debugger_inspector.cpp10
-rw-r--r--editor/debugger/editor_debugger_inspector.h1
-rw-r--r--editor/doc_data.cpp11
-rw-r--r--editor/doc_data.h7
-rw-r--r--editor/editor_audio_buses.cpp13
-rw-r--r--editor/editor_audio_buses.h1
-rw-r--r--editor/editor_export.cpp19
-rw-r--r--editor/editor_export.h2
-rw-r--r--editor/editor_help.cpp67
-rw-r--r--editor/editor_node.cpp18
-rw-r--r--editor/editor_properties.cpp156
-rw-r--r--editor/editor_properties.h3
-rw-r--r--editor/import/editor_scene_importer_gltf.cpp137
-rw-r--r--editor/import/editor_scene_importer_gltf.h22
-rw-r--r--editor/import/resource_importer_texture.cpp7
-rw-r--r--editor/import/resource_importer_texture.h1
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp53
-rw-r--r--editor/plugins/canvas_item_editor_plugin.h1
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp64
-rw-r--r--editor/plugins/node_3d_editor_plugin.h4
-rw-r--r--editor/plugins/script_editor_plugin.cpp1
-rw-r--r--editor/plugins/skeleton_3d_editor_plugin.cpp288
-rw-r--r--editor/plugins/skeleton_3d_editor_plugin.h40
-rw-r--r--editor/project_export.cpp1
-rw-r--r--editor/project_manager.cpp4
-rw-r--r--editor/property_editor.cpp29
-rw-r--r--editor/property_editor.h2
-rw-r--r--editor/scene_tree_dock.cpp4
-rw-r--r--editor/translations/af.po110
-rw-r--r--editor/translations/ar.po842
-rw-r--r--editor/translations/bg.po111
-rw-r--r--editor/translations/bn.po129
-rw-r--r--editor/translations/ca.po370
-rw-r--r--editor/translations/cs.po208
-rw-r--r--editor/translations/da.po119
-rw-r--r--editor/translations/de.po319
-rw-r--r--editor/translations/de_CH.po12956
-rw-r--r--editor/translations/editor.pot93
-rw-r--r--editor/translations/el.po142
-rw-r--r--editor/translations/eo.po129
-rw-r--r--editor/translations/es.po183
-rw-r--r--editor/translations/es_AR.po158
-rw-r--r--editor/translations/et.po572
-rw-r--r--editor/translations/eu.po739
-rw-r--r--editor/translations/fa.po115
-rw-r--r--editor/translations/fi.po165
-rw-r--r--editor/translations/fil.po93
-rw-r--r--editor/translations/fr.po333
-rw-r--r--editor/translations/ga.po104
-rw-r--r--editor/translations/he.po211
-rw-r--r--editor/translations/hi.po119
-rw-r--r--editor/translations/hr.po99
-rw-r--r--editor/translations/hu.po128
-rw-r--r--editor/translations/id.po182
-rw-r--r--editor/translations/is.po93
-rw-r--r--editor/translations/it.po404
-rw-r--r--editor/translations/ja.po172
-rw-r--r--editor/translations/ka.po105
-rw-r--r--editor/translations/ko.po154
-rw-r--r--editor/translations/lt.po105
-rw-r--r--editor/translations/lv.po1025
-rw-r--r--editor/translations/mi.po93
-rw-r--r--editor/translations/ml.po93
-rw-r--r--editor/translations/mr.po93
-rw-r--r--editor/translations/ms.po93
-rw-r--r--editor/translations/nb.po156
-rw-r--r--editor/translations/nl.po147
-rw-r--r--editor/translations/or.po93
-rw-r--r--editor/translations/pl.po148
-rw-r--r--editor/translations/pr.po104
-rw-r--r--editor/translations/pt_BR.po206
-rw-r--r--editor/translations/pt_PT.po170
-rw-r--r--editor/translations/ro.po121
-rw-r--r--editor/translations/ru.po184
-rw-r--r--editor/translations/si.po96
-rw-r--r--editor/translations/sk.po751
-rw-r--r--editor/translations/sl.po127
-rw-r--r--editor/translations/sq.po117
-rw-r--r--editor/translations/sr_Cyrl.po3470
-rw-r--r--editor/translations/sr_Latn.po100
-rw-r--r--editor/translations/sv.po268
-rw-r--r--editor/translations/ta.po93
-rw-r--r--editor/translations/te.po93
-rw-r--r--editor/translations/th.po206
-rw-r--r--editor/translations/tr.po219
-rw-r--r--editor/translations/uk.po211
-rw-r--r--editor/translations/ur_PK.po107
-rw-r--r--editor/translations/vi.po115
-rw-r--r--editor/translations/zh_CN.po222
-rw-r--r--editor/translations/zh_HK.po115
-rw-r--r--editor/translations/zh_TW.po5883
-rw-r--r--main/main.cpp8
-rw-r--r--main/tests/test_basis.cpp325
-rw-r--r--main/tests/test_basis.h40
-rw-r--r--main/tests/test_main.cpp6
-rw-r--r--methods.py11
-rw-r--r--modules/assimp/editor_scene_importer_assimp.cpp11
-rw-r--r--modules/assimp/import_state.h3
-rw-r--r--modules/dds/texture_loader_dds.cpp10
-rw-r--r--modules/denoise/config.py8
-rw-r--r--modules/gdnative/gdnative_api.json6873
-rw-r--r--modules/gdnative/gdnative_builders.py11
-rw-r--r--modules/gdnative/include/nativescript/godot_nativescript.h73
-rw-r--r--modules/gdnative/nativescript/godot_nativescript.cpp14
-rw-r--r--modules/gdnative/nativescript/nativescript.cpp2
-rw-r--r--modules/gdnative/nativescript/nativescript.h18
-rw-r--r--modules/gdscript/gdscript_editor.cpp8
-rw-r--r--modules/gdscript/gdscript_parser.cpp15
-rw-r--r--modules/gdscript/language_server/gdscript_extend_parser.cpp1
-rw-r--r--modules/gdscript/language_server/gdscript_language_protocol.cpp13
-rw-r--r--modules/gdscript/language_server/gdscript_language_protocol.h6
-rw-r--r--modules/gdscript/language_server/gdscript_language_server.cpp1
-rw-r--r--modules/gdscript/language_server/gdscript_text_document.cpp1
-rw-r--r--modules/gdscript/language_server/gdscript_workspace.cpp13
-rw-r--r--modules/mono/build_scripts/godot_tools_build.py4
-rw-r--r--modules/mono/build_scripts/mono_configure.py11
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Client.cs23
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.IdeMessaging/GodotTools.IdeMessaging.csproj2
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Peer.cs48
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Requests/Requests.cs13
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/GodotTools.OpenVisualStudio.csproj12
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/Program.cs270
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs6
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectUtils.cs15
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.sln6
-rw-r--r--modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs33
-rw-r--r--modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj2
-rw-r--r--modules/mono/editor/GodotTools/GodotTools/Ides/MessagingServer.cs11
-rw-r--r--modules/mono/utils/mono_reg_utils.cpp1
-rw-r--r--modules/regex/SCsub2
-rw-r--r--modules/regex/doc_classes/RegEx.xml3
-rw-r--r--modules/regex/doc_classes/RegExMatch.xml2
-rw-r--r--modules/webrtc/doc_classes/WebRTCPeerConnection.xml2
-rw-r--r--platform/android/export/export.cpp32
-rw-r--r--platform/android/java/app/AndroidManifest.xml3
-rw-r--r--platform/javascript/display_server_javascript.cpp4
-rw-r--r--platform/javascript/dom_keys.inc587
-rw-r--r--platform/javascript/javascript_main.cpp12
-rw-r--r--platform/linuxbsd/display_server_x11.cpp119
-rw-r--r--platform/linuxbsd/display_server_x11.h6
-rw-r--r--platform/osx/display_server_osx.h6
-rw-r--r--platform/osx/display_server_osx.mm152
-rw-r--r--platform/osx/export/export.cpp119
-rw-r--r--platform/uwp/export/export.cpp18
-rw-r--r--platform/uwp/os_uwp.cpp21
-rw-r--r--platform/windows/display_server_windows.cpp137
-rw-r--r--platform/windows/display_server_windows.h6
-rw-r--r--platform/windows/os_windows.cpp73
-rw-r--r--platform/windows/os_windows.h4
-rw-r--r--scene/2d/camera_2d.cpp8
-rw-r--r--scene/2d/joints_2d.cpp12
-rw-r--r--scene/2d/path_2d.cpp6
-rw-r--r--scene/2d/path_2d.h2
-rw-r--r--scene/2d/physics_body_2d.cpp20
-rw-r--r--scene/3d/path_3d.cpp6
-rw-r--r--scene/3d/path_3d.h2
-rw-r--r--scene/3d/physics_body_3d.cpp20
-rw-r--r--scene/3d/skeleton_3d.cpp14
-rw-r--r--scene/3d/skeleton_3d.h14
-rw-r--r--scene/animation/animation_player.cpp2
-rw-r--r--scene/gui/file_dialog.cpp5
-rw-r--r--scene/gui/line_edit.cpp4
-rw-r--r--scene/gui/rich_text_label.cpp14
-rw-r--r--scene/gui/tab_container.cpp45
-rw-r--r--scene/gui/tab_container.h1
-rw-r--r--scene/gui/tree.cpp21
-rw-r--r--scene/main/canvas_item.cpp4
-rw-r--r--scene/main/node.cpp61
-rw-r--r--scene/resources/default_theme/default_theme.cpp2
-rw-r--r--scene/resources/default_theme/icon_file.pngbin0 -> 183 bytes
-rw-r--r--scene/resources/default_theme/theme_data.h4
-rw-r--r--scene/resources/packed_scene.cpp3
-rw-r--r--scene/resources/shader.cpp2
-rw-r--r--scene/resources/visual_shader.cpp2
-rw-r--r--servers/display_server.cpp33
-rw-r--r--servers/display_server.h17
-rw-r--r--servers/physics_2d/broad_phase_2d_basic.cpp4
-rw-r--r--servers/physics_2d/joints_2d_sw.cpp16
-rw-r--r--servers/physics_2d/joints_2d_sw.h4
-rw-r--r--servers/physics_2d/physics_server_2d_sw.cpp4
-rw-r--r--servers/physics_2d/physics_server_2d_sw.h4
-rw-r--r--servers/physics_2d/physics_server_2d_wrap_mt.h4
-rw-r--r--servers/physics_2d/space_2d_sw.cpp8
-rw-r--r--servers/physics_3d/broad_phase_3d_basic.cpp4
-rw-r--r--servers/physics_3d/space_3d_sw.cpp8
-rw-r--r--servers/physics_server_2d.cpp10
-rw-r--r--servers/physics_server_2d.h14
-rw-r--r--servers/rendering/rendering_device_binds.cpp2
-rw-r--r--thirdparty/README.md24
-rw-r--r--thirdparty/oidn/0001-window.h-case-sensitive.patch13
-rw-r--r--thirdparty/oidn/core/autoencoder.cpp26
-rw-r--r--thirdparty/oidn/core/autoencoder.h4
-rw-r--r--thirdparty/oidn/core/common.h3
-rw-r--r--thirdparty/oidn/core/device.cpp39
-rw-r--r--thirdparty/oidn/core/device.h26
-rw-r--r--thirdparty/oidn/core/network.cpp4
-rw-r--r--thirdparty/oidn/core/transfer_function.cpp13
-rw-r--r--thirdparty/oidn/mkl-dnn/src/cpu/rnn/rnn_reorders.hpp2
-rw-r--r--thirdparty/oidn/mkl-dnn/src/cpu/simple_concat.hpp6
-rw-r--r--thirdparty/oidn/patches/godot-changes-c58c5216.patch307
-rw-r--r--thirdparty/oidn/patches/mkl-dnn-fix-vs2017-build.patch45
-rw-r--r--thirdparty/oidn/weights/LICENSE.txt202
265 files changed, 20498 insertions, 26508 deletions
diff --git a/.gitignore b/.gitignore
index dfb1490aa9..d9537edbf2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -55,6 +55,11 @@ gmon.out
*.cflags
*.cxxflags
+# Code::Blocks files
+*.cbp
+*.layout
+*.depend
+
# Eclipse CDT files
.cproject
.settings/
@@ -340,6 +345,9 @@ platform/windows/godot_res.res
# Visual Studio Code workspace file
*.code-workspace
+# Scons construction environment dump
+.scons_env.json
+
# Scons progress indicator
.scons_node_count
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ba04008680..c28692c34f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -119,6 +119,22 @@ for an introduction to developing on Godot.
The [Contributing docs](https://docs.godotengine.org/en/latest/community/contributing/index.html)
also have important information on the PR workflow and the code style we use.
+### Document your changes
+
+If your pull request adds methods, properties or signals that are exposed to
+scripting APIs, you **must** update the class reference to document those.
+This is to ensure the documentation coverage doesn't decrease as contributions
+are merged.
+
+[Update the documentation template](https://docs.godotengine.org/en/latest/community/contributing/updating_the_class_reference.html#updating-the-documentation-template)
+using your compiled binary, then fill in the descriptions.
+Follow the style guide described in the
+[Docs writing guidelines](https://docs.godotengine.org/en/latest/community/contributing/docs_writing_guidelines.html).
+
+If your pull request modifies parts of the code in a non-obvious way, make sure
+to add comments in the code as well. This helps other people understand the
+change without having to look at `git blame`.
+
### Be nice to the Git history
Try to make simple PRs that handle one specific topic. Just like for reporting
diff --git a/COPYRIGHT.txt b/COPYRIGHT.txt
index 2d32bf1fd9..fc3079c361 100644
--- a/COPYRIGHT.txt
+++ b/COPYRIGHT.txt
@@ -299,7 +299,7 @@ License: Zlib
Files: ./thirdparty/oidn/
Comment: Intel Open Image Denoise
-Copyright: 2009-2020, Intel Corporation
+Copyright: 2009-2019, Intel Corporation
License: Apache-2.0
Files: ./thirdparty/opus/
diff --git a/SConstruct b/SConstruct
index b424363dc8..9496595a26 100644
--- a/SConstruct
+++ b/SConstruct
@@ -693,6 +693,9 @@ elif selected_platform != "":
else:
Exit(255)
-# The following only makes sense when the env is defined, and assumes it is
+# The following only makes sense when the 'env' is defined, and assumes it is.
if "env" in locals():
methods.show_progress(env)
+ # TODO: replace this with `env.Dump(format="json")`
+ # once we start requiring SCons 4.0 as min version.
+ methods.dump(env)
diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp
index e81351a3a6..267391c4d6 100644
--- a/core/bind/core_bind.cpp
+++ b/core/bind/core_bind.cpp
@@ -498,18 +498,10 @@ Dictionary _OS::get_time_zone_info() const {
return infod;
}
-uint64_t _OS::get_unix_time() const {
+double _OS::get_unix_time() const {
return OS::get_singleton()->get_unix_time();
}
-uint64_t _OS::get_system_time_secs() const {
- return OS::get_singleton()->get_system_time_secs();
-}
-
-uint64_t _OS::get_system_time_msecs() const {
- return OS::get_singleton()->get_system_time_msecs();
-}
-
void _OS::delay_usec(uint32_t p_usec) const {
OS::get_singleton()->delay_usec(p_usec);
}
@@ -729,8 +721,6 @@ void _OS::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_unix_time"), &_OS::get_unix_time);
ClassDB::bind_method(D_METHOD("get_datetime_from_unix_time", "unix_time_val"), &_OS::get_datetime_from_unix_time);
ClassDB::bind_method(D_METHOD("get_unix_time_from_datetime", "datetime"), &_OS::get_unix_time_from_datetime);
- ClassDB::bind_method(D_METHOD("get_system_time_secs"), &_OS::get_system_time_secs);
- ClassDB::bind_method(D_METHOD("get_system_time_msecs"), &_OS::get_system_time_msecs);
ClassDB::bind_method(D_METHOD("get_exit_code"), &_OS::get_exit_code);
ClassDB::bind_method(D_METHOD("set_exit_code", "code"), &_OS::set_exit_code);
diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h
index 26d0f7b8af..f9f5a4e7d7 100644
--- a/core/bind/core_bind.h
+++ b/core/bind/core_bind.h
@@ -199,9 +199,7 @@ public:
Dictionary get_datetime_from_unix_time(int64_t unix_time_val) const;
int64_t get_unix_time_from_datetime(Dictionary datetime) const;
Dictionary get_time_zone_info() const;
- uint64_t get_unix_time() const;
- uint64_t get_system_time_secs() const;
- uint64_t get_system_time_msecs() const;
+ double get_unix_time() const;
uint64_t get_static_memory_usage() const;
uint64_t get_static_memory_peak_usage() const;
diff --git a/core/class_db.cpp b/core/class_db.cpp
index eed9ec17cb..05c9850c39 100644
--- a/core/class_db.cpp
+++ b/core/class_db.cpp
@@ -1386,7 +1386,23 @@ Variant ClassDB::class_get_default_property_value(const StringName &p_class, con
if (r_valid != nullptr) {
*r_valid = true;
}
- return default_values[p_class][p_property];
+
+ Variant var = default_values[p_class][p_property];
+
+#ifdef DEBUG_ENABLED
+ // Some properties may have an instantiated Object as default value,
+ // (like Path2D's `curve` used to have), but that's not a good practice.
+ // Instead, those properties should use PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT
+ // to be auto-instantiated when created in the editor.
+ if (var.get_type() == Variant::OBJECT) {
+ Object *obj = var.get_validated_object();
+ if (obj) {
+ WARN_PRINT(vformat("Instantiated %s used as default value for %s's \"%s\" property.", obj->get_class(), p_class, p_property));
+ }
+ }
+#endif
+
+ return var;
}
RWLock *ClassDB::lock = nullptr;
diff --git a/core/crypto/crypto.cpp b/core/crypto/crypto.cpp
index eb942c60c9..a9a7cabee9 100644
--- a/core/crypto/crypto.cpp
+++ b/core/crypto/crypto.cpp
@@ -70,7 +70,7 @@ Crypto *Crypto::create() {
if (_create) {
return _create();
}
- return memnew(Crypto);
+ ERR_FAIL_V_MSG(nullptr, "Crypto is not available when the mbedtls module is disabled.");
}
void Crypto::load_default_certificates(String p_path) {
@@ -85,18 +85,6 @@ void Crypto::_bind_methods() {
ClassDB::bind_method(D_METHOD("generate_self_signed_certificate", "key", "issuer_name", "not_before", "not_after"), &Crypto::generate_self_signed_certificate, DEFVAL("CN=myserver,O=myorganisation,C=IT"), DEFVAL("20140101000000"), DEFVAL("20340101000000"));
}
-PackedByteArray Crypto::generate_random_bytes(int p_bytes) {
- ERR_FAIL_V_MSG(PackedByteArray(), "generate_random_bytes is not available when mbedtls module is disabled.");
-}
-
-Ref<CryptoKey> Crypto::generate_rsa(int p_bytes) {
- ERR_FAIL_V_MSG(nullptr, "generate_rsa is not available when mbedtls module is disabled.");
-}
-
-Ref<X509Certificate> Crypto::generate_self_signed_certificate(Ref<CryptoKey> p_key, String p_issuer_name, String p_not_before, String p_not_after) {
- ERR_FAIL_V_MSG(nullptr, "generate_self_signed_certificate is not available when mbedtls module is disabled.");
-}
-
/// Resource loader/saver
RES ResourceFormatLoaderCrypto::load(const String &p_path, const String &p_original_path, Error *r_error, bool p_use_sub_threads, float *r_progress, bool p_no_cache) {
diff --git a/core/crypto/crypto.h b/core/crypto/crypto.h
index cf21648a4a..6cc5f46164 100644
--- a/core/crypto/crypto.h
+++ b/core/crypto/crypto.h
@@ -75,9 +75,9 @@ public:
static Crypto *create();
static void load_default_certificates(String p_path);
- virtual PackedByteArray generate_random_bytes(int p_bytes);
- virtual Ref<CryptoKey> generate_rsa(int p_bytes);
- virtual Ref<X509Certificate> generate_self_signed_certificate(Ref<CryptoKey> p_key, String p_issuer_name, String p_not_before, String p_not_after);
+ virtual PackedByteArray generate_random_bytes(int p_bytes) = 0;
+ virtual Ref<CryptoKey> generate_rsa(int p_bytes) = 0;
+ virtual Ref<X509Certificate> generate_self_signed_certificate(Ref<CryptoKey> p_key, String p_issuer_name, String p_not_before, String p_not_after) = 0;
Crypto() {}
};
diff --git a/core/error_macros.h b/core/error_macros.h
index 46a1623115..d7366be453 100644
--- a/core/error_macros.h
+++ b/core/error_macros.h
@@ -285,7 +285,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
* If it is null, the current function returns.
*/
#define ERR_FAIL_NULL(m_param) \
- if (unlikely(!m_param)) { \
+ if (unlikely(m_param == nullptr)) { \
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null."); \
return; \
} else \
@@ -296,7 +296,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
* If it is null, prints `m_msg` and the current function returns.
*/
#define ERR_FAIL_NULL_MSG(m_param, m_msg) \
- if (unlikely(!m_param)) { \
+ if (unlikely(m_param == nullptr)) { \
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null.", DEBUG_STR(m_msg)); \
return; \
} else \
@@ -310,7 +310,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
* If it is null, the current function returns `m_retval`.
*/
#define ERR_FAIL_NULL_V(m_param, m_retval) \
- if (unlikely(!m_param)) { \
+ if (unlikely(m_param == nullptr)) { \
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null."); \
return m_retval; \
} else \
@@ -321,7 +321,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
* If it is null, prints `m_msg` and the current function returns `m_retval`.
*/
#define ERR_FAIL_NULL_V_MSG(m_param, m_retval, m_msg) \
- if (unlikely(!m_param)) { \
+ if (unlikely(m_param == nullptr)) { \
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null.", DEBUG_STR(m_msg)); \
return m_retval; \
} else \
diff --git a/core/hash_map.h b/core/hash_map.h
index 78592f8d82..843430d082 100644
--- a/core/hash_map.h
+++ b/core/hash_map.h
@@ -524,28 +524,14 @@ public:
copy_from(p_table);
}
- void get_key_value_ptr_array(const Pair **p_pairs) const {
+ void get_key_list(List<TKey> *r_keys) const {
if (unlikely(!hash_table)) {
return;
}
for (int i = 0; i < (1 << hash_table_power); i++) {
Element *e = hash_table[i];
while (e) {
- *p_pairs = &e->pair;
- p_pairs++;
- e = e->next;
- }
- }
- }
-
- void get_key_list(List<TKey> *p_keys) const {
- if (unlikely(!hash_table)) {
- return;
- }
- for (int i = 0; i < (1 << hash_table_power); i++) {
- Element *e = hash_table[i];
- while (e) {
- p_keys->push_back(e->pair.key);
+ r_keys->push_back(e->pair.key);
e = e->next;
}
}
diff --git a/core/image.cpp b/core/image.cpp
index 4ab71128cd..0f15574053 100644
--- a/core/image.cpp
+++ b/core/image.cpp
@@ -2539,12 +2539,11 @@ void Image::blend_rect(const Ref<Image> &p_src, const Rect2 &p_src_rect, const P
int dst_y = dest_rect.position.y + i;
Color sc = img->get_pixel(src_x, src_y);
- Color dc = get_pixel(dst_x, dst_y);
- dc.r = (double)(sc.a * sc.r + dc.a * (1.0 - sc.a) * dc.r);
- dc.g = (double)(sc.a * sc.g + dc.a * (1.0 - sc.a) * dc.g);
- dc.b = (double)(sc.a * sc.b + dc.a * (1.0 - sc.a) * dc.b);
- dc.a = (double)(sc.a + dc.a * (1.0 - sc.a));
- set_pixel(dst_x, dst_y, dc);
+ if (sc.a != 0) {
+ Color dc = get_pixel(dst_x, dst_y);
+ dc = dc.blend(sc);
+ set_pixel(dst_x, dst_y, dc);
+ }
}
}
}
@@ -2594,12 +2593,11 @@ void Image::blend_rect_mask(const Ref<Image> &p_src, const Ref<Image> &p_mask, c
int dst_y = dest_rect.position.y + i;
Color sc = img->get_pixel(src_x, src_y);
- Color dc = get_pixel(dst_x, dst_y);
- dc.r = (double)(sc.a * sc.r + dc.a * (1.0 - sc.a) * dc.r);
- dc.g = (double)(sc.a * sc.g + dc.a * (1.0 - sc.a) * dc.g);
- dc.b = (double)(sc.a * sc.b + dc.a * (1.0 - sc.a) * dc.b);
- dc.a = (double)(sc.a + dc.a * (1.0 - sc.a));
- set_pixel(dst_x, dst_y, dc);
+ if (sc.a != 0) {
+ Color dc = get_pixel(dst_x, dst_y);
+ dc = dc.blend(sc);
+ set_pixel(dst_x, dst_y, dc);
+ }
}
}
}
diff --git a/core/input/gamecontrollerdb.txt b/core/input/gamecontrollerdb.txt
index 90d309c1c8..7b5abdd61b 100644
--- a/core/input/gamecontrollerdb.txt
+++ b/core/input/gamecontrollerdb.txt
@@ -4,37 +4,38 @@
# Windows
03000000fa2d00000100000000000000,3DRUDDER,leftx:a0,lefty:a1,rightx:a5,righty:a2,platform:Windows,
03000000c82d00002038000000000000,8bitdo,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
-03000000c82d000011ab000000000000,8BitDo F30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d000011ab000000000000,8BitDo F30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00001038000000000000,8BitDo F30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00000090000000000000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00000650000000000000,8BitDo M30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:a4,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Windows,
03000000c82d00000310000000000000,8BitDo N30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows,
03000000c82d00002028000000000000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00008010000000000000,8BitDo N30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows,
-03000000c82d00000190000000000000,8BitDo N30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
-03000000c82d00001590000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
-03000000c82d00006528000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d00000190000000000000,8BitDo N30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d00001590000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d00006528000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00015900000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00065280000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
03000000022000000090000000000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
03000000203800000900000000000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00000130000000000000,8BitDo SF30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
-03000000c82d00000060000000000000,8Bitdo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
-03000000c82d00000061000000000000,8Bitdo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d00000060000000000000,8Bitdo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d00000061000000000000,8Bitdo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d000021ab000000000000,8BitDo SFC30,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,
03000000102800000900000000000000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00003028000000000000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00000030000000000000,8BitDo SN30,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00000351000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
-03000000c82d00001290000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d00001290000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d000020ab000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00004028000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
-03000000c82d00006228000000000000,8BitDo SN30 GP,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
-03000000c82d00000160000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
-03000000c82d00000161000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d00006228000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d00000160000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d00000161000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00000260000000000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00000261000000000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00000031000000000000,8BitDo Wireless Adapter,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d00003032000000000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
03000000a00500003232000000000000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows,
030000008f0e00001200000000000000,Acme GA-02,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows,
03000000fa190000f0ff000000000000,Acteck AGJ-3200,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
@@ -73,6 +74,7 @@
03000000260900008888000000000000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a4,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Windows,
03000000a306000022f6000000000000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows,
03000000451300000830000000000000,Defender Game Racer X7,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
+030000007d0400000840000000000000,Destroyer Tiltpad,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,x:b0,y:b3,platform:Windows,
03000000791d00000103000000000000,Dual Box WII,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
03000000bd12000002e0000000000000,Dual USB Vibration Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Windows,
030000006f0e00003001000000000000,EA SPORTS PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
@@ -88,7 +90,6 @@
030000000d0f00008800000000000000,Fighting Stick mini 4,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows,
030000000d0f00002700000000000000,FIGHTING STICK V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
78696e70757403000000000000000000,Fightstick TES,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Windows,
-03000000790000000600000000000000,G-Shark GS-GP702,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows,
03000000790000002201000000000000,Game Controller for PC,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
0300000066f700000100000000000000,Game VIB Joystick,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Windows,
03000000260900002625000000000000,Gamecube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,lefttrigger:a4,leftx:a0,lefty:a1,righttrigger:a5,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Windows,
@@ -98,6 +99,7 @@
03000000ac0500004d04000000000000,GameSir,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
03000000ffff00000000000000000000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
030000006f0e00000102000000007801,GameStop Xbox 360 Wired Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,
+030000009b2800003200000000000000,GC/N64 to USB v3.4,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:+a2,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows,
030000008305000009a0000000000000,Genius,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
030000008305000031b0000000000000,Genius Maxfire Blaze 3,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
03000000451300000010000000000000,Genius Maxfire Grandias 12,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
@@ -146,6 +148,8 @@
030000007e0500000720000000000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows,
030000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows,
03000000bd12000003c0000000000000,JY-P70UR,a:b1,b:b0,back:b5,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b11,righttrigger:b9,rightx:a3,righty:a2,start:b4,x:b3,y:b2,platform:Windows,
+03000000242f00002d00000000000000,JYS Wireless Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
+03000000242f00008a00000000000000,JYS Wireless Adapter,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows,
03000000790000000200000000000000,King PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows,
030000006d040000d1ca000000000000,Logitech ChillStream,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000006d040000d2ca000000000000,Logitech Cordless Precision,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
@@ -302,6 +306,7 @@
03000000790000001a18000000000000,Venom,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000790000001b18000000000000,Venom Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
030000006f0e00000302000000000000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
+0300000034120000adbe000000000000,vJoy Device,a:b0,b:b1,back:b15,dpdown:b6,dpleft:b7,dpright:b8,dpup:b5,guide:b16,leftshoulder:b9,leftstick:b13,lefttrigger:b11,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b14,righttrigger:b12,rightx:+a3,righty:+a4,start:b4,x:b2,y:b3,platform:Windows,
030000005e0400000a0b000000000000,Xbox Adaptive Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,
03000000341a00000608000000000000,Xeox,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
03000000450c00002043000000000000,XEOX Gamepad SL-6556-BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
@@ -310,7 +315,7 @@
03000000786901006e70000000000000,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,
xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,
03000000790000004f18000000000000,ZD-T Android,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
-03000000c82d00003032000000000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
+030000009b2800006000000000000000,GC/N64 to USB v3.6,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:+a2,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows,
# Mac OS X
030000008f0e00000300000009010000,2In1 USB Joystick,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,
@@ -330,7 +335,6 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
030000008305000031b0000000000000,Cideko AK08b,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
03000000260900008888000088020000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Mac OS X,
03000000a306000022f6000001030000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Mac OS X,
-03000000790000000600000000000000,G-Shark GP-702,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Mac OS X,
03000000ad1b000001f9000000000000,Gamestop BB-070 X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X,
030000006f0e00000102000000000000,GameStop Xbox 360 Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
@@ -351,6 +355,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
03000000830500006020000000000000,iBuffalo USB 2-axis 8-button Gamepad,a:b1,b:b0,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Mac OS X,
030000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Mac OS X,
030000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Mac OS X,
+03000000242f00002d00000007010000,JYS Wireless Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,
030000006d04000016c2000000020000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
030000006d04000016c2000000030000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
030000006d04000016c2000014040000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
@@ -406,6 +411,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
0300000000f00000f100000000000000,SNES RetroPort,a:b2,b:b3,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b5,rightshoulder:b7,start:b6,x:b0,y:b1,platform:Mac OS X,
030000004c050000cc09000000000000,Sony DualShock 4 V2,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
030000004c050000a00b000000000000,Sony DualShock 4 Wireless Adaptor,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
+03000000d11800000094000000010000,Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X,
030000005e0400008e02000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
03000000110100002014000000000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b12,x:b2,y:b3,platform:Mac OS X,
03000000110100002014000001000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X,
@@ -455,12 +461,13 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
03000000c82d00000160000011010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
03000000c82d00000161000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux,
03000000c82d00001290000011010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux,
-05000000c82d00000161000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
+05000000c82d00000161000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
05000000c82d00006228000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
03000000c82d00000260000011010000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
05000000c82d00000261000000010000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
030000005e0400008e02000020010000,8BitDo Wireless Adapter,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000c82d00000031000011010000,8BitDo Wireless Adapter,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
+05000000c82d00003032000000010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
05000000a00500003232000001000000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux,
05000000a00500003232000008010000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux,
030000006f0e00001302000000010000,Afterglow,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
@@ -499,6 +506,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
06000000adde0000efbe000002010000,Hidromancer Game Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000d81400000862000011010000,HitBox (PS3/PC) Analog Mode,a:b1,b:b2,back:b8,guide:b9,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b12,x:b0,y:b3,platform:Linux,
03000000c9110000f055000011010000,HJC Game GAMEPAD,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
+03000000632500002605000010010000,HJD-X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
030000000d0f00000d00000000010000,hori,a:b0,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b3,leftx:b4,lefty:b5,rightshoulder:b7,start:b9,x:b1,y:b2,platform:Linux,
030000000d0f00001000000011010000,HORI CO. LTD. FIGHTING STICK 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
030000000d0f0000c100000011010000,HORI CO. LTD. HORIPAD S,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
@@ -529,6 +537,8 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
050000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Linux,
030000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Linux,
050000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Linux,
+03000000242f00002d00000011010000,JYS Wireless Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
+03000000242f00008a00000011010000,JYS Wireless Adapter,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Linux,
030000006f0e00000103000000020000,Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000006d04000019c2000010010000,Logitech Cordless RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000006d04000016c2000010010000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
@@ -581,6 +591,9 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
03000000250900006688000000010000,MP-8866 Super Dual Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux,
030000000d0f00000900000010010000,Natec Genesis P44,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000001008000001e5000010010000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b6,start:b9,x:b3,y:b0,platform:Linux,
+060000007e0500000820000000000000,Nintendo Combined Joy-Cons (joycond),a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,
+050000007e0500000920000001800000,Nintendo Switch Pro Controller (joycond),a:b0,b:b1,x:b3,y:b2,back:b9,guide:b11,start:b10,leftstick:b12,rightstick:b13,leftshoulder:b5,rightshoulder:b6,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b7,righttrigger:b8,platform:Linux,
+030000007e0500000920000011810000,Nintendo Switch Pro Controller Wired (joycond),a:b0,b:b1,x:b3,y:b2,back:b9,guide:b11,start:b10,leftstick:b12,rightstick:b13,leftshoulder:b5,rightshoulder:b6,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b7,righttrigger:b8,platform:Linux,
030000007e0500003703000000016800,Nintendo GameCube Controller,a:b0,b:b2,dpdown:b6,dpleft:b4,dpright:b5,dpup:b7,lefttrigger:a4,leftx:a0,lefty:a1~,rightshoulder:b9,righttrigger:a5,rightx:a2,righty:a3~,start:b8,x:b1,y:b3,platform:Linux,
050000007e0500000920000001000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
050000007e0500003003000001000000,Nintendo Wii Remote Pro Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux,
@@ -593,9 +606,11 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
030000005e0400000202000000010000,Old Xbox pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux,
05000000362800000100000002010000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux,
05000000362800000100000003010000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux,
+03000000830500005020000010010000,Padix Co. Ltd. Rockfire PSX/USB Bridge,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b2,y:b3,platform:Linux,
03000000ff1100003133000010010000,PC Game Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
030000006f0e00006401000001010000,PDP Battlefield One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000006f0e00003101000000010000,PDP EA Sports Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
+030000006f0e0000c802000012010000,PDP Kingdom Hearts Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000006f0e0000a802000023020000,PDP Wired Controller for Xbox One,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
030000004c050000da0c000011010000,Playstation Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,
03000000c62400000053000000010000,PowerA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
@@ -629,6 +644,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
050000004c050000cc09000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,
050000004c050000cc09000001800000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,
03000000300f00001211000011010000,QanBa Arcade JoyStick,a:b2,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b9,x:b1,y:b3,platform:Linux,
+030000009b2800003200000001010000,Raphnet Technologies GC/N64 to USB v3.4,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux,
030000009b2800000300000001010000,raphnet.net 4nes4snes v1.5,a:b0,b:b4,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Linux,
030000008916000001fd000024010000,Razer Onza Classic Edition,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000008916000000fd000024010000,Razer Onza Tournament Edition,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
@@ -650,9 +666,10 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
030000006f0e00001e01000011010000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000006f0e00004601000001010000,Rock Candy Xbox One Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000a306000023f6000011010000,Saitek Cyborg V.1 Game Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux,
+03000000a30600001005000000010000,Saitek Saitek P150,platform:Linux,a:b0,b:b1,y:b4,x:b3,leftshoulder:b7,rightshoulder:b2,dpup:-a1,dpleft:-a0,dpdown:+a1,dpright:+a0,lefttrigger:b6,righttrigger:b5,
03000000a30600000cff000010010000,Saitek P2500 Force Rumble Pad,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,x:b0,y:b1,platform:Linux,
03000000a30600000c04000011010000,Saitek P2900 Wireless Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b12,x:b0,y:b3,platform:Linux,
-03000000300f00001201000010010000,Saitek P380,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a1,righty:a2,start:b9,x:b0,y:b1,platform:Linux,
+03000000300f00001201000010010000,Saitek P380,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux,
03000000a30600000901000000010000,Saitek P880,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,x:b0,y:b1,platform:Linux,
03000000a30600000b04000000010000,Saitek P990 Dual Analog Pad,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Linux,
03000000a306000018f5000010010000,Saitek PLC Saitek P3200 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Linux,
@@ -667,6 +684,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
03000000250900000500000000010000,Sony PS2 pad with SmartJoy adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux,
030000005e0400008e02000073050000,Speedlink TORID Wireless Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000005e0400008e02000020200000,SpeedLink XEOX Pro Analog Gamepad pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
+03000000d11800000094000011010000,Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux,
03000000de2800000112000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,
03000000de2800000211000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,
03000000de2800004211000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,
@@ -679,16 +697,21 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
03000000381000003114000075010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
05000000110100001914000009010000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
03000000ad1b000038f0000090040000,Street Fighter IV FightStick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
+030000003b07000004a1000000010000,Suncom SFX Plus for USB,a:b0,b:b2,x:b1,y:b3,back:b7,start:b8,leftshoulder:b6,rightshoulder:b9,leftx:a0,lefty:a1,lefttrigger:b4,righttrigger:b5,platform:Linux,
03000000666600000488000000010000,Super Joy Box 5 Pro,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux,
0300000000f00000f100000000010000,Super RetroPort,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux,
+03000000457500002211000010010000,SZMY-POWER CO. LTD. GAMEPAD,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
+030000008f0e00000d31000010010000,SZMY-POWER CO. LTD. GAMEPAD 3 TURBO,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000004f04000020b3000010010000,Thrustmaster 2 in 1 DT,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,
030000004f04000015b3000010010000,Thrustmaster Dual Analog 4,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,
030000004f04000023b3000000010000,Thrustmaster Dual Trigger 3-in-1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
+03000000b50700000399000000010000,Thrustmaster Firestorm Digital 2,a:b2,b:b4,x:b3,y:b5,back:b11,start:b1,leftstick:b10,rightstick:b0,leftshoulder:b6,rightshoulder:b8,leftx:a0,lefty:a1,lefttrigger:b7,righttrigger:b9,platform:Linux,
030000004f04000000b3000010010000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Linux,
030000004f04000026b3000002040000,Thrustmaster Gamepad GP XID,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000c6240000025b000002020000,Thrustmaster GPX Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000004f04000008d0000000010000,Thrustmaster Run N Drive Wireless,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
030000004f04000009d0000000010000,Thrustmaster Run N Drive Wireless PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
+030000004f04000007d0000000010000,Thrustmaster T Mini Wireless,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000004f04000012b3000010010000,Thrustmaster vibrating gamepad,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,
03000000bd12000015d0000010010000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux,
03000000d814000007cd000011010000,Toodles 2008 Chimp PC/PS3,a:b0,b:b1,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux,
@@ -721,8 +744,9 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
05000000172700004431000029010000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Linux,
03000000c0160000e105000001010000,Xin-Mo Xin-Mo Dual Arcade,a:b4,b:b3,back:b6,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b9,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b1,y:b0,platform:Linux,
xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
-05000000c82d00003032000000010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
03000000120c0000100e000011010000,ZEROPLUS P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
+030000005e0400008e02000000010000,xbox360 Wireless EasySMX,a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,platform:Linux,
+030000009b2800006000000001010000,Raphnet Technologies GC/N64 to USB v3.6,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux,
# Android
05000000bc20000000550000ffff3f00,GameSir G3w,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android,
@@ -748,6 +772,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
050000005e040000fd020000ffff3f00,Xbox One Wireless Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android,
050000005e04000091020000ff073f00,Xbox Wireless Controller,a:b0,b:b1,back:b4,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android,
34356136633366613530316338376136,Xbox Wireless Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b3,leftstick:b15,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b16,righttrigger:a5,rightx:a3,righty:a4,x:b17,y:b2,platform:Android,
+7573622067616d657061642020202020,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b6,start:b9,x:b3,y:b0,platform:Android,
# iOS
05000000ac0500000100000000006d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,platform:iOS,
diff --git a/core/input/input_map.cpp b/core/input/input_map.cpp
index 3cb4b43a26..ac032b7d10 100644
--- a/core/input/input_map.cpp
+++ b/core/input/input_map.cpp
@@ -48,7 +48,7 @@ void InputMap::_bind_methods() {
ClassDB::bind_method(D_METHOD("action_has_event", "action", "event"), &InputMap::action_has_event);
ClassDB::bind_method(D_METHOD("action_erase_event", "action", "event"), &InputMap::action_erase_event);
ClassDB::bind_method(D_METHOD("action_erase_events", "action"), &InputMap::action_erase_events);
- ClassDB::bind_method(D_METHOD("get_action_list", "action"), &InputMap::_get_action_list);
+ ClassDB::bind_method(D_METHOD("action_get_events", "action"), &InputMap::_action_get_events);
ClassDB::bind_method(D_METHOD("event_is_action", "event", "action"), &InputMap::event_is_action);
ClassDB::bind_method(D_METHOD("load_from_globals"), &InputMap::load_from_globals);
}
@@ -152,9 +152,9 @@ void InputMap::action_erase_events(const StringName &p_action) {
input_map[p_action].inputs.clear();
}
-Array InputMap::_get_action_list(const StringName &p_action) {
+Array InputMap::_action_get_events(const StringName &p_action) {
Array ret;
- const List<Ref<InputEvent>> *al = get_action_list(p_action);
+ const List<Ref<InputEvent>> *al = action_get_events(p_action);
if (al) {
for (const List<Ref<InputEvent>>::Element *E = al->front(); E; E = E->next()) {
ret.push_back(E->get());
@@ -164,7 +164,7 @@ Array InputMap::_get_action_list(const StringName &p_action) {
return ret;
}
-const List<Ref<InputEvent>> *InputMap::get_action_list(const StringName &p_action) {
+const List<Ref<InputEvent>> *InputMap::action_get_events(const StringName &p_action) {
const Map<StringName, Action>::Element *E = input_map.find(p_action);
if (!E) {
return nullptr;
diff --git a/core/input/input_map.h b/core/input/input_map.h
index 3abc224ccf..548553ed31 100644
--- a/core/input/input_map.h
+++ b/core/input/input_map.h
@@ -56,7 +56,7 @@ private:
List<Ref<InputEvent>>::Element *_find_event(Action &p_action, const Ref<InputEvent> &p_event, bool *p_pressed = nullptr, float *p_strength = nullptr) const;
- Array _get_action_list(const StringName &p_action);
+ Array _action_get_events(const StringName &p_action);
Array _get_actions();
protected:
@@ -76,7 +76,7 @@ public:
void action_erase_event(const StringName &p_action, const Ref<InputEvent> &p_event);
void action_erase_events(const StringName &p_action);
- const List<Ref<InputEvent>> *get_action_list(const StringName &p_action);
+ const List<Ref<InputEvent>> *action_get_events(const StringName &p_action);
bool event_is_action(const Ref<InputEvent> &p_event, const StringName &p_action) const;
bool event_get_action_status(const Ref<InputEvent> &p_event, const StringName &p_action, bool *p_pressed = nullptr, float *p_strength = nullptr) const;
diff --git a/core/io/dtls_server.cpp b/core/io/dtls_server.cpp
index 0278027c50..e43b1f5385 100644
--- a/core/io/dtls_server.cpp
+++ b/core/io/dtls_server.cpp
@@ -37,7 +37,10 @@ DTLSServer *(*DTLSServer::_create)() = nullptr;
bool DTLSServer::available = false;
DTLSServer *DTLSServer::create() {
- return _create();
+ if (_create) {
+ return _create();
+ }
+ return nullptr;
}
bool DTLSServer::is_available() {
diff --git a/core/io/packet_peer_dtls.cpp b/core/io/packet_peer_dtls.cpp
index 67579c339a..632f86a9f6 100644
--- a/core/io/packet_peer_dtls.cpp
+++ b/core/io/packet_peer_dtls.cpp
@@ -36,7 +36,10 @@ PacketPeerDTLS *(*PacketPeerDTLS::_create)() = nullptr;
bool PacketPeerDTLS::available = false;
PacketPeerDTLS *PacketPeerDTLS::create() {
- return _create();
+ if (_create) {
+ return _create();
+ }
+ return nullptr;
}
bool PacketPeerDTLS::is_available() {
diff --git a/core/math/a_star.cpp b/core/math/a_star.cpp
index 580a7cf7bb..30f712b2c3 100644
--- a/core/math/a_star.cpp
+++ b/core/math/a_star.cpp
@@ -280,10 +280,16 @@ int AStar::get_closest_point(const Vector3 &p_point, bool p_include_disabled) co
continue; // Disabled points should not be considered.
}
+ // Keep the closest point's ID, and in case of multiple closest IDs,
+ // the smallest one (makes it deterministic).
real_t d = p_point.distance_squared_to((*it.value)->pos);
- if (closest_id < 0 || d < closest_dist) {
+ int id = *(it.key);
+ if (d <= closest_dist) {
+ if (d == closest_dist && id > closest_id) { // Keep lowest ID.
+ continue;
+ }
closest_dist = d;
- closest_id = *(it.key);
+ closest_id = id;
}
}
@@ -291,7 +297,6 @@ int AStar::get_closest_point(const Vector3 &p_point, bool p_include_disabled) co
}
Vector3 AStar::get_closest_position_in_segment(const Vector3 &p_point) const {
- bool found = false;
real_t closest_dist = 1e20;
Vector3 closest_point;
@@ -311,10 +316,9 @@ Vector3 AStar::get_closest_position_in_segment(const Vector3 &p_point) const {
Vector3 p = Geometry3D::get_closest_point_to_segment(p_point, segment);
real_t d = p_point.distance_squared_to(p);
- if (!found || d < closest_dist) {
+ if (d < closest_dist) {
closest_point = p;
closest_dist = d;
- found = true;
}
}
diff --git a/core/math/basis.cpp b/core/math/basis.cpp
index cbfd09810c..df5199b0f9 100644
--- a/core/math/basis.cpp
+++ b/core/math/basis.cpp
@@ -428,12 +428,9 @@ Vector3 Basis::get_euler_xyz() const {
// -cx*cz*sy+sx*sz cz*sx+cx*sy*sz cx*cy
Vector3 euler;
-#ifdef MATH_CHECKS
- ERR_FAIL_COND_V(!is_rotation(), euler);
-#endif
real_t sy = elements[0][2];
- if (sy < 1.0) {
- if (sy > -1.0) {
+ if (sy < (1.0 - CMP_EPSILON)) {
+ if (sy > -(1.0 - CMP_EPSILON)) {
// is this a pure Y rotation?
if (elements[1][0] == 0.0 && elements[0][1] == 0.0 && elements[1][2] == 0 && elements[2][1] == 0 && elements[1][1] == 1) {
// return the simplest form (human friendlier in editor and scripts)
@@ -446,12 +443,12 @@ Vector3 Basis::get_euler_xyz() const {
euler.z = Math::atan2(-elements[0][1], elements[0][0]);
}
} else {
- euler.x = -Math::atan2(elements[0][1], elements[1][1]);
+ euler.x = Math::atan2(elements[2][1], elements[1][1]);
euler.y = -Math_PI / 2.0;
euler.z = 0.0;
}
} else {
- euler.x = Math::atan2(elements[0][1], elements[1][1]);
+ euler.x = Math::atan2(elements[2][1], elements[1][1]);
euler.y = Math_PI / 2.0;
euler.z = 0.0;
}
@@ -481,15 +478,106 @@ void Basis::set_euler_xyz(const Vector3 &p_euler) {
*this = xmat * (ymat * zmat);
}
+Vector3 Basis::get_euler_xzy() const {
+ // Euler angles in XZY convention.
+ // See https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix
+ //
+ // rot = cz*cy -sz cz*sy
+ // sx*sy+cx*cy*sz cx*cz cx*sz*sy-cy*sx
+ // cy*sx*sz cz*sx cx*cy+sx*sz*sy
+
+ Vector3 euler;
+ real_t sz = elements[0][1];
+ if (sz < (1.0 - CMP_EPSILON)) {
+ if (sz > -(1.0 - CMP_EPSILON)) {
+ euler.x = Math::atan2(elements[2][1], elements[1][1]);
+ euler.y = Math::atan2(elements[0][2], elements[0][0]);
+ euler.z = Math::asin(-sz);
+ } else {
+ // It's -1
+ euler.x = -Math::atan2(elements[1][2], elements[2][2]);
+ euler.y = 0.0;
+ euler.z = Math_PI / 2.0;
+ }
+ } else {
+ // It's 1
+ euler.x = -Math::atan2(elements[1][2], elements[2][2]);
+ euler.y = 0.0;
+ euler.z = -Math_PI / 2.0;
+ }
+ return euler;
+}
+
+void Basis::set_euler_xzy(const Vector3 &p_euler) {
+ real_t c, s;
+
+ c = Math::cos(p_euler.x);
+ s = Math::sin(p_euler.x);
+ Basis xmat(1.0, 0.0, 0.0, 0.0, c, -s, 0.0, s, c);
+
+ c = Math::cos(p_euler.y);
+ s = Math::sin(p_euler.y);
+ Basis ymat(c, 0.0, s, 0.0, 1.0, 0.0, -s, 0.0, c);
+
+ c = Math::cos(p_euler.z);
+ s = Math::sin(p_euler.z);
+ Basis zmat(c, -s, 0.0, s, c, 0.0, 0.0, 0.0, 1.0);
+
+ *this = xmat * zmat * ymat;
+}
+
+Vector3 Basis::get_euler_yzx() const {
+ // Euler angles in YZX convention.
+ // See https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix
+ //
+ // rot = cy*cz sy*sx-cy*cx*sz cx*sy+cy*sz*sx
+ // sz cz*cx -cz*sx
+ // -cz*sy cy*sx+cx*sy*sz cy*cx-sy*sz*sx
+
+ Vector3 euler;
+ real_t sz = elements[1][0];
+ if (sz < (1.0 - CMP_EPSILON)) {
+ if (sz > -(1.0 - CMP_EPSILON)) {
+ euler.x = Math::atan2(-elements[1][2], elements[1][1]);
+ euler.y = Math::atan2(-elements[2][0], elements[0][0]);
+ euler.z = Math::asin(sz);
+ } else {
+ // It's -1
+ euler.x = Math::atan2(elements[2][1], elements[2][2]);
+ euler.y = 0.0;
+ euler.z = -Math_PI / 2.0;
+ }
+ } else {
+ // It's 1
+ euler.x = Math::atan2(elements[2][1], elements[2][2]);
+ euler.y = 0.0;
+ euler.z = Math_PI / 2.0;
+ }
+ return euler;
+}
+
+void Basis::set_euler_yzx(const Vector3 &p_euler) {
+ real_t c, s;
+
+ c = Math::cos(p_euler.x);
+ s = Math::sin(p_euler.x);
+ Basis xmat(1.0, 0.0, 0.0, 0.0, c, -s, 0.0, s, c);
+
+ c = Math::cos(p_euler.y);
+ s = Math::sin(p_euler.y);
+ Basis ymat(c, 0.0, s, 0.0, 1.0, 0.0, -s, 0.0, c);
+
+ c = Math::cos(p_euler.z);
+ s = Math::sin(p_euler.z);
+ Basis zmat(c, -s, 0.0, s, c, 0.0, 0.0, 0.0, 1.0);
+
+ *this = ymat * zmat * xmat;
+}
+
// get_euler_yxz returns a vector containing the Euler angles in the YXZ convention,
// as in first-Z, then-X, last-Y. The angles for X, Y, and Z rotations are returned
// as the x, y, and z components of a Vector3 respectively.
Vector3 Basis::get_euler_yxz() const {
- /* checking this is a bad idea, because obtaining from scaled transform is a valid use case
-#ifdef MATH_CHECKS
- ERR_FAIL_COND(!is_rotation());
-#endif
-*/
// Euler angles in YXZ convention.
// See https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix
//
@@ -501,8 +589,8 @@ Vector3 Basis::get_euler_yxz() const {
real_t m12 = elements[1][2];
- if (m12 < 1) {
- if (m12 > -1) {
+ if (m12 < (1 - CMP_EPSILON)) {
+ if (m12 > -(1 - CMP_EPSILON)) {
// is this a pure X rotation?
if (elements[1][0] == 0 && elements[0][1] == 0 && elements[0][2] == 0 && elements[2][0] == 0 && elements[0][0] == 1) {
// return the simplest form (human friendlier in editor and scripts)
@@ -516,12 +604,12 @@ Vector3 Basis::get_euler_yxz() const {
}
} else { // m12 == -1
euler.x = Math_PI * 0.5;
- euler.y = -atan2(-elements[0][1], elements[0][0]);
+ euler.y = atan2(elements[0][1], elements[0][0]);
euler.z = 0;
}
} else { // m12 == 1
euler.x = -Math_PI * 0.5;
- euler.y = -atan2(-elements[0][1], elements[0][0]);
+ euler.y = -atan2(elements[0][1], elements[0][0]);
euler.z = 0;
}
@@ -551,6 +639,100 @@ void Basis::set_euler_yxz(const Vector3 &p_euler) {
*this = ymat * xmat * zmat;
}
+Vector3 Basis::get_euler_zxy() const {
+ // Euler angles in ZXY convention.
+ // See https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix
+ //
+ // rot = cz*cy-sz*sx*sy -cx*sz cz*sy+cy*sz*sx
+ // cy*sz+cz*sx*sy cz*cx sz*sy-cz*cy*sx
+ // -cx*sy sx cx*cy
+ Vector3 euler;
+ real_t sx = elements[2][1];
+ if (sx < (1.0 - CMP_EPSILON)) {
+ if (sx > -(1.0 - CMP_EPSILON)) {
+ euler.x = Math::asin(sx);
+ euler.y = Math::atan2(-elements[2][0], elements[2][2]);
+ euler.z = Math::atan2(-elements[0][1], elements[1][1]);
+ } else {
+ // It's -1
+ euler.x = -Math_PI / 2.0;
+ euler.y = Math::atan2(elements[0][2], elements[0][0]);
+ euler.z = 0;
+ }
+ } else {
+ // It's 1
+ euler.x = Math_PI / 2.0;
+ euler.y = Math::atan2(elements[0][2], elements[0][0]);
+ euler.z = 0;
+ }
+ return euler;
+}
+
+void Basis::set_euler_zxy(const Vector3 &p_euler) {
+ real_t c, s;
+
+ c = Math::cos(p_euler.x);
+ s = Math::sin(p_euler.x);
+ Basis xmat(1.0, 0.0, 0.0, 0.0, c, -s, 0.0, s, c);
+
+ c = Math::cos(p_euler.y);
+ s = Math::sin(p_euler.y);
+ Basis ymat(c, 0.0, s, 0.0, 1.0, 0.0, -s, 0.0, c);
+
+ c = Math::cos(p_euler.z);
+ s = Math::sin(p_euler.z);
+ Basis zmat(c, -s, 0.0, s, c, 0.0, 0.0, 0.0, 1.0);
+
+ *this = zmat * xmat * ymat;
+}
+
+Vector3 Basis::get_euler_zyx() const {
+ // Euler angles in ZYX convention.
+ // See https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix
+ //
+ // rot = cz*cy cz*sy*sx-cx*sz sz*sx+cz*cx*cy
+ // cy*sz cz*cx+sz*sy*sx cx*sz*sy-cz*sx
+ // -sy cy*sx cy*cx
+ Vector3 euler;
+ real_t sy = elements[2][0];
+ if (sy < (1.0 - CMP_EPSILON)) {
+ if (sy > -(1.0 - CMP_EPSILON)) {
+ euler.x = Math::atan2(elements[2][1], elements[2][2]);
+ euler.y = Math::asin(-sy);
+ euler.z = Math::atan2(elements[1][0], elements[0][0]);
+ } else {
+ // It's -1
+ euler.x = 0;
+ euler.y = Math_PI / 2.0;
+ euler.z = -Math::atan2(elements[0][1], elements[1][1]);
+ }
+ } else {
+ // It's 1
+ euler.x = 0;
+ euler.y = -Math_PI / 2.0;
+ euler.z = -Math::atan2(elements[0][1], elements[1][1]);
+ }
+ return euler;
+}
+
+void Basis::set_euler_zyx(const Vector3 &p_euler) {
+ real_t c, s;
+
+ c = Math::cos(p_euler.x);
+ s = Math::sin(p_euler.x);
+ Basis xmat(1.0, 0.0, 0.0, 0.0, c, -s, 0.0, s, c);
+
+ c = Math::cos(p_euler.y);
+ s = Math::sin(p_euler.y);
+ Basis ymat(c, 0.0, s, 0.0, 1.0, 0.0, -s, 0.0, c);
+
+ c = Math::cos(p_euler.z);
+ s = Math::sin(p_euler.z);
+ Basis zmat(c, -s, 0.0, s, c, 0.0, 0.0, 0.0, 1.0);
+
+ *this = zmat * ymat * xmat;
+}
+
bool Basis::is_equal_approx(const Basis &p_basis) const {
return elements[0].is_equal_approx(p_basis.elements[0]) && elements[1].is_equal_approx(p_basis.elements[1]) && elements[2].is_equal_approx(p_basis.elements[2]);
}
diff --git a/core/math/basis.h b/core/math/basis.h
index d870a6b099..985fb0e44f 100644
--- a/core/math/basis.h
+++ b/core/math/basis.h
@@ -88,9 +88,22 @@ public:
Vector3 get_euler_xyz() const;
void set_euler_xyz(const Vector3 &p_euler);
+
+ Vector3 get_euler_xzy() const;
+ void set_euler_xzy(const Vector3 &p_euler);
+
+ Vector3 get_euler_yzx() const;
+ void set_euler_yzx(const Vector3 &p_euler);
+
Vector3 get_euler_yxz() const;
void set_euler_yxz(const Vector3 &p_euler);
+ Vector3 get_euler_zxy() const;
+ void set_euler_zxy(const Vector3 &p_euler);
+
+ Vector3 get_euler_zyx() const;
+ void set_euler_zyx(const Vector3 &p_euler);
+
Quat get_quat() const;
void set_quat(const Quat &p_quat);
diff --git a/core/math/expression.cpp b/core/math/expression.cpp
index db3bf2f830..6421606ca2 100644
--- a/core/math/expression.cpp
+++ b/core/math/expression.cpp
@@ -896,6 +896,7 @@ Error Expression::_get_token(Token &r_token) {
return OK;
}
+ case '\'':
case '"': {
String str;
while (true) {
@@ -905,7 +906,8 @@ Error Expression::_get_token(Token &r_token) {
_set_error("Unterminated String");
r_token.type = TK_ERROR;
return ERR_PARSE_ERROR;
- } else if (ch == '"') {
+ } else if (ch == cchar) {
+ // cchar contain a corresponding quote symbol
break;
} else if (ch == '\\') {
//escaped characters...
diff --git a/core/object.cpp b/core/object.cpp
index f3c5a13809..8abea9ca7e 100644
--- a/core/object.cpp
+++ b/core/object.cpp
@@ -2038,23 +2038,31 @@ void ObjectDB::cleanup() {
if (slot_count > 0) {
spin_lock.lock();
- WARN_PRINT("ObjectDB Instances still exist!");
+ WARN_PRINT("ObjectDB instances leaked at exit (run with --verbose for details).");
if (OS::get_singleton()->is_stdout_verbose()) {
+ // Ensure calling the native classes because if a leaked instance has a script
+ // that overrides any of those methods, it'd not be OK to call them at this point,
+ // now the scripting languages have already been terminated.
+ MethodBind *node_get_name = ClassDB::get_method("Node", "get_name");
+ MethodBind *resource_get_path = ClassDB::get_method("Resource", "get_path");
+ Callable::CallError call_error;
+
for (uint32_t i = 0; i < slot_count; i++) {
uint32_t slot = object_slots[i].next_free;
Object *obj = object_slots[slot].object;
- String node_name;
+ String extra_info;
if (obj->is_class("Node")) {
- node_name = " - Node name: " + String(obj->call("get_name"));
+ extra_info = " - Node name: " + String(node_get_name->call(obj, nullptr, 0, call_error));
}
if (obj->is_class("Resource")) {
- node_name = " - Resource name: " + String(obj->call("get_name")) + " Path: " + String(obj->call("get_path"));
+ extra_info = " - Resource path: " + String(resource_get_path->call(obj, nullptr, 0, call_error));
}
uint64_t id = uint64_t(slot) | (uint64_t(object_slots[slot].validator) << OBJECTDB_VALIDATOR_BITS) | (object_slots[slot].is_reference ? OBJECTDB_REFERENCE_BIT : 0);
- print_line("Leaked instance: " + String(obj->get_class()) + ":" + itos(id) + node_name);
+ print_line("Leaked instance: " + String(obj->get_class()) + ":" + itos(id) + extra_info);
}
+ print_line("Hint: Leaked instances typically happen when nodes are removed from the scene tree (with `remove_child()`) but not freed (with `free()` or `queue_free()`).");
}
spin_lock.unlock();
}
diff --git a/core/object.h b/core/object.h
index 95662f6208..5b46a0f93a 100644
--- a/core/object.h
+++ b/core/object.h
@@ -124,6 +124,7 @@ enum PropertyUsageFlags {
PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT = 1 << 24,
PROPERTY_USAGE_KEYING_INCREMENTS = 1 << 25, // Used in inspector to increment property when keyed in animation player
PROPERTY_USAGE_DEFERRED_SET_RESOURCE = 1 << 26, // when loading, the resource for this property can be set at the end of loading
+ PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT = 1 << 27, // For Object properties, instantiate them when creating in editor.
PROPERTY_USAGE_DEFAULT = PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_NETWORK,
PROPERTY_USAGE_DEFAULT_INTL = PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_NETWORK | PROPERTY_USAGE_INTERNATIONALIZED,
diff --git a/core/os/os.cpp b/core/os/os.cpp
index 56755bcf51..c842be333c 100644
--- a/core/os/os.cpp
+++ b/core/os/os.cpp
@@ -83,15 +83,7 @@ uint64_t OS::get_splash_tick_msec() const {
return _msec_splash;
}
-uint64_t OS::get_unix_time() const {
- return 0;
-}
-
-uint64_t OS::get_system_time_secs() const {
- return 0;
-}
-
-uint64_t OS::get_system_time_msecs() const {
+double OS::get_unix_time() const {
return 0;
}
diff --git a/core/os/os.h b/core/os/os.h
index 9ca034a01c..04e10518dc 100644
--- a/core/os/os.h
+++ b/core/os/os.h
@@ -209,9 +209,7 @@ public:
virtual Time get_time(bool local = false) const = 0;
virtual TimeZoneInfo get_time_zone_info() const = 0;
virtual String get_iso_date_time(bool local = false) const;
- virtual uint64_t get_unix_time() const;
- virtual uint64_t get_system_time_secs() const;
- virtual uint64_t get_system_time_msecs() const;
+ virtual double get_unix_time() const;
virtual void delay_usec(uint32_t p_usec) const = 0;
virtual uint64_t get_ticks_usec() const = 0;
diff --git a/core/resource.cpp b/core/resource.cpp
index 0af8c9c2b3..3b589793ef 100644
--- a/core/resource.cpp
+++ b/core/resource.cpp
@@ -33,6 +33,7 @@
#include "core/core_string_names.h"
#include "core/io/resource_loader.h"
#include "core/os/file_access.h"
+#include "core/os/os.h"
#include "core/script_language.h"
#include "scene/main/node.h" //only so casting works
@@ -431,7 +432,14 @@ void ResourceCache::setup() {
void ResourceCache::clear() {
if (resources.size()) {
- ERR_PRINT("Resources Still in use at Exit!");
+ ERR_PRINT("Resources still in use at exit (run with --verbose for details).");
+ if (OS::get_singleton()->is_stdout_verbose()) {
+ const String *K = nullptr;
+ while ((K = resources.next(K))) {
+ Resource *r = resources[*K];
+ print_line(vformat("Resource still in use: %s (%s)", *K, r->get_class()));
+ }
+ }
}
resources.clear();
@@ -442,12 +450,6 @@ void ResourceCache::clear() {
}
void ResourceCache::reload_externals() {
- /*
- const String *K=nullptr;
- while ((K=resources.next(K))) {
- resources[*K]->reload_external_data();
- }
- */
}
bool ResourceCache::has(const String &p_path) {
@@ -530,6 +532,5 @@ void ResourceCache::dump(const char *p_file, bool p_short) {
}
lock->read_unlock();
-
#endif
}
diff --git a/core/ustring.cpp b/core/ustring.cpp
index cfb547742a..444338d5ae 100644
--- a/core/ustring.cpp
+++ b/core/ustring.cpp
@@ -4143,27 +4143,40 @@ String String::sprintf(const Array &values, bool *error) const {
}
double value = values[value_index];
- String str = String::num(value, min_decimals);
+ bool is_negative = (value < 0);
+ String str = String::num(ABS(value), min_decimals);
// Pad decimals out.
str = str.pad_decimals(min_decimals);
- // Show sign
- if (show_sign && str.left(1) != "-") {
- str = str.insert(0, "+");
- }
+ int initial_len = str.length();
- // Padding
+ // Padding. Leave room for sign later if required.
+ int pad_chars_count = (is_negative || show_sign) ? min_chars - 1 : min_chars;
+ String pad_char = pad_with_zeroes ? String("0") : String(" ");
if (left_justified) {
- str = str.rpad(min_chars);
+ if (pad_with_zeroes) {
+ return "left justification cannot be used with zeros as the padding";
+ } else {
+ str = str.rpad(pad_chars_count, pad_char);
+ }
} else {
- str = str.lpad(min_chars);
+ str = str.lpad(pad_chars_count, pad_char);
+ }
+
+ // Add sign if needed.
+ if (show_sign || is_negative) {
+ String sign_char = is_negative ? "-" : "+";
+ if (left_justified) {
+ str = str.insert(0, sign_char);
+ } else {
+ str = str.insert(pad_with_zeroes ? 0 : str.length() - initial_len, sign_char);
+ }
}
formatted += str;
++value_index;
in_format = false;
-
break;
}
case 's': { // String
diff --git a/core/variant_call.cpp b/core/variant_call.cpp
index f1b2a1547d..a8beac1e44 100644
--- a/core/variant_call.cpp
+++ b/core/variant_call.cpp
@@ -923,6 +923,18 @@ struct _VariantCall {
VCALL_PTR1R(Basis, scaled);
VCALL_PTR0R(Basis, get_scale);
VCALL_PTR0R(Basis, get_euler);
+ VCALL_PTR0R(Basis, get_euler_xyz);
+ VCALL_PTR1(Basis, set_euler_xyz);
+ VCALL_PTR0R(Basis, get_euler_xzy);
+ VCALL_PTR1(Basis, set_euler_xzy);
+ VCALL_PTR0R(Basis, get_euler_yzx);
+ VCALL_PTR1(Basis, set_euler_yzx);
+ VCALL_PTR0R(Basis, get_euler_yxz);
+ VCALL_PTR1(Basis, set_euler_yxz);
+ VCALL_PTR0R(Basis, get_euler_zxy);
+ VCALL_PTR1(Basis, set_euler_zxy);
+ VCALL_PTR0R(Basis, get_euler_zyx);
+ VCALL_PTR1(Basis, set_euler_zyx);
VCALL_PTR1R(Basis, tdotx);
VCALL_PTR1R(Basis, tdoty);
VCALL_PTR1R(Basis, tdotz);
diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp
index bdcad03353..74f4f32c0e 100644
--- a/core/variant_parser.cpp
+++ b/core/variant_parser.cpp
@@ -479,12 +479,6 @@ Error VariantParser::_parse_construct(Stream *p_stream, Vector<T> &r_construct,
}
Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream, int &line, String &r_err_str, ResourceParser *p_res_parser) {
- /* {
- Error err = get_token(p_stream,token,line,r_err_str);
- if (err)
- return err;
- }*/
-
if (token.type == TK_CURLY_BRACKET_OPEN) {
Dictionary d;
Error err = _parse_dictionary(d, p_stream, line, r_err_str, p_res_parser);
@@ -501,7 +495,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = a;
return OK;
-
} else if (token.type == TK_IDENTIFIER) {
String id = token.value;
if (id == "true") {
@@ -523,10 +516,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 2) {
r_err_str = "Expected 2 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
value = Vector2(args[0], args[1]);
- return OK;
} else if (id == "Vector2i") {
Vector<int32_t> args;
Error err = _parse_construct<int32_t>(p_stream, args, line, r_err_str);
@@ -536,10 +529,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 2) {
r_err_str = "Expected 2 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
value = Vector2i(args[0], args[1]);
- return OK;
} else if (id == "Rect2") {
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
@@ -549,10 +542,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 4) {
r_err_str = "Expected 4 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
value = Rect2(args[0], args[1], args[2], args[3]);
- return OK;
} else if (id == "Rect2i") {
Vector<int32_t> args;
Error err = _parse_construct<int32_t>(p_stream, args, line, r_err_str);
@@ -562,10 +555,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 4) {
r_err_str = "Expected 4 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
value = Rect2i(args[0], args[1], args[2], args[3]);
- return OK;
} else if (id == "Vector3") {
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
@@ -575,10 +568,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 3) {
r_err_str = "Expected 3 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
value = Vector3(args[0], args[1], args[2]);
- return OK;
} else if (id == "Vector3i") {
Vector<int32_t> args;
Error err = _parse_construct<int32_t>(p_stream, args, line, r_err_str);
@@ -588,12 +581,11 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 3) {
r_err_str = "Expected 3 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
value = Vector3i(args[0], args[1], args[2]);
- return OK;
} else if (id == "Transform2D" || id == "Matrix32") { //compatibility
-
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
if (err) {
@@ -602,13 +594,14 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 6) {
r_err_str = "Expected 6 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
+
Transform2D m;
m[0] = Vector2(args[0], args[1]);
m[1] = Vector2(args[2], args[3]);
m[2] = Vector2(args[4], args[5]);
value = m;
- return OK;
} else if (id == "Plane") {
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
@@ -618,10 +611,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 4) {
r_err_str = "Expected 4 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
value = Plane(args[0], args[1], args[2], args[3]);
- return OK;
} else if (id == "Quat") {
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
@@ -631,11 +624,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 4) {
r_err_str = "Expected 4 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
value = Quat(args[0], args[1], args[2], args[3]);
- return OK;
-
} else if (id == "AABB" || id == "Rect3") {
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
@@ -645,13 +637,11 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 6) {
r_err_str = "Expected 6 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
value = AABB(Vector3(args[0], args[1], args[2]), Vector3(args[3], args[4], args[5]));
- return OK;
-
} else if (id == "Basis" || id == "Matrix3") { //compatibility
-
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
if (err) {
@@ -660,10 +650,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 9) {
r_err_str = "Expected 9 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
value = Basis(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]);
- return OK;
} else if (id == "Transform") {
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
@@ -673,11 +663,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 12) {
r_err_str = "Expected 12 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
value = Transform(Basis(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]), Vector3(args[9], args[10], args[11]));
- return OK;
-
} else if (id == "Color") {
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
@@ -687,11 +676,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
if (args.size() != 4) {
r_err_str = "Expected 4 arguments for constructor";
+ return ERR_PARSE_ERROR;
}
value = Color(args[0], args[1], args[2], args[3]);
- return OK;
-
} else if (id == "NodePath") {
get_token(p_stream, token, line, r_err_str);
if (token.type != TK_PARENTHESIS_OPEN) {
@@ -712,7 +700,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
r_err_str = "Expected ')'";
return ERR_PARSE_ERROR;
}
-
} else if (id == "RID") {
get_token(p_stream, token, line, r_err_str);
if (token.type != TK_PARENTHESIS_OPEN) {
@@ -733,8 +720,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
r_err_str = "Expected ')'";
return ERR_PARSE_ERROR;
}
-
- return OK;
} else if (id == "Object") {
get_token(p_stream, token, line, r_err_str);
if (token.type != TK_PARENTHESIS_OPEN) {
@@ -834,7 +819,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
at_key = true;
}
}
-
} else if (id == "Resource" || id == "SubResource" || id == "ExtResource") {
get_token(p_stream, token, line, r_err_str);
if (token.type != TK_PARENTHESIS_OPEN) {
@@ -850,8 +834,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = res;
-
- return OK;
} else if (p_res_parser && id == "ExtResource" && p_res_parser->ext_func) {
RES res;
Error err = p_res_parser->ext_func(p_res_parser->userdata, p_stream, res, line, r_err_str);
@@ -860,8 +842,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = res;
-
- return OK;
} else if (p_res_parser && id == "SubResource" && p_res_parser->sub_func) {
RES res;
Error err = p_res_parser->sub_func(p_res_parser->userdata, p_stream, res, line, r_err_str);
@@ -870,8 +850,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = res;
-
- return OK;
} else {
get_token(p_stream, token, line, r_err_str);
if (token.type == TK_STRING) {
@@ -889,14 +867,11 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = res;
- return OK;
-
} else {
r_err_str = "Expected string as argument for Resource().";
return ERR_PARSE_ERROR;
}
}
-
} else if (id == "PackedByteArray" || id == "PoolByteArray" || id == "ByteArray") {
Vector<uint8_t> args;
Error err = _parse_construct<uint8_t>(p_stream, args, line, r_err_str);
@@ -915,9 +890,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = arr;
-
- return OK;
-
} else if (id == "PackedInt32Array" || id == "PackedIntArray" || id == "PoolIntArray" || id == "IntArray") {
Vector<int32_t> args;
Error err = _parse_construct<int32_t>(p_stream, args, line, r_err_str);
@@ -936,9 +908,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = arr;
-
- return OK;
-
} else if (id == "PackedInt64Array") {
Vector<int64_t> args;
Error err = _parse_construct<int64_t>(p_stream, args, line, r_err_str);
@@ -957,9 +926,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = arr;
-
- return OK;
-
} else if (id == "PackedFloat32Array" || id == "PackedRealArray" || id == "PoolRealArray" || id == "FloatArray") {
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
@@ -978,8 +944,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = arr;
-
- return OK;
} else if (id == "PackedFloat64Array") {
Vector<double> args;
Error err = _parse_construct<double>(p_stream, args, line, r_err_str);
@@ -998,8 +962,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = arr;
-
- return OK;
} else if (id == "PackedStringArray" || id == "PoolStringArray" || id == "StringArray") {
get_token(p_stream, token, line, r_err_str);
if (token.type != TK_PARENTHESIS_OPEN) {
@@ -1046,9 +1008,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = arr;
-
- return OK;
-
} else if (id == "PackedVector2Array" || id == "PoolVector2Array" || id == "Vector2Array") {
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
@@ -1067,9 +1026,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = arr;
-
- return OK;
-
} else if (id == "PackedVector3Array" || id == "PoolVector3Array" || id == "Vector3Array") {
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
@@ -1088,9 +1044,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = arr;
-
- return OK;
-
} else if (id == "PackedColorArray" || id == "PoolColorArray" || id == "ColorArray") {
Vector<float> args;
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
@@ -1109,15 +1062,13 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
}
value = arr;
-
- return OK;
} else {
r_err_str = "Unexpected identifier: '" + id + "'.";
return ERR_PARSE_ERROR;
}
+ // All above branches end up here unless they had an early return.
return OK;
-
} else if (token.type == TK_NUMBER) {
value = token.value;
return OK;
diff --git a/doc/classes/AStar.xml b/doc/classes/AStar.xml
index e930abba87..2695e86f47 100644
--- a/doc/classes/AStar.xml
+++ b/doc/classes/AStar.xml
@@ -131,7 +131,8 @@
<argument index="1" name="include_disabled" type="bool" default="false">
</argument>
<description>
- Returns the ID of the closest point to [code]to_position[/code], optionally taking disabled points into account. Returns -1 if there are no points in the points pool.
+ Returns the ID of the closest point to [code]to_position[/code], optionally taking disabled points into account. Returns [code]-1[/code] if there are no points in the points pool.
+ [b]Note:[/b] If several points are the closest to [code]to_position[/code], the one with the smallest ID will be returned, ensuring a deterministic result.
</description>
</method>
<method name="get_closest_position_in_segment" qualifiers="const">
diff --git a/doc/classes/AStar2D.xml b/doc/classes/AStar2D.xml
index 16fa05041e..622d336ef6 100644
--- a/doc/classes/AStar2D.xml
+++ b/doc/classes/AStar2D.xml
@@ -114,7 +114,8 @@
<argument index="1" name="include_disabled" type="bool" default="false">
</argument>
<description>
- Returns the ID of the closest point to [code]to_position[/code], optionally taking disabled points into account. Returns -1 if there are no points in the points pool.
+ Returns the ID of the closest point to [code]to_position[/code], optionally taking disabled points into account. Returns [code]-1[/code] if there are no points in the points pool.
+ [b]Note:[/b] If several points are the closest to [code]to_position[/code], the one with the smallest ID will be returned, ensuring a deterministic result.
</description>
</method>
<method name="get_closest_position_in_segment" qualifiers="const">
diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml
index 7593f7dff4..9a3eccd8dc 100644
--- a/doc/classes/Array.xml
+++ b/doc/classes/Array.xml
@@ -200,7 +200,7 @@
<argument index="1" name="from" type="int" default="0">
</argument>
<description>
- Searches the array for a value and returns its index or -1 if not found. Optionally, the initial search index can be passed.
+ Searches the array for a value and returns its index or [code]-1[/code] if not found. Optionally, the initial search index can be passed.
</description>
</method>
<method name="find_last">
@@ -209,7 +209,7 @@
<argument index="0" name="value" type="Variant">
</argument>
<description>
- Searches the array in reverse order for a value and returns its index or -1 if not found.
+ Searches the array in reverse order for a value and returns its index or [code]-1[/code] if not found.
</description>
</method>
<method name="front">
@@ -232,6 +232,12 @@
["inside", 7].has(7) == true
["inside", 7].has("7") == false
[/codeblock]
+ [b]Note:[/b] This is equivalent to using the [code]in[/code] operator as follows:
+ [codeblock]
+ # Will evaluate to `true`.
+ if 2 in [2, 4, 6, 8]:
+ pass
+ [/codeblock]
</description>
</method>
<method name="hash">
diff --git a/doc/classes/AudioEffectRecord.xml b/doc/classes/AudioEffectRecord.xml
index 4dac81322f..a217342d98 100644
--- a/doc/classes/AudioEffectRecord.xml
+++ b/doc/classes/AudioEffectRecord.xml
@@ -4,6 +4,7 @@
Audio effect used for recording sound from a microphone.
</brief_description>
<description>
+ Allows the user to record sound from a microphone. It sets and gets the format in which the audio file will be recorded (8-bit, 16-bit, or compressed). It checks whether or not the recording is active, and if it is, records the sound. It then returns the recorded sample.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/audio/recording_with_microphone.html</link>
diff --git a/doc/classes/Dictionary.xml b/doc/classes/Dictionary.xml
index 385f4b7e59..5413fa33c6 100644
--- a/doc/classes/Dictionary.xml
+++ b/doc/classes/Dictionary.xml
@@ -126,6 +126,13 @@
</argument>
<description>
Returns [code]true[/code] if the dictionary has a given key.
+ [b]Note:[/b] This is equivalent to using the [code]in[/code] operator as follows:
+ [codeblock]
+ # Will evaluate to `true`.
+ if "godot" in {"godot": "engine"}:
+ pass
+ [/codeblock]
+ This method (like the [code]in[/code] operator) will evaluate to [code]true[/code] as long as the key exists, even if the associated value is [code]null[/code].
</description>
</method>
<method name="has_all">
@@ -148,6 +155,7 @@
# The line below prints `true`, whereas it would have printed `false` if both variables were compared directly.
print(dict1.hash() == dict2.hash())
[/codeblock]
+ [b]Note:[/b] Dictionaries with the same keys/values but in a different order will have a different hash.
</description>
</method>
<method name="keys">
diff --git a/doc/classes/DisplayServer.xml b/doc/classes/DisplayServer.xml
index 7fe712753c..f8306cbd72 100644
--- a/doc/classes/DisplayServer.xml
+++ b/doc/classes/DisplayServer.xml
@@ -127,12 +127,6 @@
<description>
</description>
</method>
- <method name="get_latin_keyboard_variant" qualifiers="const">
- <return type="int" enum="DisplayServer.LatinKeyboardVariant">
- </return>
- <description>
- </description>
- </method>
<method name="get_name" qualifiers="const">
<return type="String">
</return>
@@ -389,6 +383,52 @@
<description>
</description>
</method>
+ <method name="keyboard_get_current_layout" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ Returns active keyboard layout index.
+ [b]Note:[/b] This method is implemented on Linux, macOS and Windows.
+ </description>
+ </method>
+ <method name="keyboard_get_layout_count" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ Returns the number of keyboard layouts.
+ [b]Note:[/b] This method is implemented on Linux, macOS and Windows.
+ </description>
+ </method>
+ <method name="keyboard_get_layout_language" qualifiers="const">
+ <return type="String">
+ </return>
+ <argument index="0" name="index" type="int">
+ </argument>
+ <description>
+ Returns the ISO-639/BCP-47 language code of the keyboard layout at position [code]index[/code].
+ [b]Note:[/b] This method is implemented on Linux, macOS and Windows.
+ </description>
+ </method>
+ <method name="keyboard_get_layout_name" qualifiers="const">
+ <return type="String">
+ </return>
+ <argument index="0" name="index" type="int">
+ </argument>
+ <description>
+ Returns the localized name of the keyboard layout at position [code]index[/code].
+ [b]Note:[/b] This method is implemented on Linux, macOS and Windows.
+ </description>
+ </method>
+ <method name="keyboard_set_current_layout">
+ <return type="void">
+ </return>
+ <argument index="0" name="index" type="int">
+ </argument>
+ <description>
+ Sets active keyboard layout.
+ [b]Note:[/b] This method is implemented on Linux, macOS and Windows.
+ </description>
+ </method>
<method name="mouse_get_absolute_position" qualifiers="const">
<return type="Vector2i">
</return>
@@ -1021,20 +1061,6 @@
</constant>
<constant name="WINDOW_FLAG_MAX" value="5" enum="WindowFlags">
</constant>
- <constant name="LATIN_KEYBOARD_QWERTY" value="0" enum="LatinKeyboardVariant">
- </constant>
- <constant name="LATIN_KEYBOARD_QWERTZ" value="1" enum="LatinKeyboardVariant">
- </constant>
- <constant name="LATIN_KEYBOARD_AZERTY" value="2" enum="LatinKeyboardVariant">
- </constant>
- <constant name="LATIN_KEYBOARD_QZERTY" value="3" enum="LatinKeyboardVariant">
- </constant>
- <constant name="LATIN_KEYBOARD_DVORAK" value="4" enum="LatinKeyboardVariant">
- </constant>
- <constant name="LATIN_KEYBOARD_NEO" value="5" enum="LatinKeyboardVariant">
- </constant>
- <constant name="LATIN_KEYBOARD_COLEMAK" value="6" enum="LatinKeyboardVariant">
- </constant>
<constant name="WINDOW_EVENT_MOUSE_ENTER" value="0" enum="WindowEvent">
</constant>
<constant name="WINDOW_EVENT_MOUSE_EXIT" value="1" enum="WindowEvent">
diff --git a/doc/classes/File.xml b/doc/classes/File.xml
index 17c65731ff..b90039e496 100644
--- a/doc/classes/File.xml
+++ b/doc/classes/File.xml
@@ -54,28 +54,28 @@
<return type="int">
</return>
<description>
- Returns the next 16 bits from the file as an integer.
+ Returns the next 16 bits from the file as an integer. See [method store_16] for details on what values can be stored and retrieved this way.
</description>
</method>
<method name="get_32" qualifiers="const">
<return type="int">
</return>
<description>
- Returns the next 32 bits from the file as an integer.
+ Returns the next 32 bits from the file as an integer. See [method store_32] for details on what values can be stored and retrieved this way.
</description>
</method>
<method name="get_64" qualifiers="const">
<return type="int">
</return>
<description>
- Returns the next 64 bits from the file as an integer.
+ Returns the next 64 bits from the file as an integer. See [method store_64] for details on what values can be stored and retrieved this way.
</description>
</method>
<method name="get_8" qualifiers="const">
<return type="int">
</return>
<description>
- Returns the next 8 bits from the file as an integer.
+ Returns the next 8 bits from the file as an integer. See [method store_8] for details on what values can be stored and retrieved this way.
</description>
</method>
<method name="get_as_text" qualifiers="const">
@@ -297,7 +297,26 @@
</argument>
<description>
Stores an integer as 16 bits in the file.
- [b]Note:[/b] The [code]value[/code] should lie in the interval [code][0, 2^16 - 1][/code].
+ [b]Note:[/b] The [code]value[/code] should lie in the interval [code][0, 2^16 - 1][/code]. Any other value will overflow and wrap around.
+ To store a signed integer, use [method store_64] or store a signed integer from the interval [code][-2^15, 2^15 - 1][/code] (i.e. keeping one bit for the signedness) and compute its sign manually when reading. For example:
+ [codeblock]
+ const MAX_15B = 1 &lt;&lt; 15
+ const MAX_16B = 1 &lt;&lt; 16
+
+ func unsigned16_to_signed(unsigned):
+ return (unsigned + MAX_15B) % MAX_16B - MAX_15B
+
+ func _ready():
+ var f = File.new()
+ f.open("user://file.dat", File.WRITE_READ)
+ f.store_16(-42) # This wraps around and stores 65494 (2^16 - 42).
+ f.store_16(121) # In bounds, will store 121.
+ f.seek(0) # Go back to start to read the stored value.
+ var read1 = f.get_16() # 65494
+ var read2 = f.get_16() # 121
+ var converted1 = unsigned16_to_signed(read1) # -42
+ var converted2 = unsigned16_to_signed(read2) # 121
+ [/codeblock]
</description>
</method>
<method name="store_32">
@@ -307,7 +326,8 @@
</argument>
<description>
Stores an integer as 32 bits in the file.
- [b]Note:[/b] The [code]value[/code] should lie in the interval [code][0, 2^32 - 1][/code].
+ [b]Note:[/b] The [code]value[/code] should lie in the interval [code][0, 2^32 - 1][/code]. Any other value will overflow and wrap around.
+ To store a signed integer, use [method store_64], or convert it manually (see [method store_16] for an example).
</description>
</method>
<method name="store_64">
@@ -327,7 +347,8 @@
</argument>
<description>
Stores an integer as 8 bits in the file.
- [b]Note:[/b] The [code]value[/code] should lie in the interval [code][0, 255][/code].
+ [b]Note:[/b] The [code]value[/code] should lie in the interval [code][0, 255][/code]. Any other value will overflow and wrap around.
+ To store a signed integer, use [method store_64], or convert it manually (see [method store_16] for an example).
</description>
</method>
<method name="store_buffer">
diff --git a/doc/classes/FileDialog.xml b/doc/classes/FileDialog.xml
index 99563ee367..eaaccbd0dd 100644
--- a/doc/classes/FileDialog.xml
+++ b/doc/classes/FileDialog.xml
@@ -4,7 +4,7 @@
Dialog for selecting files or directories in the filesystem.
</brief_description>
<description>
- FileDialog is a preset dialog used to choose files and directories in the filesystem. It supports filter masks.
+ FileDialog is a preset dialog used to choose files and directories in the filesystem. It supports filter masks. The FileDialog automatically sets its window title according to the [member file_mode]. If you want to use a custom title, disable this by setting [member mode_overrides_title] to [code]false[/code].
</description>
<tutorials>
</tutorials>
@@ -132,6 +132,12 @@
</constant>
</constants>
<theme_items>
+ <theme_item name="file" type="Texture2D">
+ Custom icon for files.
+ </theme_item>
+ <theme_item name="file_icon_modulate" type="Color" default="Color( 1, 1, 1, 1 )">
+ The color modulation applied to the file icon.
+ </theme_item>
<theme_item name="files_disabled" type="Color" default="Color( 0, 0, 0, 0.7 )">
The color tint for disabled files (when the [FileDialog] is used in open folder mode).
</theme_item>
diff --git a/doc/classes/Image.xml b/doc/classes/Image.xml
index aa8c8d2443..d29fcfd96f 100644
--- a/doc/classes/Image.xml
+++ b/doc/classes/Image.xml
@@ -154,7 +154,7 @@
<argument index="4" name="data" type="PackedByteArray">
</argument>
<description>
- Creates a new image of given size and format. See [enum Format] constants. Fills the image with the given raw data. If [code]use_mipmaps[/code] is [code]true[/code] then generate mipmaps for this image. See the [method generate_mipmaps].
+ Creates a new image of given size and format. See [enum Format] constants. Fills the image with the given raw data. If [code]use_mipmaps[/code] is [code]true[/code] then loads mipmaps for this image from [code]data[/code]. See [method generate_mipmaps].
</description>
</method>
<method name="crop">
diff --git a/doc/classes/InputMap.xml b/doc/classes/InputMap.xml
index da93d7fb53..842c69de27 100644
--- a/doc/classes/InputMap.xml
+++ b/doc/classes/InputMap.xml
@@ -95,7 +95,7 @@
Returns [code]true[/code] if the given event is part of an existing action. This method ignores keyboard modifiers if the given [InputEvent] is not pressed (for proper release detection). See [method action_has_event] if you don't want this behavior.
</description>
</method>
- <method name="get_action_list">
+ <method name="action_get_events">
<return type="Array">
</return>
<argument index="0" name="action" type="StringName">
diff --git a/doc/classes/KinematicBody2D.xml b/doc/classes/KinematicBody2D.xml
index 6b2bbeb895..f0f4d83821 100644
--- a/doc/classes/KinematicBody2D.xml
+++ b/doc/classes/KinematicBody2D.xml
@@ -9,7 +9,7 @@
[b]Kinematic characters:[/b] KinematicBody2D also has an API for moving objects (the [method move_and_collide] and [method move_and_slide] methods) while performing collision tests. This makes them really useful to implement characters that collide against a world, but that don't require advanced physics.
</description>
<tutorials>
- <link>https://docs.godotengine.org/en/latest/tutorials/physics/kinematic_character_2d.html</link>
+ <link title="Kinematic character (2D)">https://docs.godotengine.org/en/latest/tutorials/physics/kinematic_character_2d.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/using_kinematic_body_2d.html</link>
</tutorials>
<methods>
diff --git a/doc/classes/Label.xml b/doc/classes/Label.xml
index 263fb6c022..3318f2757d 100644
--- a/doc/classes/Label.xml
+++ b/doc/classes/Label.xml
@@ -57,7 +57,7 @@
</member>
<member name="mouse_filter" type="int" setter="set_mouse_filter" getter="get_mouse_filter" override="true" enum="Control.MouseFilter" default="2" />
<member name="percent_visible" type="float" setter="set_percent_visible" getter="get_percent_visible" default="1.0">
- Limits the count of visible characters. If you set [code]percent_visible[/code] to 50, only up to half of the text's characters will display on screen. Useful to animate the text in a dialog box.
+ Limits the amount of visible characters. If you set [code]percent_visible[/code] to 0.5, only up to half of the text's characters will display on screen. Useful to animate the text in a dialog box.
</member>
<member name="size_flags_vertical" type="int" setter="set_v_size_flags" getter="get_v_size_flags" override="true" default="4" />
<member name="text" type="String" setter="set_text" getter="get_text" default="&quot;&quot;">
diff --git a/doc/classes/Light3D.xml b/doc/classes/Light3D.xml
index cb21db2d00..930a68be7f 100644
--- a/doc/classes/Light3D.xml
+++ b/doc/classes/Light3D.xml
@@ -4,7 +4,7 @@
Provides a base class for different kinds of light nodes.
</brief_description>
<description>
- Light3D is the abstract base class for light nodes, so it shouldn't be used directly (it can't be instanced). Other types of light nodes inherit from it. Light3D contains the common variables and parameters used for lighting.
+ Light3D is the [i]abstract[/i] base class for light nodes. As it can't be instanced, it shouldn't be used directly. Other types of light nodes inherit from it. Light3D contains the common variables and parameters used for lighting.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/lights_and_shadows.html</link>
@@ -36,19 +36,19 @@
If [code]true[/code], the light only appears in the editor and will not be visible at runtime.
</member>
<member name="light_angular_distance" type="float" setter="set_param" getter="get_param" default="0.0">
- Angular size of the light in degrees. Only available for [DirectionalLight3D]s. For reference, the sun from earth is approximately [code]0.5[/code].
+ The light's angular size in degrees. Only available for [DirectionalLight3D]s. For reference, the Sun from the Earth is approximately [code]0.5[/code].
</member>
<member name="light_bake_mode" type="int" setter="set_bake_mode" getter="get_bake_mode" enum="Light3D.BakeMode" default="1">
The light's bake mode. See [enum BakeMode].
</member>
<member name="light_color" type="Color" setter="set_color" getter="get_color" default="Color( 1, 1, 1, 1 )">
- The light's color.
+ The light's color. An [i]overbright[/i] color can be used to achieve a result equivalent to increasing the light's [member light_energy].
</member>
<member name="light_cull_mask" type="int" setter="set_cull_mask" getter="get_cull_mask" default="4294967295">
The light will affect objects in the selected layers.
</member>
<member name="light_energy" type="float" setter="set_param" getter="get_param" default="1.0">
- The light's strength multiplier.
+ The light's strength multiplier (this is not a physical unit). For [OmniLight3D] and [SpotLight3D], changing this value will only change the light color's intensity, not the light's radius.
</member>
<member name="light_indirect_energy" type="float" setter="set_param" getter="get_param" default="1.0">
Secondary multiplier used with indirect light (light bounces). Used with [GIProbe].
@@ -60,16 +60,16 @@
[Texture2D] projected by light. [member shadow_enabled] must be on for the projector to work. Light projectors make the light appear as if it is shining through a colored but transparent object, almost like light shining through stained glass.
</member>
<member name="light_size" type="float" setter="set_param" getter="get_param" default="0.0">
- The size of the light in Godot units. Only available for [OmniLight3D]s and [SpotLight3D]s.
+ The size of the light in Godot units. Only available for [OmniLight3D]s and [SpotLight3D]s. Increasing this value will make the light fade out slower and shadows appear blurrier. This can be used to simulate area lights to an extent.
</member>
<member name="light_specular" type="float" setter="set_param" getter="get_param" default="0.5">
- The intensity of the specular blob in objects affected by the light. At [code]0[/code] the light becomes a pure diffuse light.
+ The intensity of the specular blob in objects affected by the light. At [code]0[/code], the light becomes a pure diffuse light. When not baking emission, this can be used to avoid unrealistic reflections when placing lights above an emissive surface.
</member>
<member name="shadow_bias" type="float" setter="set_param" getter="get_param" default="0.02">
- Used to adjust shadow appearance. Too small a value results in self-shadowing, while too large a value causes shadows to separate from casters. Adjust as needed.
+ Used to adjust shadow appearance. Too small a value results in self-shadowing ("shadow acne"), while too large a value causes shadows to separate from casters ("peter-panning"). Adjust as needed.
</member>
<member name="shadow_blur" type="float" setter="set_param" getter="get_param" default="1.0">
- Blurs the edges of the shadow. Can be used to hide pixel artifacts in low resolution shadow maps. A high value can make shadows appear grainy and can cause other unwanted artifacts. Try to keep as near default as possible.
+ Blurs the edges of the shadow. Can be used to hide pixel artifacts in low-resolution shadow maps. A high value can impact performance, make shadows appear grainy and can cause other unwanted artifacts. Try to keep as near default as possible.
</member>
<member name="shadow_color" type="Color" setter="set_shadow_color" getter="get_shadow_color" default="Color( 0, 0, 0, 1 )">
The color of shadows cast by this light.
@@ -78,7 +78,7 @@
If [code]true[/code], the light will cast shadows.
</member>
<member name="shadow_normal_bias" type="float" setter="set_param" getter="get_param" default="1.0">
- Offsets the lookup into the shadow map by the objects normal. This can be used reduce self-shadowing artifacts without using [member shadow_bias]. In practice, this value should be tweaked along with [member shadow_bias] to reduce artifacts as much as possible.
+ Offsets the lookup into the shadow map by the object's normal. This can be used to reduce self-shadowing artifacts without using [member shadow_bias]. In practice, this value should be tweaked along with [member shadow_bias] to reduce artifacts as much as possible.
</member>
<member name="shadow_reverse_cull_face" type="bool" setter="set_shadow_reverse_cull_face" getter="get_shadow_reverse_cull_face" default="false">
If [code]true[/code], reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double-sided shadows with [constant GeometryInstance3D.SHADOW_CASTING_SETTING_DOUBLE_SIDED].
diff --git a/doc/classes/LineEdit.xml b/doc/classes/LineEdit.xml
index 3eeb892719..c1c54dd11b 100644
--- a/doc/classes/LineEdit.xml
+++ b/doc/classes/LineEdit.xml
@@ -43,7 +43,25 @@
<return type="void">
</return>
<description>
- Erases the [LineEdit] text.
+ Erases the [LineEdit]'s [member text].
+ </description>
+ </method>
+ <method name="delete_char_at_cursor">
+ <return type="void">
+ </return>
+ <description>
+ Deletes one character at the cursor's current position (equivalent to pressing [kbd]Delete[/kbd]).
+ </description>
+ </method>
+ <method name="delete_text">
+ <return type="void">
+ </return>
+ <argument index="0" name="from_column" type="int">
+ </argument>
+ <argument index="1" name="to_column" type="int">
+ </argument>
+ <description>
+ Deletes a section of the [member text] going from position [code]from_column[/code] to [code]to_column[/code]. Both parameters should be within the text's length.
</description>
</method>
<method name="deselect">
diff --git a/doc/classes/Material.xml b/doc/classes/Material.xml
index a37c8127f0..f3686876ca 100644
--- a/doc/classes/Material.xml
+++ b/doc/classes/Material.xml
@@ -17,7 +17,7 @@
</member>
<member name="render_priority" type="int" setter="set_render_priority" getter="get_render_priority" default="0">
Sets the render priority for transparent objects in 3D scenes. Higher priority objects will be sorted in front of lower priority objects.
- [b]Note:[/b] this only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are sorted based on depth, while transparent objects are sorted from back to front (subject to priority).
+ [b]Note:[/b] this only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority).
</member>
</members>
<constants>
diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml
index 04c8d2bf57..9617ee0437 100644
--- a/doc/classes/Node.xml
+++ b/doc/classes/Node.xml
@@ -55,6 +55,7 @@
It is only called if input processing is enabled, which is done automatically if this method is overridden, and can be toggled with [method set_process_input].
To consume the input event and stop it propagating further to other nodes, [method Viewport.set_input_as_handled] can be called.
For gameplay input, [method _unhandled_input] and [method _unhandled_key_input] are usually a better fit as they allow the GUI to intercept the events first.
+ [b]Note:[/b] This method is only called if the node is present in the scene tree (i.e. if it's not orphan).
</description>
</method>
<method name="_physics_process" qualifiers="virtual">
@@ -66,6 +67,7 @@
Called during the physics processing step of the main loop. Physics processing means that the frame rate is synced to the physics, i.e. the [code]delta[/code] variable should be constant.
It is only called if physics processing is enabled, which is done automatically if this method is overridden, and can be toggled with [method set_physics_process].
Corresponds to the [constant NOTIFICATION_PHYSICS_PROCESS] notification in [method Object._notification].
+ [b]Note:[/b] This method is only called if the node is present in the scene tree (i.e. if it's not orphan).
</description>
</method>
<method name="_process" qualifiers="virtual">
@@ -77,6 +79,7 @@
Called during the processing step of the main loop. Processing happens at every frame and as fast as possible, so the [code]delta[/code] time since the previous frame is not constant.
It is only called if processing is enabled, which is done automatically if this method is overridden, and can be toggled with [method set_process].
Corresponds to the [constant NOTIFICATION_PROCESS] notification in [method Object._notification].
+ [b]Note:[/b] This method is only called if the node is present in the scene tree (i.e. if it's not orphan).
</description>
</method>
<method name="_ready" qualifiers="virtual">
@@ -99,6 +102,7 @@
It is only called if unhandled input processing is enabled, which is done automatically if this method is overridden, and can be toggled with [method set_process_unhandled_input].
To consume the input event and stop it propagating further to other nodes, [method Viewport.set_input_as_handled] can be called.
For gameplay input, this and [method _unhandled_key_input] are usually a better fit than [method _input] as they allow the GUI to intercept the events first.
+ [b]Note:[/b] This method is only called if the node is present in the scene tree (i.e. if it's not orphan).
</description>
</method>
<method name="_unhandled_key_input" qualifiers="virtual">
@@ -111,6 +115,7 @@
It is only called if unhandled key input processing is enabled, which is done automatically if this method is overridden, and can be toggled with [method set_process_unhandled_key_input].
To consume the input event and stop it propagating further to other nodes, [method Viewport.set_input_as_handled] can be called.
For gameplay input, this and [method _unhandled_input] are usually a better fit than [method _input] as they allow the GUI to intercept the events first.
+ [b]Note:[/b] This method is only called if the node is present in the scene tree (i.e. if it's not orphan).
</description>
</method>
<method name="add_child">
diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml
index 03203e2ebb..b131d2728c 100644
--- a/doc/classes/OS.xml
+++ b/doc/classes/OS.xml
@@ -325,7 +325,7 @@
</description>
</method>
<method name="get_unix_time" qualifiers="const">
- <return type="int">
+ <return type="float">
</return>
<description>
Returns the current UNIX epoch timestamp.
diff --git a/doc/classes/Object.xml b/doc/classes/Object.xml
index 87bcab25db..8d08688b41 100644
--- a/doc/classes/Object.xml
+++ b/doc/classes/Object.xml
@@ -15,6 +15,7 @@
print("position" in n) # Prints "True".
print("other_property" in n) # Prints "False".
[/codeblock]
+ The [code]in[/code] operator will evaluate to [code]true[/code] as long as the key exists, even if the value is [code]null[/code].
Objects also receive notifications. Notifications are a simple way to notify the object about different events, so they can all be handled together. See [method _notification].
</description>
<tutorials>
diff --git a/doc/classes/OmniLight3D.xml b/doc/classes/OmniLight3D.xml
index 0bbc987156..000d67e691 100644
--- a/doc/classes/OmniLight3D.xml
+++ b/doc/classes/OmniLight3D.xml
@@ -16,7 +16,7 @@
The light's attenuation (drop-off) curve. A number of presets are available in the [b]Inspector[/b] by right-clicking the curve.
</member>
<member name="omni_range" type="float" setter="set_param" getter="get_param" default="5.0">
- The light's radius.
+ The light's radius. Note that the effectively lit area may appear to be smaller depending on the [member omni_attenuation] in use. No matter the [member omni_attenuation] in use, the light will never reach anything outside this radius.
</member>
<member name="omni_shadow_mode" type="int" setter="set_shadow_mode" getter="get_shadow_mode" enum="OmniLight3D.ShadowMode" default="1">
See [enum ShadowMode].
diff --git a/doc/classes/PhysicsMaterial.xml b/doc/classes/PhysicsMaterial.xml
index 6410626496..0889c238dc 100644
--- a/doc/classes/PhysicsMaterial.xml
+++ b/doc/classes/PhysicsMaterial.xml
@@ -12,6 +12,7 @@
</methods>
<members>
<member name="absorbent" type="bool" setter="set_absorbent" getter="is_absorbent" default="false">
+ If [code]true[/code], subtracts the bounciness from the colliding object's bounciness instead of adding it.
</member>
<member name="bounce" type="float" setter="set_bounce" getter="get_bounce" default="0.0">
The body's bounciness. Values range from [code]0[/code] (no bounce) to [code]1[/code] (full bounciness).
@@ -20,6 +21,7 @@
The body's friction. Values range from [code]0[/code] (frictionless) to [code]1[/code] (maximum friction).
</member>
<member name="rough" type="bool" setter="set_rough" getter="is_rough" default="false">
+ If [code]true[/code], the physics engine will use the friction of the object marked as "rough" when two objects collide. If [code]false[/code], the physics engine will use the lowest friction of all colliding objects instead. If [code]true[/code] for both colliding objects, the physics engine will use the highest friction.
</member>
</members>
<constants>
diff --git a/doc/classes/PhysicsServer2D.xml b/doc/classes/PhysicsServer2D.xml
index 9da739e57a..d7821b1045 100644
--- a/doc/classes/PhysicsServer2D.xml
+++ b/doc/classes/PhysicsServer2D.xml
@@ -864,28 +864,28 @@
Creates a damped spring joint between two bodies. If not specified, the second body is assumed to be the joint itself.
</description>
</method>
- <method name="damped_string_joint_get_param" qualifiers="const">
+ <method name="damped_spring_joint_get_param" qualifiers="const">
<return type="float">
</return>
<argument index="0" name="joint" type="RID">
</argument>
- <argument index="1" name="param" type="int" enum="PhysicsServer2D.DampedStringParam">
+ <argument index="1" name="param" type="int" enum="PhysicsServer2D.DampedSpringParam">
</argument>
<description>
- Returns the value of a damped spring joint parameter.
+ Returns the value of a damped spring joint parameter. See [enum DampedSpringParam] for a list of available parameters.
</description>
</method>
- <method name="damped_string_joint_set_param">
+ <method name="damped_spring_joint_set_param">
<return type="void">
</return>
<argument index="0" name="joint" type="RID">
</argument>
- <argument index="1" name="param" type="int" enum="PhysicsServer2D.DampedStringParam">
+ <argument index="1" name="param" type="int" enum="PhysicsServer2D.DampedSpringParam">
</argument>
<argument index="2" name="value" type="float">
</argument>
<description>
- Sets a damped spring joint parameter. See [enum DampedStringParam] for a list of available parameters.
+ Sets a damped spring joint parameter. See [enum DampedSpringParam] for a list of available parameters.
</description>
</method>
<method name="free_rid">
@@ -1247,13 +1247,13 @@
</constant>
<constant name="JOINT_PARAM_MAX_FORCE" value="2" enum="JointParam">
</constant>
- <constant name="DAMPED_STRING_REST_LENGTH" value="0" enum="DampedStringParam">
+ <constant name="DAMPED_SPRING_REST_LENGTH" value="0" enum="DampedSpringParam">
Sets the resting length of the spring joint. The joint will always try to go to back this length when pulled apart.
</constant>
- <constant name="DAMPED_STRING_STIFFNESS" value="1" enum="DampedStringParam">
+ <constant name="DAMPED_SPRING_STIFFNESS" value="1" enum="DampedSpringParam">
Sets the stiffness of the spring joint. The joint applies a force equal to the stiffness times the distance from its resting length.
</constant>
- <constant name="DAMPED_STRING_DAMPING" value="2" enum="DampedStringParam">
+ <constant name="DAMPED_SPRING_DAMPING" value="2" enum="DampedSpringParam">
Sets the damping ratio of the spring joint. A value of 0 indicates an undamped spring, while 1 causes the system to reach equilibrium as fast as possible (critical damping).
</constant>
<constant name="CCD_MODE_DISABLED" value="0" enum="CCDMode">
diff --git a/doc/classes/RigidBody2D.xml b/doc/classes/RigidBody2D.xml
index 8379fc5b58..a3fd2e81fd 100644
--- a/doc/classes/RigidBody2D.xml
+++ b/doc/classes/RigidBody2D.xml
@@ -127,7 +127,7 @@
The body's total applied torque.
</member>
<member name="can_sleep" type="bool" setter="set_can_sleep" getter="is_able_to_sleep" default="true">
- If [code]true[/code], the body will not calculate forces and will act as a static body if there is no movement. The body will wake up when other forces are applied via collisions or by using [method apply_impulse] or [method add_force].
+ If [code]true[/code], the body can enter sleep mode when there is no movement. See [member sleeping].
</member>
<member name="contact_monitor" type="bool" setter="set_contact_monitor" getter="is_contact_monitor_enabled" default="false">
If [code]true[/code], the body will emit signals when it collides with another RigidBody2D. See also [member contacts_reported].
@@ -165,7 +165,7 @@
If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.
</member>
<member name="sleeping" type="bool" setter="set_sleeping" getter="is_sleeping" default="false">
- If [code]true[/code], the body is sleeping and will not calculate forces until woken up by a collision or by using [method apply_impulse] or [method add_force].
+ If [code]true[/code], the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the [method apply_impulse] or [method add_force] methods.
</member>
<member name="weight" type="float" setter="set_weight" getter="get_weight" default="9.8">
The body's weight based on its mass and the [b]Default Gravity[/b] value in [b]Project &gt; Project Settings &gt; Physics &gt; 2d[/b].
@@ -214,7 +214,8 @@
</signal>
<signal name="sleeping_state_changed">
<description>
- Emitted when [member sleeping] changes.
+ Emitted when the physics engine changes the body's sleeping state.
+ [b]Note:[/b] Changing the value [member sleeping] will not trigger this signal. It is only emitted if the sleeping state is changed by the physics engine or [code]emit_signal("sleeping_state_changed")[/code] is used.
</description>
</signal>
</signals>
diff --git a/doc/classes/RigidBody3D.xml b/doc/classes/RigidBody3D.xml
index 1db818d6af..063cc3ca59 100644
--- a/doc/classes/RigidBody3D.xml
+++ b/doc/classes/RigidBody3D.xml
@@ -147,7 +147,7 @@
Lock the body's movement in the Z axis.
</member>
<member name="can_sleep" type="bool" setter="set_can_sleep" getter="is_able_to_sleep" default="true">
- If [code]true[/code], the body is deactivated when there is no movement, so it will not take part in the simulation until it is awaken by an external force.
+ If [code]true[/code], the body can enter sleep mode when there is no movement. See [member sleeping].
</member>
<member name="contact_monitor" type="bool" setter="set_contact_monitor" getter="is_contact_monitor_enabled" default="false">
If [code]true[/code], the RigidBody3D will emit signals when it collides with another RigidBody3D.
@@ -182,7 +182,7 @@
If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.
</member>
<member name="sleeping" type="bool" setter="set_sleeping" getter="is_sleeping" default="false">
- If [code]true[/code], the body is sleeping and will not calculate forces until woken up by a collision or the [code]apply_impulse[/code] method.
+ If [code]true[/code], the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the [method apply_impulse] or [method add_force] methods.
</member>
<member name="weight" type="float" setter="set_weight" getter="get_weight" default="9.8">
The body's weight based on its mass and the global 3D gravity. Global values are set in [b]Project &gt; Project Settings &gt; Physics &gt; 3d[/b].
@@ -233,7 +233,8 @@
</signal>
<signal name="sleeping_state_changed">
<description>
- Emitted when the body changes its sleeping state. Either by sleeping or waking up.
+ Emitted when the physics engine changes the body's sleeping state.
+ [b]Note:[/b] Changing the value [member sleeping] will not trigger this signal. It is only emitted if the sleeping state is changed by the physics engine or [code]emit_signal("sleeping_state_changed")[/code] is used.
</description>
</signal>
</signals>
diff --git a/doc/classes/Skeleton3D.xml b/doc/classes/Skeleton3D.xml
index 640cbe84f5..183fd5396f 100644
--- a/doc/classes/Skeleton3D.xml
+++ b/doc/classes/Skeleton3D.xml
@@ -31,6 +31,16 @@
[i]Deprecated soon.[/i]
</description>
</method>
+ <method name="bone_transform_to_world_transform">
+ <return type="Transform">
+ </return>
+ <argument index="0" name="bone_transform" type="Transform">
+ </argument>
+ <description>
+ Takes the given bone pose/transform and converts it to a world transform, relative to the [Skeleton3D] node.
+ This is useful for using the bone transform in calculations with transforms from [Node3D]-based nodes.
+ </description>
+ </method>
<method name="clear_bones">
<return type="void">
</return>
@@ -42,6 +52,7 @@
<return type="void">
</return>
<description>
+ Removes the global pose override on all bones in the skeleton.
</description>
</method>
<method name="find_bone" qualifiers="const">
@@ -136,12 +147,14 @@
<argument index="0" name="bone_idx" type="int">
</argument>
<description>
+ Returns whether the bone rest for the bone at [code]bone_idx[/code] is disabled.
</description>
</method>
<method name="localize_rests">
<return type="void">
</return>
<description>
+ Returns all bones in the skeleton to their rest poses.
</description>
</method>
<method name="physical_bones_add_collision_exception">
@@ -150,6 +163,8 @@
<argument index="0" name="exception" type="RID">
</argument>
<description>
+ Adds a collision exception to the physical bone.
+ Works just like the [RigidBody3D] node.
</description>
</method>
<method name="physical_bones_remove_collision_exception">
@@ -158,6 +173,8 @@
<argument index="0" name="exception" type="RID">
</argument>
<description>
+ Removes a collision exception to the physical bone.
+ Works just like the [RigidBody3D] node.
</description>
</method>
<method name="physical_bones_start_simulation">
@@ -166,12 +183,15 @@
<argument index="0" name="bones" type="StringName[]" default="[ ]">
</argument>
<description>
+ Tells the [PhysicalBone3D] nodes in the Skeleton to start simulating and reacting to the physics world.
+ Optionally, a list of bone names can be passed-in, allowing only the passed-in bones to be simulated.
</description>
</method>
<method name="physical_bones_stop_simulation">
<return type="void">
</return>
<description>
+ Tells the [PhysicalBone3D] nodes in the Skeleton to stop simulating.
</description>
</method>
<method name="register_skin">
@@ -180,6 +200,7 @@
<argument index="0" name="skin" type="Skin">
</argument>
<description>
+ Binds the given Skin to the Skeleton.
</description>
</method>
<method name="set_bone_custom_pose">
@@ -190,6 +211,8 @@
<argument index="1" name="custom_pose" type="Transform">
</argument>
<description>
+ Sets the custom pose transform, [code]custom_pose[/code], for the bone at [code]bone_idx[/code]. This pose is an addition to the bone rest pose.
+ [b]Note[/b]: The pose transform needs to be in bone space. Use [method world_transform_to_bone_transform] to convert a world transform, like one you can get from a [Node3D], to bone space.
</description>
</method>
<method name="set_bone_disable_rest">
@@ -200,6 +223,7 @@
<argument index="1" name="disable" type="bool">
</argument>
<description>
+ Disables the rest pose for the bone at [code]bone_idx[/code] if [code]true[/code], enables the bone rest if [code]false[/code].
</description>
</method>
<method name="set_bone_global_pose_override">
@@ -214,6 +238,9 @@
<argument index="3" name="persistent" type="bool" default="false">
</argument>
<description>
+ Sets the global pose transform, [code]pose[/code], for the bone at [code]bone_idx[/code].
+ [code]amount[/code] is the interpolation strengh that will be used when applying the pose, and [code]persistent[/code] determines if the applied pose will remain.
+ [b]Note[/b]: The pose transform needs to be in bone space. Use [method world_transform_to_bone_transform] to convert a world transform, like one you can get from a [Node3D], to bone space.
</description>
</method>
<method name="set_bone_parent">
@@ -237,6 +264,7 @@
</argument>
<description>
Returns the pose transform for bone [code]bone_idx[/code].
+ [b]Note[/b]: The pose transform needs to be in bone space. Use [method world_transform_to_bone_transform] to convert a world transform, like one you can get from a [Node3D], to bone space.
</description>
</method>
<method name="set_bone_rest">
@@ -267,6 +295,17 @@
<argument index="0" name="bone_idx" type="int">
</argument>
<description>
+ Unparents the bone at [code]bone_idx[/code] and sets its rest position to that of it's parent prior to being reset.
+ </description>
+ </method>
+ <method name="world_transform_to_bone_transform">
+ <return type="Transform">
+ </return>
+ <argument index="0" name="world_transform" type="Transform">
+ </argument>
+ <description>
+ Takes the given world transform, relative to the [Skeleton3D], and converts it to a bone pose/transform.
+ This is useful for using setting bone poses using transforms from [Node3D]-based nodes.
</description>
</method>
</methods>
diff --git a/doc/classes/SpotLight3D.xml b/doc/classes/SpotLight3D.xml
index f094818c21..d8d82a6852 100644
--- a/doc/classes/SpotLight3D.xml
+++ b/doc/classes/SpotLight3D.xml
@@ -22,7 +22,7 @@
The spotlight's light energy attenuation curve.
</member>
<member name="spot_range" type="float" setter="set_param" getter="get_param" default="5.0">
- The maximal range that can be reached by the spotlight.
+ The maximal range that can be reached by the spotlight. Note that the effectively lit area may appear to be smaller depending on the [member spot_attenuation] in use. No matter the [member spot_attenuation] in use, the light will never reach anything outside this range.
</member>
</members>
<constants>
diff --git a/doc/classes/String.xml b/doc/classes/String.xml
index 0dd6923129..24d92b822a 100644
--- a/doc/classes/String.xml
+++ b/doc/classes/String.xml
@@ -412,7 +412,13 @@
<argument index="1" name="from" type="int" default="0">
</argument>
<description>
- Finds the first occurrence of a substring. Returns the starting position of the substring or -1 if not found. Optionally, the initial search index can be passed.
+ Finds the first occurrence of a substring. Returns the starting position of the substring or [code]-1[/code] if not found. Optionally, the initial search index can be passed.
+ [b]Note:[/b] If you just want to know whether a string contains a substring, use the [code]in[/code] operator as follows:
+ [codeblock]
+ # Will evaluate to `false`.
+ if "i" in "team":
+ pass
+ [/codeblock]
</description>
</method>
<method name="find_last">
@@ -421,7 +427,7 @@
<argument index="0" name="what" type="String">
</argument>
<description>
- Finds the last occurrence of a substring. Returns the starting position of the substring or -1 if not found.
+ Finds the last occurrence of a substring. Returns the starting position of the substring or [code]-1[/code] if not found.
</description>
</method>
<method name="findn">
@@ -432,7 +438,7 @@
<argument index="1" name="from" type="int" default="0">
</argument>
<description>
- Finds the first occurrence of a substring, ignoring case. Returns the starting position of the substring or -1 if not found. Optionally, the initial search index can be passed.
+ Finds the first occurrence of a substring, ignoring case. Returns the starting position of the substring or [code]-1[/code] if not found. Optionally, the initial search index can be passed.
</description>
</method>
<method name="format">
@@ -947,7 +953,7 @@
<argument index="1" name="len" type="int" default="-1">
</argument>
<description>
- Returns part of the string from the position [code]from[/code] with length [code]len[/code]. Argument [code]len[/code] is optional and using -1 will return remaining characters from given position.
+ Returns part of the string from the position [code]from[/code] with length [code]len[/code]. Argument [code]len[/code] is optional and using [code]-1[/code] will return remaining characters from given position.
</description>
</method>
<method name="to_ascii">
diff --git a/doc/classes/SubViewportContainer.xml b/doc/classes/SubViewportContainer.xml
index e6a0bd4866..16d483e7f8 100644
--- a/doc/classes/SubViewportContainer.xml
+++ b/doc/classes/SubViewportContainer.xml
@@ -5,6 +5,7 @@
</brief_description>
<description>
A [Container] node that holds a [SubViewport], automatically setting its size.
+ [b]Note:[/b] Changing a SubViewportContainer's [member Control.rect_scale] will cause its contents to appear distorted. To change its visual size without causing distortion, adjust the node's margins instead (if it's not already in a container).
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/TileSet.xml b/doc/classes/TileSet.xml
index c647f83598..9a78e45d46 100644
--- a/doc/classes/TileSet.xml
+++ b/doc/classes/TileSet.xml
@@ -44,6 +44,8 @@
<argument index="1" name="neighbor_id" type="int">
</argument>
<description>
+ Determines when the auto-tiler should consider two different auto-tile IDs to be bound together.
+ [b]Note:[/b] [code]neighbor_id[/code] will be [code]-1[/code] ([constant TileMap.INVALID_CELL]) when checking a tile against an empty neighbor tile.
</description>
</method>
<method name="autotile_clear_bitmask_map">
diff --git a/doc/translations/classes.pot b/doc/translations/classes.pot
index 28db7e4e04..c18fecc6f8 100644
--- a/doc/translations/classes.pot
+++ b/doc/translations/classes.pot
@@ -35842,7 +35842,7 @@ msgstr ""
#: doc/classes/PhysicsServer2D.xml:888
msgid ""
-"Sets a damped spring joint parameter. See [enum DampedStringParam] for a "
+"Sets a damped spring joint parameter. See [enum DampedSpringParam] for a "
"list of available parameters."
msgstr ""
diff --git a/doc/translations/fr.po b/doc/translations/fr.po
index 57466d0b04..8010437cf7 100644
--- a/doc/translations/fr.po
+++ b/doc/translations/fr.po
@@ -35852,7 +35852,7 @@ msgstr ""
#: doc/classes/PhysicsServer2D.xml:888
msgid ""
-"Sets a damped spring joint parameter. See [enum DampedStringParam] for a "
+"Sets a damped spring joint parameter. See [enum DampedSpringParam] for a "
"list of available parameters."
msgstr ""
diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp
index 083cd64116..9a5fc6d1a4 100644
--- a/drivers/unix/os_unix.cpp
+++ b/drivers/unix/os_unix.cpp
@@ -163,21 +163,11 @@ String OS_Unix::get_name() const {
return "Unix";
}
-uint64_t OS_Unix::get_unix_time() const {
- return time(nullptr);
-};
-
-uint64_t OS_Unix::get_system_time_secs() const {
- struct timeval tv_now;
- gettimeofday(&tv_now, nullptr);
- return uint64_t(tv_now.tv_sec);
-}
-
-uint64_t OS_Unix::get_system_time_msecs() const {
+double OS_Unix::get_unix_time() const {
struct timeval tv_now;
gettimeofday(&tv_now, nullptr);
- return uint64_t(tv_now.tv_sec) * 1000 + uint64_t(tv_now.tv_usec) / 1000;
-}
+ return (double)tv_now.tv_sec + double(tv_now.tv_usec) / 1000000;
+};
OS::Date OS_Unix::get_date(bool utc) const {
time_t t = time(nullptr);
diff --git a/drivers/unix/os_unix.h b/drivers/unix/os_unix.h
index 7d235803dc..2982e0c55c 100644
--- a/drivers/unix/os_unix.h
+++ b/drivers/unix/os_unix.h
@@ -77,9 +77,7 @@ public:
virtual Time get_time(bool utc) const;
virtual TimeZoneInfo get_time_zone_info() const;
- virtual uint64_t get_unix_time() const;
- virtual uint64_t get_system_time_secs() const;
- virtual uint64_t get_system_time_msecs() const;
+ virtual double get_unix_time() const;
virtual void delay_usec(uint32_t p_usec) const;
virtual uint64_t get_ticks_usec() const;
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp
index 9888013ce6..95c7cc0bf1 100644
--- a/editor/code_editor.cpp
+++ b/editor/code_editor.cpp
@@ -307,18 +307,19 @@ void FindReplaceBar::_update_results_count() {
break;
}
+ int pos_subsequent = pos + searched.length();
if (is_whole_words()) {
- from_pos++; // Making sure we won't hit the same match next time, if we get out via a continue.
- if (pos > 0 && !is_symbol(full_text[pos - 1])) {
+ from_pos = pos + 1; // Making sure we won't hit the same match next time, if we get out via a continue.
+ if (pos > 0 && !(is_symbol(full_text[pos - 1]) || full_text[pos - 1] == '\n')) {
continue;
}
- if (pos + searched.length() < full_text.length() && !is_symbol(full_text[pos + searched.length()])) {
+ if (pos_subsequent < full_text.length() && !(is_symbol(full_text[pos_subsequent]) || full_text[pos_subsequent] == '\n')) {
continue;
}
}
results_count++;
- from_pos = pos + searched.length();
+ from_pos = pos_subsequent;
}
}
diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp
index e4a853dbd7..73468f8ce0 100644
--- a/editor/create_dialog.cpp
+++ b/editor/create_dialog.cpp
@@ -347,20 +347,22 @@ void CreateDialog::_update_search() {
} else {
bool found = false;
String type2 = type;
+ bool cpp_type2 = cpp_type;
if (!cpp_type && !search_loaded_scripts.has(type)) {
search_loaded_scripts[type] = ed.script_class_load_script(type);
}
- while (type2 != "" && (cpp_type ? ClassDB::is_parent_class(type2, base_type) : ed.script_class_is_parent(type2, base_type)) && type2 != base_type) {
+ while (type2 != "" && (cpp_type2 ? ClassDB::is_parent_class(type2, base_type) : ed.script_class_is_parent(type2, base_type)) && type2 != base_type) {
if (search_box->get_text().is_subsequence_ofi(type2)) {
found = true;
break;
}
- type2 = cpp_type ? ClassDB::get_parent_class(type2) : ed.script_class_get_base(type2);
+ type2 = cpp_type2 ? ClassDB::get_parent_class(type2) : ed.script_class_get_base(type2);
+ cpp_type2 = cpp_type2 || ClassDB::class_exists(type2); // Built-in class can't inherit from custom type, so we can skip the check if it's already true.
- if (!cpp_type && !search_loaded_scripts.has(type2)) {
+ if (!cpp_type2 && !search_loaded_scripts.has(type2)) {
search_loaded_scripts[type2] = ed.script_class_load_script(type2);
}
}
@@ -511,30 +513,45 @@ String CreateDialog::get_selected_type() {
Object *CreateDialog::instance_selected() {
TreeItem *selected = search_options->get_selected();
- if (selected) {
- Variant md = selected->get_metadata(0);
+ if (!selected) {
+ return nullptr;
+ }
- String custom;
- if (md.get_type() != Variant::NIL) {
- custom = md;
- }
+ Variant md = selected->get_metadata(0);
+ String custom;
+ if (md.get_type() != Variant::NIL) {
+ custom = md;
+ }
- if (custom != String()) {
- if (ScriptServer::is_global_class(custom)) {
- Object *obj = EditorNode::get_editor_data().script_class_instance(custom);
- Node *n = Object::cast_to<Node>(obj);
- if (n) {
- n->set_name(custom);
- }
- return obj;
+ Object *obj = nullptr;
+
+ if (!custom.empty()) {
+ if (ScriptServer::is_global_class(custom)) {
+ obj = EditorNode::get_editor_data().script_class_instance(custom);
+ Node *n = Object::cast_to<Node>(obj);
+ if (n) {
+ n->set_name(custom);
}
- return EditorNode::get_editor_data().instance_custom_type(selected->get_text(0), custom);
+ obj = n;
} else {
- return ClassDB::instance(selected->get_text(0));
+ obj = EditorNode::get_editor_data().instance_custom_type(selected->get_text(0), custom);
+ }
+ } else {
+ obj = ClassDB::instance(selected->get_text(0));
+ }
+
+ // Check if any Object-type property should be instantiated.
+ List<PropertyInfo> pinfo;
+ obj->get_property_list(&pinfo);
+
+ for (List<PropertyInfo>::Element *E = pinfo.front(); E; E = E->next()) {
+ if (E->get().type == Variant::OBJECT && E->get().usage & PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT) {
+ Object *prop = ClassDB::instance(E->get().class_name);
+ obj->set(E->get().name, prop);
}
}
- return nullptr;
+ return obj;
}
void CreateDialog::_item_selected() {
diff --git a/editor/debugger/editor_debugger_inspector.cpp b/editor/debugger/editor_debugger_inspector.cpp
index 125439d09b..dcd7220ed0 100644
--- a/editor/debugger/editor_debugger_inspector.cpp
+++ b/editor/debugger/editor_debugger_inspector.cpp
@@ -153,12 +153,9 @@ ObjectID EditorDebuggerInspector::add_object(const Array &p_arr) {
if (path.find("::") != -1) {
// built-in resource
String base_path = path.get_slice("::", 0);
- if (ResourceLoader::get_resource_type(base_path) == "PackedScene") {
- if (!EditorNode::get_singleton()->is_scene_open(base_path)) {
- EditorNode::get_singleton()->load_scene(base_path);
- }
- } else {
- EditorNode::get_singleton()->load_resource(base_path);
+ RES dependency = ResourceLoader::load(base_path);
+ if (dependency.is_valid()) {
+ remote_dependencies.insert(dependency);
}
}
var = ResourceLoader::load(path);
@@ -211,6 +208,7 @@ void EditorDebuggerInspector::clear_cache() {
memdelete(E->value());
}
remote_objects.clear();
+ remote_dependencies.clear();
}
Object *EditorDebuggerInspector::get_object(ObjectID p_id) {
diff --git a/editor/debugger/editor_debugger_inspector.h b/editor/debugger/editor_debugger_inspector.h
index 638dee3c3f..7d13a4c362 100644
--- a/editor/debugger/editor_debugger_inspector.h
+++ b/editor/debugger/editor_debugger_inspector.h
@@ -69,6 +69,7 @@ class EditorDebuggerInspector : public EditorInspector {
private:
ObjectID inspected_object_id;
Map<ObjectID, EditorDebuggerRemoteObject *> remote_objects;
+ Set<RES> remote_dependencies;
EditorDebuggerRemoteObject *variables;
void _object_selected(ObjectID p_object);
diff --git a/editor/doc_data.cpp b/editor/doc_data.cpp
index 53641da0e9..c52d91b03d 100644
--- a/editor/doc_data.cpp
+++ b/editor/doc_data.cpp
@@ -881,9 +881,14 @@ Error DocData::_load(Ref<XMLParser> parser) {
String name3 = parser->get_node_name();
if (name3 == "link") {
+ TutorialDoc tutorial;
+ if (parser->has_attribute("title")) {
+ tutorial.title = parser->get_attribute_value("title");
+ }
parser->read();
if (parser->get_node_type() == XMLParser::NODE_TEXT) {
- c.tutorials.push_back(parser->get_node_data().strip_edges());
+ tutorial.link = parser->get_node_data().strip_edges();
+ c.tutorials.push_back(tutorial);
}
} else {
ERR_FAIL_V_MSG(ERR_FILE_CORRUPT, "Invalid tag in doc file: " + name3 + ".");
@@ -1055,7 +1060,9 @@ Error DocData::save_classes(const String &p_default_path, const Map<String, Stri
_write_string(f, 1, "<tutorials>");
for (int i = 0; i < c.tutorials.size(); i++) {
- _write_string(f, 2, "<link>" + c.tutorials.get(i).xml_escape() + "</link>");
+ TutorialDoc tutorial = c.tutorials.get(i);
+ String title_attribute = (!tutorial.title.empty()) ? " title=\"" + tutorial.title.xml_escape() + "\"" : "";
+ _write_string(f, 2, "<link" + title_attribute + ">" + tutorial.link.xml_escape() + "</link>");
}
_write_string(f, 1, "</tutorials>");
diff --git a/editor/doc_data.h b/editor/doc_data.h
index 8c93bfa597..1880be81ed 100644
--- a/editor/doc_data.h
+++ b/editor/doc_data.h
@@ -82,13 +82,18 @@ public:
}
};
+ struct TutorialDoc {
+ String link;
+ String title;
+ };
+
struct ClassDoc {
String name;
String inherits;
String category;
String brief_description;
String description;
- Vector<String> tutorials;
+ Vector<TutorialDoc> tutorials;
Vector<MethodDoc> methods;
Vector<MethodDoc> signals;
Vector<ConstantDoc> constants;
diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp
index f8dec13a5c..5cf5201b18 100644
--- a/editor/editor_audio_buses.cpp
+++ b/editor/editor_audio_buses.cpp
@@ -545,6 +545,17 @@ void EditorAudioBus::_gui_input(const Ref<InputEvent> &p_event) {
}
}
+void EditorAudioBus::_unhandled_key_input(Ref<InputEvent> p_event) {
+ Ref<InputEventKey> k = p_event;
+ if (k.is_valid() && k->is_pressed() && !k->is_echo() && k->get_keycode() == KEY_DELETE) {
+ TreeItem *current_effect = effects->get_selected();
+ if (current_effect && current_effect->get_metadata(0).get_type() == Variant::INT) {
+ _delete_effect_pressed(0);
+ accept_event();
+ }
+ }
+}
+
void EditorAudioBus::_bus_popup_pressed(int p_option) {
if (p_option == 2) {
// Reset volume
@@ -738,6 +749,7 @@ void EditorAudioBus::_bind_methods() {
ClassDB::bind_method("update_bus", &EditorAudioBus::update_bus);
ClassDB::bind_method("update_send", &EditorAudioBus::update_send);
ClassDB::bind_method("_gui_input", &EditorAudioBus::_gui_input);
+ ClassDB::bind_method("_unhandled_key_input", &EditorAudioBus::_unhandled_key_input);
ClassDB::bind_method("get_drag_data_fw", &EditorAudioBus::get_drag_data_fw);
ClassDB::bind_method("can_drop_data_fw", &EditorAudioBus::can_drop_data_fw);
ClassDB::bind_method("drop_data_fw", &EditorAudioBus::drop_data_fw);
@@ -761,6 +773,7 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) {
add_child(vb);
set_v_size_flags(SIZE_EXPAND_FILL);
+ set_process_unhandled_key_input(true);
track_name = memnew(LineEdit);
track_name->connect("text_entered", callable_mp(this, &EditorAudioBus::_name_changed));
diff --git a/editor/editor_audio_buses.h b/editor/editor_audio_buses.h
index 6b2d9e4436..65caf84f0f 100644
--- a/editor/editor_audio_buses.h
+++ b/editor/editor_audio_buses.h
@@ -92,6 +92,7 @@ class EditorAudioBus : public PanelContainer {
mutable bool hovering_drop;
void _gui_input(const Ref<InputEvent> &p_event);
+ void _unhandled_key_input(Ref<InputEvent> p_event);
void _bus_popup_pressed(int p_option);
void _name_changed(const String &p_new_name);
diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp
index 716ead9afc..25594bf7c8 100644
--- a/editor/editor_export.cpp
+++ b/editor/editor_export.cpp
@@ -90,6 +90,19 @@ Ref<EditorExportPlatform> EditorExportPreset::get_platform() const {
return platform;
}
+void EditorExportPreset::update_files_to_export() {
+ Vector<String> to_remove;
+ for (Set<String>::Element *E = selected_files.front(); E; E = E->next()) {
+ if (!FileAccess::exists(E->get())) {
+ to_remove.push_back(E->get());
+ }
+ }
+ for (int i = 0; i < to_remove.size(); ++i) {
+ selected_files.erase(to_remove[i]);
+ }
+ EditorExport::singleton->save_presets();
+}
+
Vector<String> EditorExportPreset::get_files_to_export() const {
Vector<String> files;
for (Set<String>::Element *E = selected_files.front(); E; E = E->next()) {
@@ -1298,7 +1311,11 @@ void EditorExport::load_config() {
Vector<String> files = config->get_value(section, "export_files");
for (int i = 0; i < files.size(); i++) {
- preset->add_export_file(files[i]);
+ if (!FileAccess::exists(files[i])) {
+ preset->remove_export_file(files[i]);
+ } else {
+ preset->add_export_file(files[i]);
+ }
}
}
diff --git a/editor/editor_export.h b/editor/editor_export.h
index 4978b39248..8ad8326f10 100644
--- a/editor/editor_export.h
+++ b/editor/editor_export.h
@@ -94,6 +94,8 @@ public:
bool has(const StringName &p_property) const { return values.has(p_property); }
+ void update_files_to_export();
+
Vector<String> get_files_to_export() const;
void add_export_file(const String &p_path);
diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp
index 30cf7d1e7a..f50ac6d580 100644
--- a/editor/editor_help.cpp
+++ b/editor/editor_help.cpp
@@ -243,6 +243,9 @@ void EditorHelp::_add_method(const DocData::MethodDoc &p_method, bool p_overview
if (p_overview) {
class_desc->push_cell();
class_desc->push_align(RichTextLabel::ALIGN_RIGHT);
+ } else {
+ static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
+ class_desc->add_text(String(prefix));
}
_add_type(p_method.return_type, p_method.return_enum);
@@ -378,7 +381,6 @@ void EditorHelp::_update_doc() {
class_desc->push_color(title_color);
class_desc->push_font(doc_font);
class_desc->add_text(TTR("Inherits:") + " ");
- class_desc->pop();
String inherits = cd.inherits;
@@ -393,6 +395,7 @@ void EditorHelp::_update_doc() {
}
class_desc->pop();
+ class_desc->pop();
class_desc->add_newline();
}
@@ -401,13 +404,12 @@ void EditorHelp::_update_doc() {
bool found = false;
bool prev = false;
+ class_desc->push_font(doc_font);
for (Map<String, DocData::ClassDoc>::Element *E = doc->class_list.front(); E; E = E->next()) {
if (E->get().inherits == cd.name) {
if (!found) {
class_desc->push_color(title_color);
- class_desc->push_font(doc_font);
class_desc->add_text(TTR("Inherited by:") + " ");
- class_desc->pop();
found = true;
}
@@ -419,6 +421,7 @@ void EditorHelp::_update_doc() {
prev = true;
}
}
+ class_desc->pop();
if (found) {
class_desc->pop();
@@ -480,8 +483,8 @@ void EditorHelp::_update_doc() {
class_desc->add_newline();
for (int i = 0; i < cd.tutorials.size(); i++) {
- const String link = DTR(cd.tutorials[i]);
- String linktxt = link;
+ const String link = DTR(cd.tutorials[i].link);
+ String linktxt = (cd.tutorials[i].title.empty()) ? link : DTR(cd.tutorials[i].title);
const int seppos = linktxt.find("//");
if (seppos != -1) {
linktxt = link.right(seppos + 2);
@@ -758,6 +761,8 @@ void EditorHelp::_update_doc() {
signal_line[cd.signals[i].name] = class_desc->get_line_count() - 2; //gets overridden if description
class_desc->push_font(doc_code_font); // monofont
class_desc->push_color(headline_color);
+ static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
+ class_desc->add_text(String(prefix));
_add_text(cd.signals[i].name);
class_desc->pop();
class_desc->push_color(symbol_color);
@@ -835,10 +840,10 @@ void EditorHelp::_update_doc() {
for (Map<String, Vector<DocData::ConstantDoc>>::Element *E = enums.front(); E; E = E->next()) {
enum_line[E->key()] = class_desc->get_line_count() - 2;
+ class_desc->push_font(doc_code_font);
class_desc->push_color(title_color);
class_desc->add_text("enum ");
class_desc->pop();
- class_desc->push_font(doc_code_font);
String e = E->key();
if ((e.get_slice_count(".") > 1) && (e.get_slice(".", 0) == edited_class)) {
e = e.get_slice(".", 1);
@@ -851,6 +856,8 @@ void EditorHelp::_update_doc() {
class_desc->push_color(symbol_color);
class_desc->add_text(":");
class_desc->pop();
+
+ class_desc->add_newline();
class_desc->add_newline();
class_desc->push_indent(1);
@@ -869,6 +876,8 @@ void EditorHelp::_update_doc() {
class_desc->push_font(doc_code_font);
class_desc->push_color(headline_color);
+ static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
+ class_desc->add_text(String(prefix));
_add_text(enum_list[i].name);
class_desc->pop();
class_desc->push_color(symbol_color);
@@ -880,14 +889,15 @@ void EditorHelp::_update_doc() {
class_desc->pop();
if (enum_list[i].description != "") {
class_desc->push_font(doc_font);
- //class_desc->add_text(" ");
- class_desc->push_indent(1);
class_desc->push_color(comment_color);
+ static const CharType dash[6] = { ' ', ' ', 0x2013 /* en dash */, ' ', ' ', 0 };
+ class_desc->add_text(String(dash));
_add_text(DTR(enum_list[i].description));
class_desc->pop();
class_desc->pop();
- class_desc->pop(); // indent
- class_desc->add_newline();
+ if (DTR(enum_list[i].description).find("\n") > 0) {
+ class_desc->add_newline();
+ }
}
class_desc->add_newline();
@@ -931,6 +941,9 @@ void EditorHelp::_update_doc() {
class_desc->add_text(String(prefix));
class_desc->pop();
}
+ } else {
+ static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
+ class_desc->add_text(String(prefix));
}
class_desc->push_color(headline_color);
@@ -946,13 +959,15 @@ void EditorHelp::_update_doc() {
class_desc->pop();
if (constants[i].description != "") {
class_desc->push_font(doc_font);
- class_desc->push_indent(1);
class_desc->push_color(comment_color);
+ static const CharType dash[6] = { ' ', ' ', 0x2013 /* en dash */, ' ', ' ', 0 };
+ class_desc->add_text(String(dash));
_add_text(DTR(constants[i].description));
class_desc->pop();
class_desc->pop();
- class_desc->pop(); // indent
- class_desc->add_newline();
+ if (DTR(constants[i].description).find("\n") > 0) {
+ class_desc->add_newline();
+ }
}
class_desc->add_newline();
@@ -987,6 +1002,9 @@ void EditorHelp::_update_doc() {
class_desc->push_cell();
class_desc->push_font(doc_code_font);
+ static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
+ class_desc->add_text(String(prefix));
+
_add_type(cd.properties[i].type, cd.properties[i].enumeration);
class_desc->add_text(" ");
class_desc->pop(); // font
@@ -1015,6 +1033,11 @@ void EditorHelp::_update_doc() {
class_desc->pop(); // font
class_desc->pop(); // cell
+ Map<String, DocData::MethodDoc> method_map;
+ for (int j = 0; j < methods.size(); j++) {
+ method_map[methods[j].name] = methods[j];
+ }
+
if (cd.properties[i].setter != "") {
class_desc->push_cell();
class_desc->pop(); // cell
@@ -1022,7 +1045,14 @@ void EditorHelp::_update_doc() {
class_desc->push_cell();
class_desc->push_font(doc_code_font);
class_desc->push_color(text_color);
- class_desc->add_text(cd.properties[i].setter + TTR("(value)"));
+ if (method_map[cd.properties[i].setter].arguments.size() > 1) {
+ // Setters with additional arguments are exposed in the method list, so we link them here for quick access.
+ class_desc->push_meta("@method " + cd.properties[i].setter);
+ class_desc->add_text(cd.properties[i].setter + TTR("(value)"));
+ class_desc->pop();
+ } else {
+ class_desc->add_text(cd.properties[i].setter + TTR("(value)"));
+ }
class_desc->pop(); // color
class_desc->push_color(comment_color);
class_desc->add_text(" setter");
@@ -1039,7 +1069,14 @@ void EditorHelp::_update_doc() {
class_desc->push_cell();
class_desc->push_font(doc_code_font);
class_desc->push_color(text_color);
- class_desc->add_text(cd.properties[i].getter + "()");
+ if (method_map[cd.properties[i].getter].arguments.size() > 0) {
+ // Getters with additional arguments are exposed in the method list, so we link them here for quick access.
+ class_desc->push_meta("@method " + cd.properties[i].getter);
+ class_desc->add_text(cd.properties[i].getter + "()");
+ class_desc->pop();
+ } else {
+ class_desc->add_text(cd.properties[i].getter + "()");
+ }
class_desc->pop(); //color
class_desc->push_color(comment_color);
class_desc->add_text(" getter");
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 14a03c5377..9a9a1bfdeb 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -619,7 +619,9 @@ void EditorNode::_fs_changed() {
preset.unref();
}
if (preset.is_null()) {
- export_error = vformat("Invalid export preset name: %s.", preset_name);
+ export_error = vformat(
+ "Invalid export preset name: %s. Make sure `export_presets.cfg` is present in the current directory.",
+ preset_name);
} else {
Ref<EditorExportPlatform> platform = preset->get_platform();
if (platform.is_null()) {
@@ -903,19 +905,19 @@ void EditorNode::_dialog_display_load_error(String p_file, Error p_error) {
if (p_error) {
switch (p_error) {
case ERR_CANT_OPEN: {
- show_accept(vformat(TTR("Can't open '%s'. The file could have been moved or deleted."), p_file.get_file()), TTR("OK"));
+ show_accept(vformat(TTR("Can't open file '%s'. The file could have been moved or deleted."), p_file.get_file()), TTR("OK"));
} break;
case ERR_PARSE_ERROR: {
- show_accept(vformat(TTR("Error while parsing '%s'."), p_file.get_file()), TTR("OK"));
+ show_accept(vformat(TTR("Error while parsing file '%s'."), p_file.get_file()), TTR("OK"));
} break;
case ERR_FILE_CORRUPT: {
- show_accept(vformat(TTR("Unexpected end of file '%s'."), p_file.get_file()), TTR("OK"));
+ show_accept(vformat(TTR("Scene file '%s' appears to be invalid/corrupt."), p_file.get_file()), TTR("OK"));
} break;
case ERR_FILE_NOT_FOUND: {
- show_accept(vformat(TTR("Missing '%s' or its dependencies."), p_file.get_file()), TTR("OK"));
+ show_accept(vformat(TTR("Missing file '%s' or one its dependencies."), p_file.get_file()), TTR("OK"));
} break;
default: {
- show_accept(vformat(TTR("Error while loading '%s'."), p_file.get_file()), TTR("OK"));
+ show_accept(vformat(TTR("Error while loading file '%s'."), p_file.get_file()), TTR("OK"));
} break;
}
}
@@ -3254,13 +3256,13 @@ Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, b
if (!new_scene) {
sdata.unref();
- _dialog_display_load_error(lpath, ERR_FILE_NOT_FOUND);
+ _dialog_display_load_error(lpath, ERR_FILE_CORRUPT);
opening_prev = false;
if (prev != -1) {
set_current_scene(prev);
editor_data.remove_scene(idx);
}
- return ERR_FILE_NOT_FOUND;
+ return ERR_FILE_CORRUPT;
}
if (p_set_inherited) {
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp
index 81c4e48974..74267452e6 100644
--- a/editor/editor_properties.cpp
+++ b/editor/editor_properties.cpp
@@ -581,6 +581,7 @@ public:
Vector<Rect2> flag_rects;
Vector<String> names;
Vector<String> tooltips;
+ int hovered_index;
virtual Size2 get_minimum_size() const {
Ref<Font> font = get_theme_font("font", "Label");
@@ -596,56 +597,79 @@ public:
return String();
}
void _gui_input(const Ref<InputEvent> &p_ev) {
- Ref<InputEventMouseButton> mb = p_ev;
- if (mb.is_valid() && mb->get_button_index() == BUTTON_LEFT && mb->is_pressed()) {
+ const Ref<InputEventMouseMotion> mm = p_ev;
+
+ if (mm.is_valid()) {
for (int i = 0; i < flag_rects.size(); i++) {
- if (flag_rects[i].has_point(mb->get_position())) {
- //toggle
- if (value & (1 << i)) {
- value &= ~(1 << i);
- } else {
- value |= (1 << i);
- }
- emit_signal("flag_changed", value);
+ if (flag_rects[i].has_point(mm->get_position())) {
+ // Used to highlight the hovered flag in the layers grid.
+ hovered_index = i;
update();
+ break;
}
}
}
- }
- void _notification(int p_what) {
- if (p_what == NOTIFICATION_DRAW) {
- Rect2 rect;
- rect.size = get_size();
- flag_rects.clear();
+ const Ref<InputEventMouseButton> mb = p_ev;
- int bsize = (rect.size.height * 80 / 100) / 2;
+ if (mb.is_valid() && mb->get_button_index() == BUTTON_LEFT && mb->is_pressed()) {
+ // Toggle the flag.
+ // We base our choice on the hovered flag, so that it always matches the hovered flag.
+ if (value & (1 << hovered_index)) {
+ value &= ~(1 << hovered_index);
+ } else {
+ value |= (1 << hovered_index);
+ }
- int h = bsize * 2 + 1;
- int vofs = (rect.size.height - h) / 2;
+ emit_signal("flag_changed", value);
+ update();
+ }
+ }
- Color color = get_theme_color("highlight_color", "Editor");
- for (int i = 0; i < 2; i++) {
- Point2 ofs(4, vofs);
- if (i == 1) {
- ofs.y += bsize + 1;
- }
+ void _notification(int p_what) {
+ switch (p_what) {
+ case NOTIFICATION_DRAW: {
+ Rect2 rect;
+ rect.size = get_size();
+ flag_rects.clear();
+
+ const int bsize = (rect.size.height * 80 / 100) / 2;
+ const int h = bsize * 2 + 1;
+ const int vofs = (rect.size.height - h) / 2;
+
+ Color color = get_theme_color("highlight_color", "Editor");
+ for (int i = 0; i < 2; i++) {
+ Point2 ofs(4, vofs);
+ if (i == 1)
+ ofs.y += bsize + 1;
+
+ ofs += rect.position;
+ for (int j = 0; j < 10; j++) {
+ Point2 o = ofs + Point2(j * (bsize + 1), 0);
+ if (j >= 5)
+ o.x += 1;
+
+ const int idx = i * 10 + j;
+ const bool on = value & (1 << idx);
+ Rect2 rect2 = Rect2(o, Size2(bsize, bsize));
+
+ color.a = on ? 0.6 : 0.2;
+ if (idx == hovered_index) {
+ // Add visual feedback when hovering a flag.
+ color.a += 0.15;
+ }
- ofs += rect.position;
- for (int j = 0; j < 10; j++) {
- Point2 o = ofs + Point2(j * (bsize + 1), 0);
- if (j >= 5) {
- o.x += 1;
+ draw_rect(rect2, color);
+ flag_rects.push_back(rect2);
}
-
- uint32_t idx = i * 10 + j;
- bool on = value & (1 << idx);
- Rect2 rect2 = Rect2(o, Size2(bsize, bsize));
- color.a = on ? 0.6 : 0.2;
- draw_rect(rect2, color);
- flag_rects.push_back(rect2);
}
- }
+ } break;
+ case NOTIFICATION_MOUSE_EXIT: {
+ hovered_index = -1;
+ update();
+ } break;
+ default:
+ break;
}
}
@@ -661,6 +685,7 @@ public:
EditorPropertyLayersGrid() {
value = 0;
+ hovered_index = -1; // Nothing is hovered.
}
};
void EditorPropertyLayers::_grid_changed(uint32_t p_grid) {
@@ -752,7 +777,7 @@ EditorPropertyLayers::EditorPropertyLayers() {
hb->add_child(grid);
button = memnew(Button);
button->set_toggle_mode(true);
- button->set_text("..");
+ button->set_text("...");
button->connect("pressed", callable_mp(this, &EditorPropertyLayers::_button_pressed));
hb->add_child(button);
set_bottom_editor(hb);
@@ -1258,14 +1283,25 @@ void EditorPropertyVector3::_value_changed(double val, const String &p_name) {
}
void EditorPropertyVector3::update_property() {
- Vector3 val = get_edited_object()->get(get_edited_property());
+ update_using_vector(get_edited_object()->get(get_edited_property()));
+}
+
+void EditorPropertyVector3::update_using_vector(Vector3 p_vector) {
setting = true;
- spin[0]->set_value(val.x);
- spin[1]->set_value(val.y);
- spin[2]->set_value(val.z);
+ spin[0]->set_value(p_vector.x);
+ spin[1]->set_value(p_vector.y);
+ spin[2]->set_value(p_vector.z);
setting = false;
}
+Vector3 EditorPropertyVector3::get_vector() {
+ Vector3 v3;
+ v3.x = spin[0]->get_value();
+ v3.y = spin[1]->get_value();
+ v3.z = spin[2]->get_value();
+ return v3;
+}
+
void EditorPropertyVector3::_notification(int p_what) {
if (p_what == NOTIFICATION_ENTER_TREE || p_what == NOTIFICATION_THEME_CHANGED) {
Color base = get_theme_color("accent_color", "Editor");
@@ -1409,7 +1445,7 @@ EditorPropertyVector2i::EditorPropertyVector2i(bool p_force_wide) {
setting = false;
}
-///////////////////// RECT2 /////////////////////////
+///////////////////// RECT2i /////////////////////////
void EditorPropertyRect2i::_value_changed(double val, const String &p_name) {
if (setting) {
@@ -1495,7 +1531,7 @@ EditorPropertyRect2i::EditorPropertyRect2i(bool p_force_wide) {
setting = false;
}
-///////////////////// VECTOR3 /////////////////////////
+///////////////////// VECTOR3i /////////////////////////
void EditorPropertyVector3i::_value_changed(double val, const String &p_name) {
if (setting) {
@@ -2004,21 +2040,23 @@ void EditorPropertyTransform::_value_changed(double val, const String &p_name) {
}
void EditorPropertyTransform::update_property() {
- Transform val = get_edited_object()->get(get_edited_property());
- setting = true;
- spin[0]->set_value(val.basis[0][0]);
- spin[1]->set_value(val.basis[1][0]);
- spin[2]->set_value(val.basis[2][0]);
- spin[3]->set_value(val.basis[0][1]);
- spin[4]->set_value(val.basis[1][1]);
- spin[5]->set_value(val.basis[2][1]);
- spin[6]->set_value(val.basis[0][2]);
- spin[7]->set_value(val.basis[1][2]);
- spin[8]->set_value(val.basis[2][2]);
- spin[9]->set_value(val.origin[0]);
- spin[10]->set_value(val.origin[1]);
- spin[11]->set_value(val.origin[2]);
+ update_using_transform(get_edited_object()->get(get_edited_property()));
+}
+void EditorPropertyTransform::update_using_transform(Transform p_transform) {
+ setting = true;
+ spin[0]->set_value(p_transform.basis[0][0]);
+ spin[1]->set_value(p_transform.basis[1][0]);
+ spin[2]->set_value(p_transform.basis[2][0]);
+ spin[3]->set_value(p_transform.basis[0][1]);
+ spin[4]->set_value(p_transform.basis[1][1]);
+ spin[5]->set_value(p_transform.basis[2][1]);
+ spin[6]->set_value(p_transform.basis[0][2]);
+ spin[7]->set_value(p_transform.basis[1][2]);
+ spin[8]->set_value(p_transform.basis[2][2]);
+ spin[9]->set_value(p_transform.origin[0]);
+ spin[10]->set_value(p_transform.origin[1]);
+ spin[11]->set_value(p_transform.origin[2]);
setting = false;
}
diff --git a/editor/editor_properties.h b/editor/editor_properties.h
index 61c11f4534..35e6c10d90 100644
--- a/editor/editor_properties.h
+++ b/editor/editor_properties.h
@@ -392,6 +392,8 @@ protected:
public:
virtual void update_property();
+ virtual void update_using_vector(Vector3 p_vector);
+ virtual Vector3 get_vector();
void setup(double p_min, double p_max, double p_step, bool p_no_slider);
EditorPropertyVector3(bool p_force_wide = false);
};
@@ -536,6 +538,7 @@ protected:
public:
virtual void update_property();
+ virtual void update_using_transform(Transform p_transform);
void setup(double p_min, double p_max, double p_step, bool p_no_slider);
EditorPropertyTransform();
};
diff --git a/editor/import/editor_scene_importer_gltf.cpp b/editor/import/editor_scene_importer_gltf.cpp
index 6ffff09ce5..1a232658fe 100644
--- a/editor/import/editor_scene_importer_gltf.cpp
+++ b/editor/import/editor_scene_importer_gltf.cpp
@@ -286,7 +286,16 @@ Error EditorSceneImporterGLTF::_parse_nodes(GLTFState &state) {
node->xform.basis.set_quat_scale(node->rotation, node->scale);
node->xform.origin = node->translation;
}
-
+ if (n.has("extensions")) {
+ Dictionary extensions = n["extensions"];
+ if (extensions.has("KHR_lights_punctual")) {
+ Dictionary lights_punctual = extensions["KHR_lights_punctual"];
+ if (lights_punctual.has("light")) {
+ GLTFLightIndex light = lights_punctual["light"];
+ node->light = light;
+ }
+ }
+ }
if (n.has("children")) {
const Array &children = n["children"];
for (int j = 0; j < children.size(); j++) {
@@ -952,6 +961,9 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) {
return OK;
}
+ bool compress_vert_data = state.import_flags & IMPORT_USE_COMPRESSION;
+ uint32_t mesh_flags = compress_vert_data ? Mesh::ARRAY_COMPRESS_DEFAULT : 0;
+
Array meshes = state.json["meshes"];
for (GLTFMeshIndex i = 0; i < meshes.size(); i++) {
print_verbose("glTF: Parsing mesh: " + itos(i));
@@ -1206,7 +1218,7 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) {
}
//just add it
- mesh.mesh->add_surface_from_arrays(primitive, array, morphs);
+ mesh.mesh->add_surface_from_arrays(primitive, array, morphs, Dictionary(), mesh_flags);
if (p.has("material")) {
const int material = p["material"];
@@ -2242,6 +2254,58 @@ void EditorSceneImporterGLTF::_remove_duplicate_skins(GLTFState &state) {
}
}
+Error EditorSceneImporterGLTF::_parse_lights(GLTFState &state) {
+ if (!state.json.has("extensions")) {
+ return OK;
+ }
+ Dictionary extensions = state.json["extensions"];
+ if (!extensions.has("KHR_lights_punctual")) {
+ return OK;
+ }
+ Dictionary lights_punctual = extensions["KHR_lights_punctual"];
+ if (!lights_punctual.has("lights")) {
+ return OK;
+ }
+
+ const Array &lights = lights_punctual["lights"];
+
+ for (GLTFLightIndex light_i = 0; light_i < lights.size(); light_i++) {
+ const Dictionary &d = lights[light_i];
+
+ GLTFLight light;
+ ERR_FAIL_COND_V(!d.has("type"), ERR_PARSE_ERROR);
+ const String &type = d["type"];
+ light.type = type;
+
+ if (d.has("color")) {
+ const Array &arr = d["color"];
+ ERR_FAIL_COND_V(arr.size() != 3, ERR_PARSE_ERROR);
+ const Color c = Color(arr[0], arr[1], arr[2]).to_srgb();
+ light.color = c;
+ }
+ if (d.has("intensity")) {
+ light.intensity = d["intensity"];
+ }
+ if (d.has("range")) {
+ light.range = d["range"];
+ }
+ if (type == "spot") {
+ const Dictionary &spot = d["spot"];
+ light.inner_cone_angle = spot["innerConeAngle"];
+ light.outer_cone_angle = spot["outerConeAngle"];
+ ERR_FAIL_COND_V_MSG(light.inner_cone_angle >= light.outer_cone_angle, ERR_PARSE_ERROR, "The inner angle must be smaller than the outer angle.");
+ } else if (type != "point" && type != "directional") {
+ ERR_FAIL_V_MSG(ERR_PARSE_ERROR, "Light type is unknown.");
+ }
+
+ state.lights.push_back(light);
+ }
+
+ print_verbose("glTF: Total lights: " + itos(state.lights.size()));
+
+ return OK;
+}
+
Error EditorSceneImporterGLTF::_parse_cameras(GLTFState &state) {
if (!state.json.has("cameras")) {
return OK;
@@ -2485,6 +2549,58 @@ MeshInstance3D *EditorSceneImporterGLTF::_generate_mesh_instance(GLTFState &stat
return mi;
}
+Light3D *EditorSceneImporterGLTF::_generate_light(GLTFState &state, Node *scene_parent, const GLTFNodeIndex node_index) {
+ const GLTFNode *gltf_node = state.nodes[node_index];
+
+ ERR_FAIL_INDEX_V(gltf_node->light, state.lights.size(), nullptr);
+
+ print_verbose("glTF: Creating light for: " + gltf_node->name);
+
+ const GLTFLight &l = state.lights[gltf_node->light];
+
+ float intensity = l.intensity;
+ if (intensity > 10) {
+ // GLTF spec has the default around 1, but Blender defaults lights to 100.
+ // The only sane way to handle this is to check where it came from and
+ // handle it accordingly. If it's over 10, it probably came from Blender.
+ intensity /= 100;
+ }
+
+ if (l.type == "directional") {
+ DirectionalLight3D *light = memnew(DirectionalLight3D);
+ light->set_param(Light3D::PARAM_ENERGY, intensity);
+ light->set_color(l.color);
+ return light;
+ }
+
+ const float range = CLAMP(l.range, 0, 4096);
+ // Doubling the range will double the effective brightness, so we need double attenuation (half brightness).
+ // We want to have double intensity give double brightness, so we need half the attenuation.
+ const float attenuation = range / intensity;
+ if (l.type == "point") {
+ OmniLight3D *light = memnew(OmniLight3D);
+ light->set_param(OmniLight3D::PARAM_ATTENUATION, attenuation);
+ light->set_param(OmniLight3D::PARAM_RANGE, range);
+ light->set_color(l.color);
+ return light;
+ }
+ if (l.type == "spot") {
+ SpotLight3D *light = memnew(SpotLight3D);
+ light->set_param(SpotLight3D::PARAM_ATTENUATION, attenuation);
+ light->set_param(SpotLight3D::PARAM_RANGE, range);
+ light->set_param(SpotLight3D::PARAM_SPOT_ANGLE, Math::rad2deg(l.outer_cone_angle));
+ light->set_color(l.color);
+
+ // Line of best fit derived from guessing, see https://www.desmos.com/calculator/biiflubp8b
+ // The points in desmos are not exact, except for (1, infinity).
+ float angle_ratio = l.inner_cone_angle / l.outer_cone_angle;
+ float angle_attenuation = 0.2 / (1 - angle_ratio) - 0.1;
+ light->set_param(SpotLight3D::PARAM_SPOT_ATTENUATION, angle_attenuation);
+ return light;
+ }
+ return nullptr;
+}
+
Camera3D *EditorSceneImporterGLTF::_generate_camera(GLTFState &state, Node *scene_parent, const GLTFNodeIndex node_index) {
const GLTFNode *gltf_node = state.nodes[node_index];
@@ -2558,6 +2674,8 @@ void EditorSceneImporterGLTF::_generate_scene_node(GLTFState &state, Node *scene
current_node = _generate_mesh_instance(state, scene_parent, node_index);
} else if (gltf_node->camera >= 0) {
current_node = _generate_camera(state, scene_parent, node_index);
+ } else if (gltf_node->light >= 0) {
+ current_node = _generate_light(state, scene_parent, node_index);
} else {
current_node = _generate_spatial(state, scene_parent, node_index);
}
@@ -2951,6 +3069,7 @@ Node *EditorSceneImporterGLTF::import_scene(const String &p_path, uint32_t p_fla
String version = asset["version"];
+ state.import_flags = p_flags;
state.major_version = version.get_slice(".", 0).to_int();
state.minor_version = version.get_slice(".", 1).to_int();
state.use_named_skin_binds = p_flags & IMPORT_USE_NAMED_SKIN_BINDS;
@@ -3033,22 +3152,28 @@ Node *EditorSceneImporterGLTF::import_scene(const String &p_path, uint32_t p_fla
return nullptr;
}
- /* STEP 14 PARSE CAMERAS */
+ /* STEP 14 PARSE LIGHTS */
+ err = _parse_lights(state);
+ if (err != OK) {
+ return NULL;
+ }
+
+ /* STEP 15 PARSE CAMERAS */
err = _parse_cameras(state);
if (err != OK) {
return nullptr;
}
- /* STEP 15 PARSE ANIMATIONS */
+ /* STEP 16 PARSE ANIMATIONS */
err = _parse_animations(state);
if (err != OK) {
return nullptr;
}
- /* STEP 16 ASSIGN SCENE NAMES */
+ /* STEP 17 ASSIGN SCENE NAMES */
_assign_scene_names(state);
- /* STEP 17 MAKE SCENE! */
+ /* STEP 18 MAKE SCENE! */
Node3D *scene = _generate_scene(state, p_bake_fps);
return scene;
diff --git a/editor/import/editor_scene_importer_gltf.h b/editor/import/editor_scene_importer_gltf.h
index eee978ce16..95c6b87af5 100644
--- a/editor/import/editor_scene_importer_gltf.h
+++ b/editor/import/editor_scene_importer_gltf.h
@@ -32,6 +32,7 @@
#define EDITOR_SCENE_IMPORTER_GLTF_H
#include "editor/import/resource_importer_scene.h"
+#include "scene/3d/light_3d.h"
#include "scene/3d/node_3d.h"
#include "scene/3d/skeleton_3d.h"
@@ -50,6 +51,7 @@ class EditorSceneImporterGLTF : public EditorSceneImporter {
typedef int GLTFImageIndex;
typedef int GLTFMaterialIndex;
typedef int GLTFMeshIndex;
+ typedef int GLTFLightIndex;
typedef int GLTFNodeIndex;
typedef int GLTFSkeletonIndex;
typedef int GLTFSkinIndex;
@@ -113,6 +115,8 @@ class EditorSceneImporterGLTF : public EditorSceneImporter {
GLTFNodeIndex fake_joint_parent = -1;
+ GLTFLightIndex light = -1;
+
GLTFNode() {}
};
@@ -218,6 +222,17 @@ class EditorSceneImporterGLTF : public EditorSceneImporter {
GLTFCamera() {}
};
+ struct GLTFLight {
+ Color color = Color(1.0f, 1.0f, 1.0f);
+ float intensity = 1.0f;
+ String type = "";
+ float range = Math_INF;
+ float inner_cone_angle = 0.0f;
+ float outer_cone_angle = Math_PI / 4.0;
+
+ GLTFLight() {}
+ };
+
struct GLTFAnimation {
bool loop = false;
@@ -271,6 +286,7 @@ class EditorSceneImporterGLTF : public EditorSceneImporter {
Vector<GLTFSkin> skins;
Vector<GLTFCamera> cameras;
+ Vector<GLTFLight> lights;
Set<String> unique_names;
@@ -279,6 +295,9 @@ class EditorSceneImporterGLTF : public EditorSceneImporter {
Map<GLTFNodeIndex, Node *> scene_nodes;
+ // EditorSceneImporter::ImportFlags
+ uint32_t import_flags;
+
~GLTFState() {
for (int i = 0; i < nodes.size(); i++) {
memdelete(nodes[i]);
@@ -346,12 +365,13 @@ class EditorSceneImporterGLTF : public EditorSceneImporter {
void _remove_duplicate_skins(GLTFState &state);
Error _parse_cameras(GLTFState &state);
-
+ Error _parse_lights(GLTFState &state);
Error _parse_animations(GLTFState &state);
BoneAttachment3D *_generate_bone_attachment(GLTFState &state, Skeleton3D *skeleton, const GLTFNodeIndex node_index);
MeshInstance3D *_generate_mesh_instance(GLTFState &state, Node *scene_parent, const GLTFNodeIndex node_index);
Camera3D *_generate_camera(GLTFState &state, Node *scene_parent, const GLTFNodeIndex node_index);
+ Light3D *_generate_light(GLTFState &state, Node *scene_parent, const GLTFNodeIndex node_index);
Node3D *_generate_spatial(GLTFState &state, Node *scene_parent, const GLTFNodeIndex node_index);
void _generate_scene_node(GLTFState &state, Node *scene_parent, Node3D *scene_root, const GLTFNodeIndex node_index);
diff --git a/editor/import/resource_importer_texture.cpp b/editor/import/resource_importer_texture.cpp
index a13324f0fc..3a0e624a8f 100644
--- a/editor/import/resource_importer_texture.cpp
+++ b/editor/import/resource_importer_texture.cpp
@@ -181,15 +181,14 @@ bool ResourceImporterTexture::get_option_visibility(const String &p_option, cons
}
int ResourceImporterTexture::get_preset_count() const {
- return 4;
+ return 3;
}
String ResourceImporterTexture::get_preset_name(int p_idx) const {
static const char *preset_names[] = {
- "2D, Detect 3D",
+ "2D/3D (Auto-Detect)",
"2D",
- "2D Pixel",
- "3D"
+ "3D",
};
return preset_names[p_idx];
diff --git a/editor/import/resource_importer_texture.h b/editor/import/resource_importer_texture.h
index b770d240eb..12eb7f67c2 100644
--- a/editor/import/resource_importer_texture.h
+++ b/editor/import/resource_importer_texture.h
@@ -93,7 +93,6 @@ public:
enum Preset {
PRESET_DETECT,
PRESET_2D,
- PRESET_2D_PIXEL,
PRESET_3D,
};
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index 59366a239f..2f7080b1a5 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -54,8 +54,10 @@
#include "scene/main/window.h"
#include "scene/resources/packed_scene.h"
-#define MIN_ZOOM 0.01
-#define MAX_ZOOM 100
+// Min and Max are power of two in order to play nicely with successive increment.
+// That way, we can naturally reach a 100% zoom from boundaries.
+#define MIN_ZOOM 1. / 128
+#define MAX_ZOOM 128
#define RULER_WIDTH (15 * EDSCALE)
#define SCALE_HANDLE_DISTANCE 25
@@ -1213,7 +1215,11 @@ bool CanvasItemEditor::_gui_input_zoom_or_pan(const Ref<InputEvent> &p_event, bo
view_offset.y += int(EditorSettings::get_singleton()->get("editors/2d/pan_speed")) / zoom * b->get_factor();
update_viewport();
} else {
- _zoom_on_position(zoom * (1 - (0.05 * b->get_factor())), b->get_position());
+ float new_zoom = _get_next_zoom_value(-1);
+ if (b->get_factor() != 1.f) {
+ new_zoom = zoom * ((new_zoom / zoom - 1.f) * b->get_factor() + 1.f);
+ }
+ _zoom_on_position(new_zoom, b->get_position());
}
return true;
}
@@ -1224,7 +1230,11 @@ bool CanvasItemEditor::_gui_input_zoom_or_pan(const Ref<InputEvent> &p_event, bo
view_offset.y -= int(EditorSettings::get_singleton()->get("editors/2d/pan_speed")) / zoom * b->get_factor();
update_viewport();
} else {
- _zoom_on_position(zoom * ((0.95 + (0.05 * b->get_factor())) / 0.95), b->get_position());
+ float new_zoom = _get_next_zoom_value(1);
+ if (b->get_factor() != 1.f) {
+ new_zoom = zoom * ((new_zoom / zoom - 1.f) * b->get_factor() + 1.f);
+ }
+ _zoom_on_position(new_zoom, b->get_position());
}
return true;
}
@@ -4333,8 +4343,37 @@ void CanvasItemEditor::_set_anchors_preset(Control::LayoutPreset p_preset) {
undo_redo->commit_action();
}
+float CanvasItemEditor::_get_next_zoom_value(int p_increment_count) const {
+ // Base increment factor defined as the twelveth root of two.
+ // This allow a smooth geometric evolution of the zoom, with the advantage of
+ // visiting all integer power of two scale factors.
+ // note: this is analogous to the 'semitones' interval in the music world
+ // In order to avoid numerical imprecisions, we compute and edit a zoom index
+ // with the following relation: zoom = 2 ^ (index / 12)
+
+ if (zoom < CMP_EPSILON || p_increment_count == 0) {
+ return 1.f;
+ }
+
+ // Remove Editor scale from the index computation
+ float zoom_noscale = zoom / MAX(1, EDSCALE);
+
+ // zoom = 2**(index/12) => log2(zoom) = index/12
+ float closest_zoom_index = Math::round(Math::log(zoom_noscale) * 12.f / Math::log(2.f));
+
+ float new_zoom_index = closest_zoom_index + p_increment_count;
+ float new_zoom = Math::pow(2.f, new_zoom_index / 12.f);
+
+ // Restore Editor scale transformation
+ new_zoom *= MAX(1, EDSCALE);
+
+ return new_zoom;
+}
+
void CanvasItemEditor::_zoom_on_position(float p_zoom, Point2 p_position) {
- if (p_zoom < MIN_ZOOM || p_zoom > MAX_ZOOM) {
+ p_zoom = CLAMP(p_zoom, MIN_ZOOM, MAX_ZOOM);
+
+ if (p_zoom == zoom) {
return;
}
@@ -4376,7 +4415,7 @@ void CanvasItemEditor::_update_zoom_label() {
}
void CanvasItemEditor::_button_zoom_minus() {
- _zoom_on_position(zoom / Math_SQRT2, viewport_scrollable->get_size() / 2.0);
+ _zoom_on_position(_get_next_zoom_value(-6), viewport_scrollable->get_size() / 2.0);
}
void CanvasItemEditor::_button_zoom_reset() {
@@ -4384,7 +4423,7 @@ void CanvasItemEditor::_button_zoom_reset() {
}
void CanvasItemEditor::_button_zoom_plus() {
- _zoom_on_position(zoom * Math_SQRT2, viewport_scrollable->get_size() / 2.0);
+ _zoom_on_position(_get_next_zoom_value(6), viewport_scrollable->get_size() / 2.0);
}
void CanvasItemEditor::_button_toggle_smart_snap(bool p_status) {
diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h
index a686c98f65..765d5f81d0 100644
--- a/editor/plugins/canvas_item_editor_plugin.h
+++ b/editor/plugins/canvas_item_editor_plugin.h
@@ -528,6 +528,7 @@ private:
VBoxContainer *controls_vb;
HBoxContainer *zoom_hb;
+ float _get_next_zoom_value(int p_increment_count) const;
void _zoom_on_position(float p_zoom, Point2 p_position = Point2());
void _update_zoom_label();
void _button_zoom_minus();
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index f59b4171b4..7bf8fd7d26 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -2583,14 +2583,14 @@ void Node3DEditorViewport::_notification(int p_what) {
}
}
-static void draw_indicator_bar(Control &surface, real_t fill, Ref<Texture2D> icon) {
+static void draw_indicator_bar(Control &surface, real_t fill, const Ref<Texture2D> icon, const Ref<Font> font, const String &text) {
// Adjust bar size from control height
- Vector2 surface_size = surface.get_size();
- real_t h = surface_size.y / 2.0;
- real_t y = (surface_size.y - h) / 2.0;
+ const Vector2 surface_size = surface.get_size();
+ const real_t h = surface_size.y / 2.0;
+ const real_t y = (surface_size.y - h) / 2.0;
- Rect2 r(10, y, 6, h);
- real_t sy = r.size.y * fill;
+ const Rect2 r(10 * EDSCALE, y, 6 * EDSCALE, h);
+ const real_t sy = r.size.y * fill;
// Note: because this bar appears over the viewport, it has to stay readable for any background color
// Draw both neutral dark and bright colors to account this
@@ -2598,9 +2598,12 @@ static void draw_indicator_bar(Control &surface, real_t fill, Ref<Texture2D> ico
surface.draw_rect(Rect2(r.position.x, r.position.y + r.size.y - sy, r.size.x, sy), Color(1, 1, 1, 0.6));
surface.draw_rect(r.grow(1), Color(0, 0, 0, 0.7), false, Math::round(EDSCALE));
- Vector2 icon_size = icon->get_size();
- Vector2 icon_pos = Vector2(r.position.x - (icon_size.x - r.size.x) / 2, r.position.y + r.size.y + 2);
+ const Vector2 icon_size = icon->get_size();
+ const Vector2 icon_pos = Vector2(r.position.x - (icon_size.x - r.size.x) / 2, r.position.y + r.size.y + 2 * EDSCALE);
surface.draw_texture(icon, icon_pos);
+
+ // Draw text below the bar (for speed/zoom information).
+ surface.draw_string(font, Vector2(icon_pos.x, icon_pos.y + icon_size.y + 16 * EDSCALE), text);
}
void Node3DEditorViewport::_draw() {
@@ -2697,7 +2700,14 @@ void Node3DEditorViewport::_draw() {
logscale_t = 0.25 * Math::exp(4.0 * logscale_t - 1.0);
}
- draw_indicator_bar(*surface, 1.0 - logscale_t, get_theme_icon("ViewportSpeed", "EditorIcons"));
+ // Display the freelook speed to help the user get a better sense of scale.
+ const int precision = freelook_speed < 1.0 ? 2 : 1;
+ draw_indicator_bar(
+ *surface,
+ 1.0 - logscale_t,
+ get_theme_icon("ViewportSpeed", "EditorIcons"),
+ get_theme_font("font", "Label"),
+ vformat("%s u/s", String::num(freelook_speed).pad_decimals(precision)));
}
} else {
@@ -2716,7 +2726,14 @@ void Node3DEditorViewport::_draw() {
logscale_t = 0.25 * Math::exp(4.0 * logscale_t - 1.0);
}
- draw_indicator_bar(*surface, logscale_t, get_theme_icon("ViewportZoom", "EditorIcons"));
+ // Display the zoom center distance to help the user get a better sense of scale.
+ const int precision = cursor.distance < 1.0 ? 2 : 1;
+ draw_indicator_bar(
+ *surface,
+ logscale_t,
+ get_theme_icon("ViewportZoom", "EditorIcons"),
+ get_theme_font("font", "Label"),
+ vformat("%s u", String::num(cursor.distance).pad_decimals(precision)));
}
}
}
@@ -3419,11 +3436,7 @@ void Node3DEditorViewport::reset() {
last_message = "";
name = "";
- cursor.x_rot = 0.5;
- cursor.y_rot = 0.5;
- cursor.distance = 4;
- cursor.region_select = false;
- cursor.pos = Vector3();
+ cursor = Cursor();
_update_name();
}
@@ -3658,15 +3671,19 @@ bool Node3DEditorViewport::_create_instance(Node *parent, String &path, const Po
editor_data->get_undo_redo().add_do_method(ed, "live_debug_instance_node", editor->get_edited_scene()->get_path_to(parent), path, new_name);
editor_data->get_undo_redo().add_undo_method(ed, "live_debug_remove_node", NodePath(String(editor->get_edited_scene()->get_path_to(parent)) + "/" + new_name));
- Transform global_transform;
- Node3D *parent_spatial = Object::cast_to<Node3D>(parent);
- if (parent_spatial) {
- global_transform = parent_spatial->get_global_gizmo_transform();
- }
+ Node3D *node3d = Object::cast_to<Node3D>(instanced_scene);
+ if (node3d) {
+ Transform global_transform;
+ Node3D *parent_node3d = Object::cast_to<Node3D>(parent);
+ if (parent_node3d) {
+ global_transform = parent_node3d->get_global_gizmo_transform();
+ }
- global_transform.origin = spatial_editor->snap_point(_get_instance_position(p_point));
+ global_transform.origin = spatial_editor->snap_point(_get_instance_position(p_point));
+ global_transform.basis *= node3d->get_transform().basis;
- editor_data->get_undo_redo().add_do_method(instanced_scene, "set_global_transform", global_transform);
+ editor_data->get_undo_redo().add_do_method(instanced_scene, "set_global_transform", global_transform);
+ }
return true;
}
@@ -5397,6 +5414,9 @@ void Node3DEditor::_update_gizmos_menu() {
const int plugin_state = gizmo_plugins_by_name[i]->get_state();
gizmos_menu->add_multistate_item(TTR(plugin_name), 3, plugin_state, i);
const int idx = gizmos_menu->get_item_index(i);
+ gizmos_menu->set_item_tooltip(
+ idx,
+ TTR("Click to toggle between visibility states.\n\nOpen eye: Gizmo is visible.\nClosed eye: Gizmo is hidden.\nHalf-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."));
switch (plugin_state) {
case EditorNode3DGizmoPlugin::VISIBLE:
gizmos_menu->set_item_icon(idx, gizmos_menu->get_theme_icon("visibility_visible"));
diff --git a/editor/plugins/node_3d_editor_plugin.h b/editor/plugins/node_3d_editor_plugin.h
index 32b087c372..83173b5ad2 100644
--- a/editor/plugins/node_3d_editor_plugin.h
+++ b/editor/plugins/node_3d_editor_plugin.h
@@ -391,7 +391,9 @@ private:
Point2 region_begin, region_end;
Cursor() {
- x_rot = y_rot = 0.5;
+ // These rotations place the camera in +X +Y +Z, aka south east, facing north west.
+ x_rot = 0.5;
+ y_rot = -0.5;
distance = 4;
region_select = false;
}
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index 8d6dac3907..48a9febcf9 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -837,7 +837,6 @@ void ScriptEditor::_file_dialog_action(String p_file) {
Error err;
FileAccess *file = FileAccess::open(p_file, FileAccess::WRITE, &err);
if (err) {
- memdelete(file);
editor->show_warning(TTR("Error writing TextFile:") + "\n" + p_file, TTR("Error!"));
break;
}
diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp
index 321b4432ab..52da8dea19 100644
--- a/editor/plugins/skeleton_3d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_3d_editor_plugin.cpp
@@ -62,125 +62,56 @@ void BoneTransformEditor::create_editors() {
enabled_checkbox->set_visible(toggle_enabled);
section->get_vbox()->add_child(enabled_checkbox);
- Label *l1 = memnew(Label(TTR("Translation")));
- section->get_vbox()->add_child(l1);
-
- translation_grid = memnew(GridContainer());
- translation_grid->set_columns(TRANSLATION_COMPONENTS);
- section->get_vbox()->add_child(translation_grid);
-
- Label *l2 = memnew(Label(TTR("Rotation Degrees")));
- section->get_vbox()->add_child(l2);
-
- rotation_grid = memnew(GridContainer());
- rotation_grid->set_columns(ROTATION_DEGREES_COMPONENTS);
- section->get_vbox()->add_child(rotation_grid);
-
- Label *l3 = memnew(Label(TTR("Scale")));
- section->get_vbox()->add_child(l3);
-
- scale_grid = memnew(GridContainer());
- scale_grid->set_columns(SCALE_COMPONENTS);
- section->get_vbox()->add_child(scale_grid);
-
- Label *l4 = memnew(Label(TTR("Transform")));
- section->get_vbox()->add_child(l4);
-
- transform_grid = memnew(GridContainer());
- transform_grid->set_columns(TRANSFORM_CONTROL_COMPONENTS);
- section->get_vbox()->add_child(transform_grid);
-
- static const char *desc[TRANSFORM_COMPONENTS] = { "x", "y", "z", "x", "y", "z", "x", "y", "z", "x", "y", "z" };
-
- for (int i = 0; i < TRANSFORM_CONTROL_COMPONENTS; ++i) {
- translation_slider[i] = memnew(EditorSpinSlider());
- translation_slider[i]->set_label(desc[i]);
- setup_spinner(translation_slider[i], false);
- translation_grid->add_child(translation_slider[i]);
-
- rotation_slider[i] = memnew(EditorSpinSlider());
- rotation_slider[i]->set_label(desc[i]);
- setup_spinner(rotation_slider[i], false);
- rotation_grid->add_child(rotation_slider[i]);
-
- scale_slider[i] = memnew(EditorSpinSlider());
- scale_slider[i]->set_label(desc[i]);
- setup_spinner(scale_slider[i], false);
- scale_grid->add_child(scale_slider[i]);
- }
-
- for (int i = 0; i < TRANSFORM_COMPONENTS; ++i) {
- transform_slider[i] = memnew(EditorSpinSlider());
- transform_slider[i]->set_label(desc[i]);
- setup_spinner(transform_slider[i], true);
- transform_grid->add_child(transform_slider[i]);
- }
-}
-
-void BoneTransformEditor::setup_spinner(EditorSpinSlider *spinner, const bool is_transform_spinner) {
- spinner->set_flat(true);
- spinner->set_min(-10000);
- spinner->set_max(10000);
- spinner->set_step(0.001f);
- spinner->set_hide_slider(true);
- spinner->set_allow_greater(true);
- spinner->set_allow_lesser(true);
- spinner->set_h_size_flags(SIZE_EXPAND_FILL);
-
- spinner->connect_compat("value_changed", this, "_value_changed", varray(is_transform_spinner));
+ // Translation property
+ translation_property = memnew(EditorPropertyVector3());
+ translation_property->setup(-10000, 10000, 0.001f, true);
+ translation_property->set_label("Translation");
+ translation_property->set_use_folding(true);
+ translation_property->set_read_only(false);
+ translation_property->connect("property_changed", callable_mp(this, &BoneTransformEditor::_value_changed_vector3));
+ section->get_vbox()->add_child(translation_property);
+
+ // Rotation property
+ rotation_property = memnew(EditorPropertyVector3());
+ rotation_property->setup(-10000, 10000, 0.001f, true);
+ rotation_property->set_label("Rotation Degrees");
+ rotation_property->set_use_folding(true);
+ rotation_property->set_read_only(false);
+ rotation_property->connect("property_changed", callable_mp(this, &BoneTransformEditor::_value_changed_vector3));
+ section->get_vbox()->add_child(rotation_property);
+
+ // Scale property
+ scale_property = memnew(EditorPropertyVector3());
+ scale_property->setup(-10000, 10000, 0.001f, true);
+ scale_property->set_label("Scale");
+ scale_property->set_use_folding(true);
+ scale_property->set_read_only(false);
+ scale_property->connect("property_changed", callable_mp(this, &BoneTransformEditor::_value_changed_vector3));
+ section->get_vbox()->add_child(scale_property);
+
+ // Transform/Matrix section
+ transform_section = memnew(EditorInspectorSection);
+ transform_section->setup("trf_properties_transform", "Matrix", this, section_color, true);
+ section->get_vbox()->add_child(transform_section);
+
+ // Transform/Matrix property
+ transform_property = memnew(EditorPropertyTransform());
+ transform_property->setup(-10000, 10000, 0.001f, true);
+ transform_property->set_label("Transform");
+ transform_property->set_use_folding(true);
+ transform_property->set_read_only(false);
+ transform_property->connect("property_changed", callable_mp(this, &BoneTransformEditor::_value_changed_transform));
+ transform_section->get_vbox()->add_child(transform_property);
}
void BoneTransformEditor::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_ENTER_TREE: {
create_editors();
- key_button->connect_compat("pressed", this, "_key_button_pressed");
- enabled_checkbox->connect_compat("toggled", this, "_checkbox_toggled");
+ key_button->connect("pressed", callable_mp(this, &BoneTransformEditor::_key_button_pressed));
+ enabled_checkbox->connect("toggled", callable_mp(this, &BoneTransformEditor::_checkbox_toggled));
[[fallthrough]];
}
- case NOTIFICATION_THEME_CHANGED: {
- const Color base = get_theme_color("accent_color", "Editor");
- const Color bg_color = get_theme_color("property_color", "Editor");
- const Color bg_lbl_color(bg_color.r, bg_color.g, bg_color.b, 0.5);
-
- for (int i = 0; i < TRANSLATION_COMPONENTS; i++) {
- Color c = base;
- c.set_hsv(float(i % TRANSLATION_COMPONENTS) / TRANSLATION_COMPONENTS + 0.05, c.get_s() * 0.75, c.get_v());
- if (!translation_slider[i]) {
- continue;
- }
- translation_slider[i]->set_custom_label_color(true, c);
- }
-
- for (int i = 0; i < ROTATION_DEGREES_COMPONENTS; i++) {
- Color c = base;
- c.set_hsv(float(i % ROTATION_DEGREES_COMPONENTS) / ROTATION_DEGREES_COMPONENTS + 0.05, c.get_s() * 0.75, c.get_v());
- if (!rotation_slider[i]) {
- continue;
- }
- rotation_slider[i]->set_custom_label_color(true, c);
- }
-
- for (int i = 0; i < SCALE_COMPONENTS; i++) {
- Color c = base;
- c.set_hsv(float(i % SCALE_COMPONENTS) / SCALE_COMPONENTS + 0.05, c.get_s() * 0.75, c.get_v());
- if (!scale_slider[i]) {
- continue;
- }
- scale_slider[i]->set_custom_label_color(true, c);
- }
-
- for (int i = 0; i < TRANSFORM_COMPONENTS; i++) {
- Color c = base;
- c.set_hsv(float(i % TRANSFORM_COMPONENTS) / TRANSFORM_COMPONENTS + 0.05, c.get_s() * 0.75, c.get_v());
- if (!transform_slider[i]) {
- continue;
- }
- transform_slider[i]->set_custom_label_color(true, c);
- }
-
- break;
- }
case NOTIFICATION_SORT_CHILDREN: {
const Ref<Font> font = get_theme_font("font", "Tree");
@@ -189,8 +120,8 @@ void BoneTransformEditor::_notification(int p_what) {
buffer.y += font->get_height();
buffer.y += get_theme_constant("vseparation", "Tree");
- const float vector_height = translation_grid->get_size().y;
- const float transform_height = transform_grid->get_size().y;
+ const float vector_height = translation_property->get_size().y;
+ const float transform_height = transform_property->get_size().y;
const float button_height = key_button->get_size().y;
const float width = get_size().x - get_theme_constant("inspector_margin", "Editor");
@@ -202,10 +133,10 @@ void BoneTransformEditor::_notification(int p_what) {
}
if (section->get_vbox()->is_visible()) {
- input_rects.push_back(Rect2(translation_grid->get_position() + buffer, Size2(width, vector_height)));
- input_rects.push_back(Rect2(rotation_grid->get_position() + buffer, Size2(width, vector_height)));
- input_rects.push_back(Rect2(scale_grid->get_position() + buffer, Size2(width, vector_height)));
- input_rects.push_back(Rect2(transform_grid->get_position() + buffer, Size2(width, transform_height)));
+ input_rects.push_back(Rect2(translation_property->get_position() + buffer, Size2(width, vector_height)));
+ input_rects.push_back(Rect2(rotation_property->get_position() + buffer, Size2(width, vector_height)));
+ input_rects.push_back(Rect2(scale_property->get_position() + buffer, Size2(width, vector_height)));
+ input_rects.push_back(Rect2(transform_property->get_position() + buffer, Size2(width, transform_height)));
} else {
const int32_t start = input_rects.size();
const int32_t empty_input_rect_elements = 4;
@@ -234,49 +165,53 @@ void BoneTransformEditor::_notification(int p_what) {
}
}
-void BoneTransformEditor::_value_changed(const double p_value, const bool p_from_transform) {
+void BoneTransformEditor::_value_changed(const double p_value) {
if (updating)
return;
- if (property.get_slicec('/', 0) == "bones" && property.get_slicec('/', 2) == "custom_pose") {
- const Transform tform = compute_transform(p_from_transform);
+ Transform tform = compute_transform_from_vector3s();
+ _change_transform(tform);
+}
+void BoneTransformEditor::_value_changed_vector3(const String p_property_name, const Vector3 p_vector, const StringName p_edited_property_name, const bool p_boolean) {
+ if (updating)
+ return;
+ Transform tform = compute_transform_from_vector3s();
+ _change_transform(tform);
+}
+
+Transform BoneTransformEditor::compute_transform_from_vector3s() const {
+ // Convert rotation from degrees to radians.
+ Vector3 prop_rotation = rotation_property->get_vector();
+ prop_rotation.x = Math::deg2rad(prop_rotation.x);
+ prop_rotation.y = Math::deg2rad(prop_rotation.y);
+ prop_rotation.z = Math::deg2rad(prop_rotation.z);
+
+ return Transform(
+ Basis(prop_rotation, scale_property->get_vector()),
+ translation_property->get_vector());
+}
+
+void BoneTransformEditor::_value_changed_transform(const String p_property_name, const Transform p_transform, const StringName p_edited_property_name, const bool p_boolean) {
+ if (updating)
+ return;
+ _change_transform(p_transform);
+}
+
+void BoneTransformEditor::_change_transform(Transform p_new_transform) {
+ if (property.get_slicec('/', 0) == "bones" && property.get_slicec('/', 2) == "custom_pose") {
undo_redo->create_action(TTR("Set Custom Bone Pose Transform"), UndoRedo::MERGE_ENDS);
undo_redo->add_undo_method(skeleton, "set_bone_custom_pose", property.get_slicec('/', 1).to_int(), skeleton->get_bone_custom_pose(property.get_slicec('/', 1).to_int()));
- undo_redo->add_do_method(skeleton, "set_bone_custom_pose", property.get_slicec('/', 1).to_int(), tform);
+ undo_redo->add_do_method(skeleton, "set_bone_custom_pose", property.get_slicec('/', 1).to_int(), p_new_transform);
undo_redo->commit_action();
} else if (property.get_slicec('/', 0) == "bones") {
- const Transform tform = compute_transform(p_from_transform);
-
undo_redo->create_action(TTR("Set Bone Transform"), UndoRedo::MERGE_ENDS);
undo_redo->add_undo_property(skeleton, property, skeleton->get(property));
- undo_redo->add_do_property(skeleton, property, tform);
+ undo_redo->add_do_property(skeleton, property, p_new_transform);
undo_redo->commit_action();
}
}
-Transform BoneTransformEditor::compute_transform(const bool p_from_transform) const {
- // Last modified was a raw transform column...
- if (p_from_transform) {
- Transform tform;
-
- for (int i = 0; i < BASIS_COMPONENTS; ++i) {
- tform.basis[i / BASIS_SPLIT_COMPONENTS][i % BASIS_SPLIT_COMPONENTS] = transform_slider[i]->get_value();
- }
-
- for (int i = 0; i < TRANSLATION_COMPONENTS; ++i) {
- tform.origin[i] = transform_slider[i + BASIS_COMPONENTS]->get_value();
- }
-
- return tform;
- }
-
- return Transform(
- Basis(Vector3(Math::deg2rad(rotation_slider[0]->get_value()), Math::deg2rad(rotation_slider[1]->get_value()), Math::deg2rad(rotation_slider[2]->get_value())),
- Vector3(scale_slider[0]->get_value(), scale_slider[1]->get_value(), scale_slider[2]->get_value())),
- Vector3(translation_slider[0]->get_value(), translation_slider[1]->get_value(), translation_slider[2]->get_value()));
-}
-
void BoneTransformEditor::update_enabled_checkbox() {
if (enabled_checkbox) {
const String path = "bones/" + property.get_slicec('/', 1) + "/enabled";
@@ -285,12 +220,6 @@ void BoneTransformEditor::update_enabled_checkbox() {
}
}
-void BoneTransformEditor::_bind_methods() {
- ClassDB::bind_method(D_METHOD("_value_changed", "value"), &BoneTransformEditor::_value_changed);
- ClassDB::bind_method(D_METHOD("_key_button_pressed"), &BoneTransformEditor::_key_button_pressed);
- ClassDB::bind_method(D_METHOD("_checkbox_toggled", "toggled"), &BoneTransformEditor::_checkbox_toggled);
-}
-
void BoneTransformEditor::_update_properties() {
if (updating)
return;
@@ -318,47 +247,22 @@ void BoneTransformEditor::_update_custom_pose_properties() {
}
void BoneTransformEditor::_update_transform_properties(Transform tform) {
- Quat rot = tform.get_basis();
- Vector3 rot_rad = rot.get_euler();
- Vector3 rot_degrees = Vector3(Math::rad2deg(rot_rad.x), Math::rad2deg(rot_rad.y), Math::rad2deg(rot_rad.z));
- Vector3 tr = tform.get_origin();
+ Basis rotation_basis = tform.get_basis();
+ Vector3 rotation_radians = rotation_basis.get_rotation_euler();
+ Vector3 rotation_degrees = Vector3(Math::rad2deg(rotation_radians.x), Math::rad2deg(rotation_radians.y), Math::rad2deg(rotation_radians.z));
+ Vector3 translation = tform.get_origin();
Vector3 scale = tform.basis.get_scale();
- for (int i = 0; i < TRANSLATION_COMPONENTS; i++) {
- translation_slider[i]->set_value(tr[i]);
- }
-
- for (int i = 0; i < ROTATION_DEGREES_COMPONENTS; i++) {
- rotation_slider[i]->set_value(rot_degrees[i]);
- }
-
- for (int i = 0; i < SCALE_COMPONENTS; i++) {
- scale_slider[i]->set_value(scale[i]);
- }
-
- transform_slider[0]->set_value(tform.get_basis()[Vector3::AXIS_X].x);
- transform_slider[1]->set_value(tform.get_basis()[Vector3::AXIS_X].y);
- transform_slider[2]->set_value(tform.get_basis()[Vector3::AXIS_X].z);
- transform_slider[3]->set_value(tform.get_basis()[Vector3::AXIS_Y].x);
- transform_slider[4]->set_value(tform.get_basis()[Vector3::AXIS_Y].y);
- transform_slider[5]->set_value(tform.get_basis()[Vector3::AXIS_Y].z);
- transform_slider[6]->set_value(tform.get_basis()[Vector3::AXIS_Z].x);
- transform_slider[7]->set_value(tform.get_basis()[Vector3::AXIS_Z].y);
- transform_slider[8]->set_value(tform.get_basis()[Vector3::AXIS_Z].z);
-
- for (int i = 0; i < TRANSLATION_COMPONENTS; i++) {
- transform_slider[BASIS_COMPONENTS + i]->set_value(tform.get_origin()[i]);
- }
+ translation_property->update_using_vector(translation);
+ rotation_property->update_using_vector(rotation_degrees);
+ scale_property->update_using_vector(scale);
+ transform_property->update_using_transform(tform);
update_enabled_checkbox();
updating = false;
}
BoneTransformEditor::BoneTransformEditor(Skeleton3D *p_skeleton) :
- translation_slider(),
- rotation_slider(),
- scale_slider(),
- transform_slider(),
skeleton(p_skeleton),
key_button(nullptr),
enabled_checkbox(nullptr),
@@ -397,7 +301,7 @@ void BoneTransformEditor::_key_button_pressed() {
return;
// Need to normalize the basis before you key it
- Transform tform = compute_transform(true);
+ Transform tform = compute_transform_from_vector3s();
tform.orthonormalize();
AnimationPlayerEditor::singleton->get_track_editor()->insert_transform_key(skeleton, name, tform);
}
@@ -627,8 +531,7 @@ void Skeleton3DEditor::update_joint_tree() {
items.insert(-1, root);
const Vector<int> &joint_porder = skeleton->get_bone_process_orders();
-
- Ref<Texture> bone_icon = get_theme_icon("Skeleton3D", "EditorIcons");
+ Ref<Texture> bone_icon = get_theme_icon("BoneAttachment3D", "EditorIcons");
for (int i = 0; i < joint_porder.size(); ++i) {
const int b_idx = joint_porder[i];
@@ -665,7 +568,6 @@ void Skeleton3DEditor::create_editors() {
options->get_popup()->add_item(TTR("Create physical skeleton"), MENU_OPTION_CREATE_PHYSICAL_SKELETON);
options->get_popup()->connect("id_pressed", callable_mp(this, &Skeleton3DEditor::_on_click_option));
- options->hide();
const Color section_color = get_theme_color("prop_subsection", "Editor");
@@ -715,11 +617,11 @@ void Skeleton3DEditor::_notification(int p_what) {
update_joint_tree();
update_editors();
- get_tree()->connect_compat("node_removed", this, "_node_removed", Vector<Variant>(), Object::CONNECT_ONESHOT);
- joint_tree->connect_compat("item_selected", this, "_joint_tree_selection_changed");
- joint_tree->connect_compat("item_rmb_selected", this, "_joint_tree_rmb_select");
+ get_tree()->connect("node_removed", callable_mp(this, &Skeleton3DEditor::_node_removed), Vector<Variant>(), Object::CONNECT_ONESHOT);
+ joint_tree->connect("item_selected", callable_mp(this, &Skeleton3DEditor::_joint_tree_selection_changed));
+ joint_tree->connect("item_rmb_selected", callable_mp(this, &Skeleton3DEditor::_joint_tree_rmb_select));
#ifdef TOOLS_ENABLED
- skeleton->connect_compat("pose_updated", this, "_update_properties");
+ skeleton->connect("pose_updated", callable_mp(this, &Skeleton3DEditor::_update_properties));
#endif // TOOLS_ENABLED
break;
diff --git a/editor/plugins/skeleton_3d_editor_plugin.h b/editor/plugins/skeleton_3d_editor_plugin.h
index 8b0639ed92..a5b8ce80a9 100644
--- a/editor/plugins/skeleton_3d_editor_plugin.h
+++ b/editor/plugins/skeleton_3d_editor_plugin.h
@@ -41,30 +41,19 @@ class PhysicalBone3D;
class Skeleton3DEditorPlugin;
class Button;
class CheckBox;
+class EditorPropertyTransform;
+class EditorPropertyVector3;
class BoneTransformEditor : public VBoxContainer {
GDCLASS(BoneTransformEditor, VBoxContainer);
- static const int32_t TRANSLATION_COMPONENTS = 3;
- static const int32_t ROTATION_DEGREES_COMPONENTS = 3;
- static const int32_t SCALE_COMPONENTS = 3;
- static const int32_t BASIS_COMPONENTS = 9;
- static const int32_t BASIS_SPLIT_COMPONENTS = 3;
- static const int32_t TRANSFORM_COMPONENTS = 12;
- static const int32_t TRANSFORM_SPLIT_COMPONENTS = 3;
- static const int32_t TRANSFORM_CONTROL_COMPONENTS = 3;
-
EditorInspectorSection *section;
- GridContainer *translation_grid;
- GridContainer *rotation_grid;
- GridContainer *scale_grid;
- GridContainer *transform_grid;
-
- EditorSpinSlider *translation_slider[TRANSLATION_COMPONENTS];
- EditorSpinSlider *rotation_slider[ROTATION_DEGREES_COMPONENTS];
- EditorSpinSlider *scale_slider[SCALE_COMPONENTS];
- EditorSpinSlider *transform_slider[TRANSFORM_COMPONENTS];
+ EditorPropertyVector3 *translation_property;
+ EditorPropertyVector3 *rotation_property;
+ EditorPropertyVector3 *scale_property;
+ EditorInspectorSection *transform_section;
+ EditorPropertyTransform *transform_property;
Rect2 background_rects[5];
@@ -83,17 +72,22 @@ class BoneTransformEditor : public VBoxContainer {
String label;
void create_editors();
- void setup_spinner(EditorSpinSlider *spinner, const bool is_transform_spinner);
- void _value_changed(const double p_value, const bool p_from_transform);
-
- Transform compute_transform(const bool p_from_transform) const;
+ // Called when one of the EditorSpinSliders are changed.
+ void _value_changed(const double p_value);
+ // Called when the one of the EditorPropertyVector3 are updated.
+ void _value_changed_vector3(const String p_property_name, const Vector3 p_vector, const StringName p_edited_property_name, const bool p_boolean);
+ // Called when the transform_property is updated.
+ void _value_changed_transform(const String p_property_name, const Transform p_transform, const StringName p_edited_property_name, const bool p_boolean);
+ // Changes the transform to the given transform and updates the UI accordingly.
+ void _change_transform(Transform p_new_transform);
+ // Creates a Transform using the EditorPropertyVector3 properties.
+ Transform compute_transform_from_vector3s() const;
void update_enabled_checkbox();
protected:
void _notification(int p_what);
- static void _bind_methods();
public:
BoneTransformEditor(Skeleton3D *p_skeleton);
diff --git a/editor/project_export.cpp b/editor/project_export.cpp
index e5372a5d47..c53a59604a 100644
--- a/editor/project_export.cpp
+++ b/editor/project_export.cpp
@@ -163,6 +163,7 @@ void ProjectExportDialog::_update_presets() {
if (preset->is_runnable()) {
name += " (" + TTR("Runnable") + ")";
}
+ preset->update_files_to_export();
presets->add_item(name, preset->get_platform()->get_logo());
}
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp
index 499f7d4017..cbba4b4834 100644
--- a/editor/project_manager.cpp
+++ b/editor/project_manager.cpp
@@ -1741,10 +1741,6 @@ void ProjectList::_panel_input(const Ref<InputEvent> &p_ev, Node *p_hb) {
select_project(clicked_index);
}
- if (_selected_project_keys.has(clicked_project.project_key)) {
- clicked_project.control->grab_focus();
- }
-
emit_signal(SIGNAL_SELECTION_CHANGED);
if (!mb->get_control() && mb->is_doubleclick()) {
diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp
index c6efcc944b..49b9ca167b 100644
--- a/editor/property_editor.cpp
+++ b/editor/property_editor.cpp
@@ -326,6 +326,9 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
menu->set_size(Size2(1, 1) * EDSCALE);
for (int i = 0; i < MAX_VALUE_EDITORS; i++) {
+ if (i < MAX_VALUE_EDITORS / 4) {
+ value_hboxes[i]->hide();
+ }
value_editor[i]->hide();
value_label[i]->hide();
if (i < 4) {
@@ -1701,6 +1704,14 @@ void CustomPropertyEditor::config_value_editors(int p_amount, int p_columns, int
set_size(Size2(cell_margin + p_label_w + (cell_width + cell_margin + p_label_w) * p_columns, cell_margin + (cell_height + cell_margin) * rows) * EDSCALE);
for (int i = 0; i < MAX_VALUE_EDITORS; i++) {
+ if (i < MAX_VALUE_EDITORS / 4) {
+ if (i <= p_amount / 4) {
+ value_hboxes[i]->show();
+ } else {
+ value_hboxes[i]->hide();
+ }
+ }
+
int c = i % p_columns;
int r = i / p_columns;
@@ -1729,13 +1740,23 @@ CustomPropertyEditor::CustomPropertyEditor() {
read_only = false;
updating = false;
+ value_vbox = memnew(VBoxContainer);
+ add_child(value_vbox);
+
for (int i = 0; i < MAX_VALUE_EDITORS; i++) {
- value_editor[i] = memnew(LineEdit);
- add_child(value_editor[i]);
+ if (i < MAX_VALUE_EDITORS / 4) {
+ value_hboxes[i] = memnew(HBoxContainer);
+ value_vbox->add_child(value_hboxes[i]);
+ value_hboxes[i]->hide();
+ }
+ int hbox_idx = i / 4;
value_label[i] = memnew(Label);
- add_child(value_label[i]);
- value_editor[i]->hide();
+ value_hboxes[hbox_idx]->add_child(value_label[i]);
value_label[i]->hide();
+ value_editor[i] = memnew(LineEdit);
+ value_hboxes[hbox_idx]->add_child(value_editor[i]);
+ value_editor[i]->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ value_editor[i]->hide();
value_editor[i]->connect("text_entered", callable_mp(this, &CustomPropertyEditor::_modified));
value_editor[i]->connect("focus_entered", callable_mp(this, &CustomPropertyEditor::_focus_enter));
value_editor[i]->connect("focus_exited", callable_mp(this, &CustomPropertyEditor::_focus_exit));
diff --git a/editor/property_editor.h b/editor/property_editor.h
index 5b7db3b83f..75c6fd372b 100644
--- a/editor/property_editor.h
+++ b/editor/property_editor.h
@@ -100,6 +100,8 @@ class CustomPropertyEditor : public PopupPanel {
List<String> field_names;
int hint;
String hint_text;
+ HBoxContainer *value_hboxes[MAX_VALUE_EDITORS / 4];
+ VBoxContainer *value_vbox;
LineEdit *value_editor[MAX_VALUE_EDITORS];
int focused_value_editor;
Label *value_label[MAX_VALUE_EDITORS];
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index c37d32b26b..5795d85e66 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -2658,7 +2658,9 @@ void SceneTreeDock::_remote_tree_selected() {
}
void SceneTreeDock::_local_tree_selected() {
- scene_tree->show();
+ if (!bool(EDITOR_GET("interface/editors/show_scene_tree_root_selection")) || get_tree()->get_edited_scene_root() != nullptr) {
+ scene_tree->show();
+ }
if (remote_tree) {
remote_tree->hide();
}
diff --git a/editor/translations/af.po b/editor/translations/af.po
index fb354fa199..1f598ef5e5 100644
--- a/editor/translations/af.po
+++ b/editor/translations/af.po
@@ -870,7 +870,6 @@ msgstr "Koppel tans Sein:"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1513,18 +1512,9 @@ msgstr "Aktiveer"
msgid "Rearrange Autoloads"
msgstr "Herrangskik AutoLaaie"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "Ongeldige Pad."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Lêer bestaan nie."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Nie in hulpbron pad nie."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2497,11 +2487,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Open Lêer(s)"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2774,10 +2767,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3392,6 +3381,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -4014,6 +4007,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -7005,15 +7002,15 @@ msgid ""
msgstr "Koppel '%s' aan '%s'"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "Reël:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "Maak Funksie"
@@ -7496,6 +7493,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10516,8 +10522,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Deursoek Hulp"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10680,6 +10687,13 @@ msgid "Open Documentation"
msgstr "Opnoemings"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10729,11 +10743,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10858,6 +10872,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Lêer bestaan nie."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "Moet 'n geldige uitbreiding gebruik."
@@ -10900,6 +10918,11 @@ msgstr ""
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "Ongeldige Pad."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "Ongeldige naam."
@@ -11963,6 +11986,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11987,6 +12014,32 @@ msgstr "Ongeldige naam."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12641,6 +12694,9 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Not in resource path."
+#~ msgstr "Nie in hulpbron pad nie."
+
#~ msgid "Replaced %d occurrence(s)."
#~ msgstr "Het %d verskynsel(s) vervang."
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index 22358973a0..a60de1a41e 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -37,12 +37,16 @@
# Nabeel20 <nabeelandnizam@gmail.com>, 2020.
# merouche djallal <kbordora@gmail.com>, 2020.
# Airbus5717 <Abdussamadf350@gmail.com>, 2020.
+# tamsamani mohamed <tamsmoha@gmail.com>, 2020.
+# Anas <anas.ghamdi61@gmail.com>, 2020.
+# R-K <raouf9005@gmail.com>, 2020.
+# HeroFight dev <abdkafi2002@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-05 14:01+0000\n"
-"Last-Translator: Anonymous <noreply@weblate.org>\n"
+"PO-Revision-Date: 2020-06-09 02:02+0000\n"
+"Last-Translator: HeroFight dev <abdkafi2002@gmail.com>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/"
"godot/ar/>\n"
"Language: ar\n"
@@ -862,7 +866,6 @@ msgstr "إشارة غير قادر على الاتصال"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1472,17 +1475,9 @@ msgstr "تمكين"
msgid "Rearrange Autoloads"
msgstr "اعادة ترتيب التحميلات التلقائية"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "مسار غير صالح."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "المل٠غير موجود."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "ليس ÙÙŠ مسار الموارد."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2431,12 +2426,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "لا يمكن إعادة تحميل مشهد لم يتم Ø­Ùظه من قبل."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "إرجاع"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Ø­Ùظ المشهد"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "هذا الÙعل لا يمكن إرجاعة. إرجاع علي أية حال؟"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2721,10 +2719,6 @@ msgid "Redo"
msgstr "إعادة تراجع"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "إعادة المشهد"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "ادوات لكل-المشهد او لمشاريع متنوعه."
@@ -3007,9 +3001,8 @@ msgid "Update When Changed"
msgstr "تحديث عند التغيير"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Hide Update Spinner"
-msgstr "تعطيل دوار التحديث"
+msgstr "إخÙاء دوران التحديث"
#: editor/editor_node.cpp
msgid "FileSystem"
@@ -3238,9 +3231,8 @@ msgid "Assign..."
msgstr "إلحاق..."
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Invalid RID"
-msgstr "اسم غير صالح."
+msgstr "إسم RID غير صالح."
#: editor/editor_properties.cpp
msgid ""
@@ -3278,9 +3270,8 @@ msgid "New Script"
msgstr "نص برمجي جديد"
#: editor/editor_properties.cpp editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Extend Script"
-msgstr "Ùتح الكود"
+msgstr "Ùتح الكود البرمجي"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "New %s"
@@ -3326,14 +3317,12 @@ msgid "Remove Item"
msgstr "إزالة عنصر"
#: editor/editor_properties_array_dict.cpp
-#, fuzzy
msgid "New Key:"
-msgstr "إسم جديد:"
+msgstr "Ù…Ùتاح جديد:"
#: editor/editor_properties_array_dict.cpp
-#, fuzzy
msgid "New Value:"
-msgstr "إسم جديد:"
+msgstr "قيمة جديدة:"
#: editor/editor_properties_array_dict.cpp
msgid "Add Key/Value Pair"
@@ -3371,6 +3360,13 @@ msgstr "لم نستطع تشغيل الكود:"
msgid "Did you forget the '_run' method?"
msgstr "هل نسيت الطريقة '_run' ؟"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"اضغط مطولاً على Ctrl لإسقاط جالب Getter. اضغط مطولاً على Shift لإسقاط توقيع "
+"عام generic signature."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "إختيار عقدة(عقد) للإستيراد"
@@ -3388,9 +3384,8 @@ msgid "Import From Node:"
msgstr "إستيراد من عقدة:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Redownload"
-msgstr "اعادة التحميل"
+msgstr "إعادة التحميل"
#: editor/export_template_manager.cpp
msgid "Uninstall"
@@ -3430,9 +3425,8 @@ msgid "Can't open export templates zip."
msgstr "لم نستطع Ùتح المل٠المضغوط المÙورد."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside templates: %s."
-msgstr "صيغة غير صالحة لـ version.txt داخل القالب."
+msgstr "صيغة غير صالحة ل version.txt داخل القالب: %s."
#: editor/export_template_manager.cpp
msgid "No version.txt found inside templates."
@@ -3501,9 +3495,8 @@ msgid "Download Complete."
msgstr "التحميل إكتمل."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cannot remove temporary file:"
-msgstr "لا يمكن المسح:"
+msgstr "لا يمكن حذ٠مل٠مؤقت:"
#: editor/export_template_manager.cpp
msgid ""
@@ -3514,9 +3507,8 @@ msgstr ""
"يمكن إيجاد أرشي٠القوالب المعطوبة ÙÙŠ '%s'."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error requesting URL:"
-msgstr "خطأ ÙÙŠ طلب الرابط: "
+msgstr "خطأ ÙÙŠ طلب الرابط:"
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror..."
@@ -3565,9 +3557,8 @@ msgid "SSL Handshake Error"
msgstr "خطأ مطابقة ssl"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uncompressing Android Build Sources"
-msgstr "ÙŠÙكك الضغط عن الأصول"
+msgstr "يتم تÙكيك مصادر بناء أندرويد Android"
#: editor/export_template_manager.cpp
msgid "Current Version:"
@@ -3586,14 +3577,12 @@ msgid "Remove Template"
msgstr "مسح القالب"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select Template File"
msgstr "حدد مل٠القالب"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Godot Export Templates"
-msgstr "إدارة قوالب التصدير"
+msgstr "إدارة قوالب التصدير Godot"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
@@ -3604,14 +3593,12 @@ msgid "Download Templates"
msgstr "تنزيل القوالب"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select mirror from list: (Shift+Click: Open in Browser)"
-msgstr "حدد السرÙر من القائمة: "
+msgstr "حدد السرÙر من القائمة: (Shift+Click: للÙتح ÙÙŠ المتصÙØ­)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Favorites"
-msgstr "المÙضلة:"
+msgstr "المÙضلات"
#: editor/filesystem_dock.cpp
msgid "Status: Import of file failed. Please fix file and reimport manually."
@@ -3642,9 +3629,8 @@ msgid "No name provided."
msgstr "لا أسم Ù…Ùقدم."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Provided name contains invalid characters."
-msgstr "الأسم المÙقدم يحتوي علي حرو٠خاطئة"
+msgstr "الإسم المÙقدم يحتوي على أحر٠خاطئة."
#: editor/filesystem_dock.cpp
msgid "A file or folder with this name already exists."
@@ -3671,33 +3657,28 @@ msgid "Duplicating folder:"
msgstr "تكرار مجلد:"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Inherited Scene"
-msgstr "مشهد مورث جديد..."
+msgstr "مشهد Ù…Ùوّرَث جديد"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Set As Main Scene"
-msgstr "إختر المشهد الأساسي"
+msgstr "تعيين كمشهد أساسي"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Open Scenes"
-msgstr "Ùتح مشهد"
+msgstr "Ùتح المَشاهÙد"
#: editor/filesystem_dock.cpp
msgid "Instance"
msgstr "نموذج"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Add to Favorites"
-msgstr "المÙضلة:"
+msgstr "إضاÙØ© إلى المÙضلات"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Remove from Favorites"
-msgstr "حذ٠من المجموعة"
+msgstr "حذ٠من المÙضلات"
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies..."
@@ -3720,29 +3701,24 @@ msgid "Move To..."
msgstr "تحريك إلي..."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Scene..."
-msgstr "مشهد جديد"
+msgstr "مشهد جديد..."
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "New Script..."
-msgstr "Ùتح سريع للكود..."
+msgstr "Ùتح السكريبت..."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Resource..."
-msgstr "Ø­Ùظ المورد باسم..."
+msgstr "مورد جديد..."
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Expand All"
msgstr "توسيع الكل"
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Collapse All"
msgstr "طوي الكل"
@@ -3754,28 +3730,24 @@ msgid "Rename"
msgstr "إعادة التسمية"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Previous Folder/File"
-msgstr "المجلد السابق"
+msgstr "‪المجلد/المل٠السابق"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Next Folder/File"
-msgstr "المجلد اللاحق"
+msgstr "المجلد/المل٠التالي"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
msgstr "إعادة Ùحص نظام الملÙات"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Toggle Split Mode"
-msgstr "أظهر المود"
+msgstr "تعيين وضعية الإنقسام"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Search files"
-msgstr "إبحث ÙÙŠ الأصناÙ"
+msgstr "بحث الملÙات"
#: editor/filesystem_dock.cpp
msgid ""
@@ -3790,42 +3762,36 @@ msgid "Move"
msgstr "تحريك"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "There is already file or folder with the same name in this location."
-msgstr "مل٠أو مجلد مع هذا الأسم موجود بالÙعل."
+msgstr "يوجد بالÙعل مل٠أو مجلد بنÙس الاسم ÙÙŠ هذا المكان."
#: editor/filesystem_dock.cpp
msgid "Overwrite"
msgstr "الكتابة المÙتراكبة Overwrite"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Create Scene"
-msgstr "Ø­Ùظ المشهد"
+msgstr "إنشاء المشهد"
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
msgstr "إنشاء نص برمجي"
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Find in Files"
-msgstr "%d مزيد من الملÙات"
+msgstr "إبحث ÙÙŠ الملÙات"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Find:"
-msgstr "جد"
+msgstr "إيجاد:"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Folder:"
-msgstr "أنشئ مجلد"
+msgstr "مجلد:"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Filters:"
-msgstr "وضع المÙصÙÙŠ:"
+msgstr "Ùلتر:"
#: editor/find_in_files.cpp
msgid ""
@@ -3849,29 +3815,24 @@ msgid "Cancel"
msgstr "إلغاء"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Find: "
-msgstr "جد"
+msgstr "إيجاد: "
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace: "
-msgstr "إستبدال"
+msgstr "إستبدال:"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace all (no undo)"
-msgstr "إستبدال الكل"
+msgstr "إستبدال الكل (بلا تراجع)"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Searching..."
-msgstr "جاري الحÙظ..."
+msgstr "جاري البحث..."
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Search complete"
-msgstr "إبحث عن كتابة"
+msgstr "إكتمل البحث"
#: editor/groups_editor.cpp
msgid "Add to Group"
@@ -3882,57 +3843,49 @@ msgid "Remove from Group"
msgstr "حذ٠من المجموعة"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Group name already exists."
-msgstr "خطأ: إسم الحركة موجود بالÙعل!"
+msgstr "توجد مجموعة بهذا الاسم."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Invalid group name."
-msgstr "اسم غير صالح."
+msgstr "اسم المجموعة غير صالح."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Rename Group"
-msgstr "المجموعات"
+msgstr "إعادة تسمية المجموعة"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Delete Group"
-msgstr "مسح المخطط"
+msgstr "حذ٠المجموعة"
#: editor/groups_editor.cpp editor/node_dock.cpp
msgid "Groups"
msgstr "المجموعات"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Nodes Not in Group"
-msgstr "إضاÙØ© إلي مجموعة"
+msgstr "العÙقد خارج المجموعة"
#: editor/groups_editor.cpp editor/scene_tree_dock.cpp
#: editor/scene_tree_editor.cpp
msgid "Filter nodes"
-msgstr "العÙقد المÙرشحة Filter nodes"
+msgstr "تصÙية العÙقد"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Nodes in Group"
-msgstr "إضاÙØ© إلي مجموعة"
+msgstr "العÙقد ÙÙŠ المجموعة"
#: editor/groups_editor.cpp
msgid "Empty groups will be automatically removed."
-msgstr "ستزال المجموعات الÙارغة بصورة تلقائية."
+msgstr "ستزال المجموعات الÙارغة تلقائياً."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Group Editor"
-msgstr "Ùتح Ù…Ùعدل الكود"
+msgstr "محرر المجموعات"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Manage Groups"
-msgstr "المجموعات"
+msgstr "إدارة المجموعات"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Single Scene"
@@ -4008,6 +3961,10 @@ msgid "Error running post-import script:"
msgstr "خطأ ÙÙŠ تشغيل الكود الملصق- المستورد:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "جاري الحÙظ..."
@@ -4028,7 +3985,6 @@ msgid "Import As:"
msgstr "إستيراد كـ:"
#: editor/import_dock.cpp
-#, fuzzy
msgid "Preset"
msgstr "إعداد Ù…Ùسبق..."
@@ -4054,14 +4010,12 @@ msgid "Failed to load resource."
msgstr "Ùشل تحميل المورد."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Expand All Properties"
-msgstr "توسيع كل التÙاصيل"
+msgstr "توسيع كل الخصائص"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Collapse All Properties"
-msgstr "طي كل التÙاصيل"
+msgstr "طي كل الخصائص"
#: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -4073,9 +4027,8 @@ msgid "Copy Params"
msgstr "إنسخ المÙعامل"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource Clipboard"
-msgstr "خطأ: لا مصدر حركة علي الحاÙظة!"
+msgstr "تحرير حاÙظة الموارد"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
@@ -4122,9 +4075,8 @@ msgid "Object properties."
msgstr "خصائص العنصر."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Filter properties"
-msgstr "خصائص العنصر."
+msgstr "تصÙية الخصائص"
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4135,24 +4087,20 @@ msgid "MultiNode Set"
msgstr "تحديد عقد متعددة"
#: editor/node_dock.cpp
-#, fuzzy
msgid "Select a single node to edit its signals and groups."
-msgstr "حدد عقدة لكي تÙعدل الإشارات والمجموعات."
+msgstr "حدد عقدة لكي تÙعدل إشاراتها ومجموعاتها."
#: editor/plugin_config_dialog.cpp
-#, fuzzy
msgid "Edit a Plugin"
-msgstr "تعديل البولي"
+msgstr "تعديل إضاÙØ©"
#: editor/plugin_config_dialog.cpp
-#, fuzzy
msgid "Create a Plugin"
-msgstr "إنشاء حل C#‎"
+msgstr "إنشاء إضاÙØ©"
#: editor/plugin_config_dialog.cpp
-#, fuzzy
msgid "Plugin Name:"
-msgstr "إضاÙات"
+msgstr "اسم الإضاÙØ©:"
#: editor/plugin_config_dialog.cpp
msgid "Subfolder:"
@@ -4172,53 +4120,45 @@ msgstr "التÙعيل الآن؟"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon"
-msgstr "إنشاء بولي"
+msgstr "إنشاء مضلع"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Create points."
-msgstr "مسح النقاط"
+msgstr "إنشاء نقاط."
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid ""
"Edit points.\n"
"LMB: Move Point\n"
"RMB: Erase Point"
msgstr ""
-"تعديل المضلعات الموجودة:\n"
-"زر الÙأرة الأيسر: لتحريك النقطة.\n"
-"Ctrl+زر الÙأرة الأيسر: لتقسيم الجزء.\n"
-"زر الÙأرة الأيمن: مسح النقطة."
+"تعديل النقاط.\n"
+"زر الÙأرة الأيسر: لتحريك النقطة\n"
+"زر الÙأرة الأيمن: مسح النقطة"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
msgid "Erase points."
-msgstr "زر الÙأرة الأيمن: مسح النقطة."
+msgstr "مسح النقاط."
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Edit Polygon"
-msgstr "تعديل البولي"
+msgstr "تعديل مضلع"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Insert Point"
msgstr "إدخال نقطة"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Edit Polygon (Remove Point)"
-msgstr "تعديل البولي (مسح النقطة)"
+msgstr "تعديل المضلع (مسح النقطة)"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Remove Polygon And Point"
-msgstr "مسح البولي والنقطة"
+msgstr "مسح المضلع والنقطة"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4232,15 +4172,13 @@ msgstr "أض٠حركة"
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Load..."
-msgstr "تحميل"
+msgstr "تحميل..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Move Node Point"
-msgstr "مسح النقطة"
+msgstr "تحريك نقطة العقدة"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#, fuzzy
@@ -4261,9 +4199,8 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Node Point"
-msgstr "إضاÙØ© نقطة"
+msgstr "إضاÙØ© نقطة العقدة"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -7011,12 +6948,13 @@ msgstr "قطع إتصال'%s' من '%s'"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Line"
-msgstr "الخط:"
+msgid "[Ignore]"
+msgstr "(تجاهل)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(تجاهل)"
+#, fuzzy
+msgid "Line"
+msgstr "الخط:"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
@@ -7509,6 +7447,15 @@ msgid "XForm Dialog"
msgstr "ناÙذة XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "محاذاة العÙقد إلى الأرضية"
@@ -7963,7 +7910,7 @@ msgstr "الخطوة:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Sep.:"
-msgstr ""
+msgstr "الÙاصل:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "TextureRegion"
@@ -8050,7 +7997,7 @@ msgstr "عنصر Ù…ÙÙعل اختياري"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Named Sep."
-msgstr ""
+msgstr "الÙاصل المÙسمّى"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Submenu"
@@ -9195,9 +9142,8 @@ msgid "Scalar constant."
msgstr "ثابت الكمية القياسية Scalar constant."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar uniform."
-msgstr "تحويل تغيير التحريك"
+msgstr "الكمية القياسية المÙوحدة Scalar uniform."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Perform the cubic texture lookup."
@@ -9219,6 +9165,7 @@ msgstr "البحث عن النقش الموحد ثنائي البÙعد."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "2D texture uniform lookup with triplanar."
msgstr ""
+"البحث عن النقش ثنائي البÙعد الموحد باستخدام الإسقاط ثلاثي المستويات triplanar."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform function."
@@ -9234,6 +9181,13 @@ msgid ""
"whose number of rows is the number of components in 'c' and whose number of "
"columns is the number of components in 'r'."
msgstr ""
+"يحسب الجداء السلمي لزوج من المÙتجهات (الأشعة). \n"
+"\n"
+"يعامل OuterProduct (الجداء السلمي) المعامل الأول 'c' كمتجه عمودي (مصÙÙˆÙØ© "
+"بعمود واحد) بينما يعامل المعامل الثاني 'r' كمÙتجه Ø£Ùقي (مصÙÙˆÙØ© بص٠واحد) حيث "
+"يقوم بالجداء الجبري الخطي للمصÙÙˆÙتين بضرب 'c * r'ØŒ الأمر الذي ينتج عنه "
+"مصÙÙˆÙØ© عدد صÙÙˆÙها يساوي عدد مكونات 'c' وعدد الأعمدة Ùيها يكون عدد المكونات "
+"ÙÙŠ 'r'."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Composes transform from four vectors."
@@ -9306,6 +9260,11 @@ msgid ""
"incident vector, and Nref, the reference vector. If the dot product of I and "
"Nref is smaller than zero the return value is N. Otherwise -N is returned."
msgstr ""
+"ÙŠÙرجع المÙتجه (الشعاع) الذي يشير إلى ذات اتجاه المÙتجه المرجعي. ولدى هذه "
+"الوظيÙØ© البرمجية ثلاث مَعالم كمتجهات: NØŒ المÙتجه الموجه، IØŒ المÙتجه المÙسقط "
+"وأخيراً Nref الذي يمثل المÙوجه المرجعي. إذا كان الجداء السÙلمي dot product لكل "
+"من I ÙˆNref أصغر من الصÙر Ùإن القيمة المÙرجعة وقتها ستكون N. عدا ذلك سيتم "
+"إرجاع -N."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the length of a vector."
@@ -9323,25 +9282,27 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the normalize product of vector."
-msgstr ""
+msgstr "يحسب قيمة المÙتجه (الشعاع) نسبة للواحد normalize product."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 - vector"
-msgstr ""
+msgstr "1.0 - Ù…Ùتجه (شعاع)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 / vector"
-msgstr ""
+msgstr "1.0 \\ المÙتجه (الشعاع)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns the vector that points in the direction of reflection ( a : incident "
"vector, b : normal vector )."
msgstr ""
+"ÙŠÙرجع المÙتجه الذي يشير إلى باتجاه الانعكاس (Ø£: المÙتجه (الشعاع) المÙسقَط، ب: "
+"المÙتجه (الشعاع) الطبيعي)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the vector that points in the direction of refraction."
-msgstr ""
+msgstr "ÙŠÙرجع المÙتجه (الشعاع) الذي يشير باتجاه الانكسار."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9351,6 +9312,11 @@ msgid ""
"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
"using Hermite polynomials."
msgstr ""
+"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n"
+"\n"
+"تÙرجع قيمة 0.0 إذا كان 'x' أصغر من 'edge0' Ùˆ 1.0 إذا كان 'x' أكبر من 'edge1'. "
+"بخلا٠ذلك القيمة المÙرجعة سيتم استيÙاؤها (استقراء داخلي) بين 0.0 Ùˆ1.0 "
+"باستخدام متعددات الحدود لهيرمت Hermite polynomials."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9360,6 +9326,11 @@ msgid ""
"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
"using Hermite polynomials."
msgstr ""
+"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n"
+"\n"
+"تÙرجع قيمة 0.0 إذا كان 'x' أصغر من 'edge0' Ùˆ 1.0 إذا كان 'x' أكبر من 'edge1'. "
+"بخلا٠ذلك القيمة المÙرجعة سيتم استيÙاؤها (استقراء داخلي) بين 0.0 Ùˆ1.0 "
+"باستخدام متعددات الحدود لهيرمت Hermite polynomials."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9367,6 +9338,9 @@ msgid ""
"\n"
"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
msgstr ""
+"Step function( vector(edge), vector(x) ).\n"
+"\n"
+"ÙŠÙرجع القيمة 0.0 إذا كان 'x' أصغر من 'edge' وعدا ذلك ستÙرجع القيمة 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9374,10 +9348,13 @@ msgid ""
"\n"
"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
msgstr ""
+"Step function( scalar(edge), vector(x) ).\n"
+"\n"
+"ÙŠÙرجع القيمة 0.0 إذا كان 'x' أصغر من 'edge' وعدا ذلك ستÙرجع القيمة 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Adds vector to vector."
-msgstr ""
+msgstr "إضاÙØ© Ù…Ùتجه (شعاع) إلى Ù…Ùتجه (شعاع)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Divides vector by vector."
@@ -9385,19 +9362,19 @@ msgstr "ÙŠÙقسّم المÙتجه (الشعاع) على المÙتجه."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Multiplies vector by vector."
-msgstr ""
+msgstr "جداء (مضاعÙØ©) Ù…Ùتجه بمÙتجه."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the remainder of the two vectors."
-msgstr ""
+msgstr "ÙŠÙرجع باقي كل من المÙتجهين (الشعاعين)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Subtracts vector from vector."
-msgstr ""
+msgstr "طرح Ù…Ùتجه (شعاع) من Ù…Ùتجه."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector constant."
-msgstr ""
+msgstr "ثابت المÙتجه."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9410,12 +9387,18 @@ msgid ""
"output ports. This is a direct injection of code into the vertex/fragment/"
"light function, do not use it to write the function declarations inside."
msgstr ""
+"تعبير إصلاحي (لغوي) خاص بمÙظلل غودوت، بواسطة كمية Ù…Ùخصصة من مناÙØ° المÙدخلات "
+"والمÙخرجات. إنه إقحام مباشر للنص البرمجي ضمن الوظائ٠الخاصة بالقمة vertex/ "
+"بالجزء fragment/ بالضوء light ، لذا لا تستخدمها لكي تكتب تعري٠وتوضيح "
+"الوظيÙØ© البرمجية داخلها."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns falloff based on the dot product of surface normal and view "
"direction of camera (pass associated inputs to it)."
msgstr ""
+"ÙŠÙرجع الإسقاط المبني على الجداء السÙلمي لكل من السطح الطبيعي وتوجيه الكاميرا "
+"(يمرر المÙدخلات المرتبطة بها)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9424,50 +9407,67 @@ msgid ""
"it later in the Expressions. You can also declare varyings, uniforms and "
"constants."
msgstr ""
+"تعبير (إصطلاحي) لغوي خاص بمÙظلل غودوت، والذي يكون أعلى المÙظلل الناتج. يمكنك "
+"أن تضع تعريÙات وظيÙية برمجية مختلÙØ© ضمنه واستدعاءها لاحقاً ÙÙŠ التعابير عنها. "
+"كما يمكنك أيضاً أن تÙصرّح (تعرّÙ) عن المتحولات، الموحدات (uniforms)ØŒ وكذلك "
+"الثوابت."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
+"(Ùقط وضع القÙطع Fragment/ الضوء) وظيÙية برمجية اشتقاقية للكمية القياسية "
+"Scalar."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Vector derivative function."
msgstr ""
+"(Ùقط وضع القÙطع Fragment/ الضوء) وظيÙية برمجية اشتقاقية للمÙتجه (الشعاع)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Vector) Derivative in 'x' using local "
"differencing."
msgstr ""
+"(Ùقط وضع القÙطع Fragment/ الضوء) (Ù…Ùتجه) Ù…Ùشتق ÙÙŠ 'x' باستخدام الاختلاÙات "
+"المحلية."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Scalar) Derivative in 'x' using local "
"differencing."
msgstr ""
+"(Ùقط وضع القÙطع Fragment/ الضوء) (كمية قياسية Scalar) Ù…Ùشتقة ÙÙŠ 'x' باستخدام "
+"الاختلاÙات المحلية."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Vector) Derivative in 'y' using local "
"differencing."
msgstr ""
+"(Ùقط وضع القÙطع Fragment/ الضوء) (Ù…Ùتجه) Ù…Ùشتق ÙÙŠ 'y' باستخدام الاختلاÙات "
+"المحلية."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Scalar) Derivative in 'y' using local "
"differencing."
msgstr ""
+"(Ùقط وضع القÙطع Fragment/ الضوء) (كمية قياسية Scalar) Ù…Ùشتقة ÙÙŠ 'y' باستخدام "
+"الاختلاÙات المحلية."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and "
"'y'."
msgstr ""
+"(Ùقط وضع القÙطع Fragment/ الضوء) (Ù…Ùتجه)مجموع الاشتقاق المÙطلق ÙÙŠ 'x' Ùˆ 'y'."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Scalar) Sum of absolute derivative in 'x' and "
"'y'."
msgstr ""
+"(Ùقط وضع القÙطع Fragment/ الضوء) (كمية قياسية Scalar) Ù…Ùشتق Ù…Ùطلق ÙÙŠ 'x' Ùˆ'y'."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "VisualShader"
@@ -9863,6 +9863,14 @@ msgid ""
"Warning: You won't be able to open the project with previous versions of the "
"engine anymore."
msgstr ""
+"إن مل٠إعدادت المشروع المرÙÙ‚ لا ÙŠÙحدد نسخة غودوت التي تم بناؤه بها. \n"
+"\n"
+"%s\n"
+"\n"
+"إن أصريت على Ùتحه، سيتم تحويله لبنية مل٠التهيئة (التكوين) الحالي الخاص "
+"بغودوت. \n"
+"تحذير: لن تعد قادارً على Ùتح المشروع باستخدام النÙسخ السابقة من المÙحرك بعد "
+"الآن."
#: editor/project_manager.cpp
msgid ""
@@ -9875,6 +9883,13 @@ msgid ""
"Warning: You won't be able to open the project with previous versions of the "
"engine anymore."
msgstr ""
+"إن مل٠إعدادات المشروع المرÙÙ‚ كان قد تم إنشاؤه باستخدام إصدار أقدم من "
+"المحرك، لذا إنه بحاجة لتحويله إلى النسخة الحالية:\n"
+"\n"
+"%s\n"
+"\n"
+"هل ترغب ÙÙŠ تحويله؟\n"
+"تحذير: لن تعد قادراً على Ùتح المشروع بالنÙسخ السابقة من المÙحرك بعد الآن."
#: editor/project_manager.cpp
msgid ""
@@ -9999,6 +10014,9 @@ msgid ""
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
+"صندوق البحث ÙŠÙرشح (ÙŠÙغربل) المشاريع ÙˆÙقاً للاسم Ùˆ مكون المسار الأخير.\n"
+"لتشريح (غربلة) المشاريع باستخدام الاسم والمسار الكامل، يجب أن تحتوي المبحوث "
+"عنه query على الأقل حر٠`/` واحد."
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -10021,8 +10039,8 @@ msgid ""
"Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'"
msgstr ""
-"اسم Ùعالية غير صحيح. لا يمكن أن يكون Ùارغاً أو أو يتضمن '/'ØŒ ':'ØŒ '='ØŒ '\\' "
-"أو '\"'"
+"اسم Ùعالية غير صحيح. لا يمكن أن يكون Ùارغاً أو يتضمن '/'ØŒ ':'ØŒ '='ØŒ '\\' أو "
+"'\"'"
#: editor/project_settings_editor.cpp
msgid "An action with the name '%s' already exists."
@@ -10086,27 +10104,27 @@ msgstr "زر العجلة يميناً"
#: editor/project_settings_editor.cpp
msgid "X Button 1"
-msgstr ""
+msgstr "زر X 1"
#: editor/project_settings_editor.cpp
msgid "X Button 2"
-msgstr ""
+msgstr "زر X 2"
#: editor/project_settings_editor.cpp
msgid "Joypad Axis Index:"
-msgstr ""
+msgstr "مؤشر محور القبضة Joypad :"
#: editor/project_settings_editor.cpp
msgid "Axis"
-msgstr ""
+msgstr "محاور"
#: editor/project_settings_editor.cpp
msgid "Joypad Button Index:"
-msgstr ""
+msgstr "مؤشر زر القبضة Joypad:"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action"
-msgstr ""
+msgstr "مسح إجراء الإدخال"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -10203,19 +10221,19 @@ msgstr "إضاÙØ© مسار Ù…Ùعاد تعيينه Remapped"
#: editor/project_settings_editor.cpp
msgid "Resource Remap Add Remap"
-msgstr ""
+msgstr "مورد إعادة رسم الخريطة ÙŠÙضي٠إعادة رسم خريطة"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
-msgstr ""
+msgstr "تغيير لغة مورد إعادة تعيين الخريطة"
#: editor/project_settings_editor.cpp
msgid "Remove Resource Remap"
-msgstr ""
+msgstr "إزالة مورد إعادة تعيين الخريطة"
#: editor/project_settings_editor.cpp
msgid "Remove Resource Remap Option"
-msgstr ""
+msgstr "إزالة إعداد مورد إعادة تعيين الخريطة"
#: editor/project_settings_editor.cpp
msgid "Changed Locale Filter"
@@ -10223,7 +10241,7 @@ msgstr "Ù…Ùرشح محلي Ù…Ùعدّل"
#: editor/project_settings_editor.cpp
msgid "Changed Locale Filter Mode"
-msgstr ""
+msgstr "وضع المÙرشح (المÙغربل) المحلي المÙعدّل"
#: editor/project_settings_editor.cpp
msgid "Project Settings (project.godot)"
@@ -10279,7 +10297,7 @@ msgstr "الترجمات:"
#: editor/project_settings_editor.cpp
msgid "Remaps"
-msgstr ""
+msgstr "إعادة تعيين الخرائط"
#: editor/project_settings_editor.cpp
msgid "Resources:"
@@ -10343,7 +10361,7 @@ msgstr "ملÙ..."
#: editor/property_editor.cpp
msgid "Dir..."
-msgstr ""
+msgstr "مسار..."
#: editor/property_editor.cpp
msgid "Assign"
@@ -10454,13 +10472,15 @@ msgstr "مقدار الزيادة للعداد لكل عÙقدة"
#: editor/rename_dialog.cpp
msgid "Padding"
-msgstr ""
+msgstr "الحدود المÙبطنة Padding"
#: editor/rename_dialog.cpp
msgid ""
"Minimum number of digits for the counter.\n"
"Missing digits are padded with leading zeros."
msgstr ""
+"أصغر عدد خانات للعداد.\n"
+"الخانات الناقصة ستعوض padded بأصÙار قياسية."
#: editor/rename_dialog.cpp
msgid "Post-Process"
@@ -10566,8 +10586,9 @@ msgid "Instance Child Scene"
msgstr "نمذجة المشهد الابن"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "إخلاء الكود"
+#, fuzzy
+msgid "Detach Script"
+msgstr "إلحاق نص برمجي"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10736,6 +10757,13 @@ msgid "Open Documentation"
msgstr "ÙÙتح مؤخراً"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "إضاÙØ© عÙقدة ابن"
@@ -10788,11 +10816,13 @@ msgstr ""
"موروث."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "إلحاق نص برمجي موجود أو جديد للعÙقدة المختارة."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "مسح النص البرمجي للعÙقدة المختارة."
#: editor/scene_tree_dock.cpp
@@ -10829,86 +10859,95 @@ msgstr "خطأ ÙÙŠ الإتصال"
#: editor/scene_tree_editor.cpp
msgid "Node configuration warning:"
-msgstr ""
+msgstr "تحذير تهيئة العÙقدة:"
#: editor/scene_tree_editor.cpp
msgid ""
"Node has %s connection(s) and %s group(s).\n"
"Click to show signals dock."
msgstr ""
+"تملك هذه العÙقدة %s اتصال(ات) Ùˆ %s مجموعة(مجموعات).\n"
+"اضغط لإظهار رصي٠(ميناء) الإشارات."
#: editor/scene_tree_editor.cpp
msgid ""
"Node has %s connection(s).\n"
"Click to show signals dock."
msgstr ""
+"تملك العÙقدة %s اتصال(ات).\n"
+"اضغط لإظهار رصي٠(ميناء) الإشارات."
#: editor/scene_tree_editor.cpp
msgid ""
"Node is in %s group(s).\n"
"Click to show groups dock."
msgstr ""
+"العÙقدة ضمن %s مجموعة(مجموعات).\n"
+"اضغط لإظهار رصي٠(ميناء) المجموعات."
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Open Script:"
-msgstr "Ùتح الكود"
+msgstr "Ùتح النص البرمجي:"
#: editor/scene_tree_editor.cpp
msgid ""
"Node is locked.\n"
"Click to unlock it."
msgstr ""
+"إن العÙقدة مقÙولة. \n"
+"اضغط Ù„Ùكّ القÙÙ„."
#: editor/scene_tree_editor.cpp
msgid ""
"Children are not selectable.\n"
"Click to make selectable."
msgstr ""
+"الابن غير قابل للاختيار.\n"
+"اضغط لجعله قابلاً للاختيار."
#: editor/scene_tree_editor.cpp
msgid "Toggle Visibility"
-msgstr ""
+msgstr "تشغيل/إطÙاء الوضوحية Visibility"
#: editor/scene_tree_editor.cpp
msgid ""
"AnimationPlayer is pinned.\n"
"Click to unpin."
msgstr ""
+"تم تعليق Ù…Ùشغل الرسومات المÙتحركة.\n"
+"اضغط لإزالة تعليقه."
#: editor/scene_tree_editor.cpp
msgid "Invalid node name, the following characters are not allowed:"
-msgstr ""
+msgstr "اسم عÙقدة غير صالح، إن الأحر٠التالية غير مسموحة:"
#: editor/scene_tree_editor.cpp
msgid "Rename Node"
-msgstr ""
+msgstr "إعادة تسمية العÙقدة"
#: editor/scene_tree_editor.cpp
msgid "Scene Tree (Nodes):"
-msgstr ""
+msgstr "شجرة المشهد (العÙقد):"
#: editor/scene_tree_editor.cpp
msgid "Node Configuration Warning!"
-msgstr ""
+msgstr "تحذير تهيئة العÙقدة!"
#: editor/scene_tree_editor.cpp
msgid "Select a Node"
-msgstr ""
+msgstr "اختر عÙقدة"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Path is empty."
-msgstr "الميش Ùارغ!"
+msgstr "المسار Ùارغ!."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Filename is empty."
-msgstr "الميش Ùارغ!"
+msgstr "اسم المل٠Ùارغ."
#: editor/script_create_dialog.cpp
msgid "Path is not local."
-msgstr ""
+msgstr "المسار ليس محلياً."
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -10921,57 +10960,61 @@ msgid "A directory with the same name exists."
msgstr "مل٠أو مجلد مع هذا الأسم موجود بالÙعل."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "المل٠غير موجود."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "يجب أن يستخدم صيغة صحيحة."
#: editor/script_create_dialog.cpp
msgid "Wrong extension chosen."
-msgstr ""
+msgstr "لاحقة Ù…Ùختارة غير مناسبة."
#: editor/script_create_dialog.cpp
msgid "Error loading template '%s'"
-msgstr ""
+msgstr "خطأ ÙÙŠ تحميل القالب '%s'"
#: editor/script_create_dialog.cpp
msgid "Error - Could not create script in filesystem."
-msgstr ""
+msgstr "خطأ - Ùشل إنشاء النص البرمجي ÙÙŠ نظام الملÙات filesystem."
#: editor/script_create_dialog.cpp
msgid "Error loading script from %s"
-msgstr ""
+msgstr "خطأ ÙÙŠ تحميل النص البرمجي من %s"
#: editor/script_create_dialog.cpp
msgid "Overrides"
-msgstr ""
+msgstr "يتجاوز"
#: editor/script_create_dialog.cpp
msgid "N/A"
-msgstr ""
+msgstr "غير متواÙÙ‚ N/A"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Open Script / Choose Location"
-msgstr "Ùتح Ù…Ùعدل الكود"
+msgstr "Ùتح النص البرمجي / انتقاء الموقع"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Open Script"
-msgstr "Ùتح الكود"
+msgstr "Ùتح النص البرمجي"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "File exists, it will be reused."
-msgstr "المل٠موجود، سيعاد إستخدامه"
+msgstr "إن المل٠موجود، سيعاد إستخدامه."
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "مسار غير صالح."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid class name."
-msgstr "إسم صن٠غير صالح"
+msgstr "إسم ص٠غير صالح."
#: editor/script_create_dialog.cpp
msgid "Invalid inherited parent name or path."
-msgstr ""
+msgstr "إن اسم أو مسار الأب (الأصل parent) الموروث غير صالح."
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -10980,7 +11023,7 @@ msgstr "شجرة الحركة صحيحة."
#: editor/script_create_dialog.cpp
msgid "Allowed: a-z, A-Z, 0-9, _ and ."
-msgstr ""
+msgstr "المسموح: a-z، A-Z ، 0-9 ، _ و ."
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -11007,6 +11050,8 @@ msgid ""
"Note: Built-in scripts have some limitations and can't be edited using an "
"external editor."
msgstr ""
+"ملاحظة: النصوص البرمجية المبنية ضمناً تملك مقيدة ولها إمكانيات محددة ولا يمكن "
+"تعديلها باستخدام Ù…Ùحرر خارجي."
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -11025,7 +11070,7 @@ msgstr "Ùتح الكود"
#: editor/script_create_dialog.cpp
msgid "Attach Node Script"
-msgstr ""
+msgstr "ألحق نص برمجي للعÙقدة"
#: editor/script_editor_debugger.cpp
msgid "Remote "
@@ -11033,7 +11078,7 @@ msgstr "من بعد "
#: editor/script_editor_debugger.cpp
msgid "Bytes:"
-msgstr ""
+msgstr "Bytes:"
#: editor/script_editor_debugger.cpp
#, fuzzy
@@ -11072,11 +11117,11 @@ msgstr "مورد"
#: editor/script_editor_debugger.cpp
msgid "Stack Trace"
-msgstr ""
+msgstr "تتبع المÙكدس Stack Trace"
#: editor/script_editor_debugger.cpp
msgid "Errors"
-msgstr ""
+msgstr "أخطاء"
#: editor/script_editor_debugger.cpp
#, fuzzy
@@ -11089,7 +11134,7 @@ msgstr "خطأ ÙÙŠ نسخ"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
-msgstr ""
+msgstr "ذاكرة الÙيديو Video RAM"
#: editor/script_editor_debugger.cpp
#, fuzzy
@@ -11098,19 +11143,19 @@ msgstr "مسح النقاط"
#: editor/script_editor_debugger.cpp
msgid "Inspect Previous Instance"
-msgstr ""
+msgstr "تÙحص النمذجة السابقة"
#: editor/script_editor_debugger.cpp
msgid "Inspect Next Instance"
-msgstr ""
+msgstr "تÙحص النمذجة التالية"
#: editor/script_editor_debugger.cpp
msgid "Stack Frames"
-msgstr ""
+msgstr "حزم الإطارات Stack Frames"
#: editor/script_editor_debugger.cpp
msgid "Profiler"
-msgstr ""
+msgstr "Ù…Ùنشئ الملÙات التعريÙية Profiler"
#: editor/script_editor_debugger.cpp
msgid "Network Profiler"
@@ -11118,27 +11163,27 @@ msgstr "مل٠تعري٠الشبكة Network Profiler"
#: editor/script_editor_debugger.cpp
msgid "Monitor"
-msgstr ""
+msgstr "المراقب Monitor"
#: editor/script_editor_debugger.cpp
msgid "Value"
-msgstr ""
+msgstr "القيمة"
#: editor/script_editor_debugger.cpp
msgid "Monitors"
-msgstr ""
+msgstr "المراقبون Monitors"
#: editor/script_editor_debugger.cpp
msgid "Pick one or more items from the list to display the graph."
-msgstr ""
+msgstr "اختر واحدة أو كثر من العناصر ÙÙŠ القائمة لعرض الرسم البياني graph."
#: editor/script_editor_debugger.cpp
msgid "List of Video Memory Usage by Resource:"
-msgstr ""
+msgstr "قائمة باستخدام ذاكرة الÙيديو لكل من الموارد:"
#: editor/script_editor_debugger.cpp
msgid "Total:"
-msgstr ""
+msgstr "المجموع الكلي:"
#: editor/script_editor_debugger.cpp
#, fuzzy
@@ -11147,35 +11192,35 @@ msgstr "تصدير الملÙ"
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
-msgstr ""
+msgstr "مسار المورد"
#: editor/script_editor_debugger.cpp
msgid "Type"
-msgstr ""
+msgstr "النوع"
#: editor/script_editor_debugger.cpp
msgid "Format"
-msgstr ""
+msgstr "البنية (اللاحقة)"
#: editor/script_editor_debugger.cpp
msgid "Usage"
-msgstr ""
+msgstr "الاستخدام"
#: editor/script_editor_debugger.cpp
msgid "Misc"
-msgstr ""
+msgstr "المتنوعات Misc"
#: editor/script_editor_debugger.cpp
msgid "Clicked Control:"
-msgstr ""
+msgstr "التحكم بالنقر Clicked Control:"
#: editor/script_editor_debugger.cpp
msgid "Clicked Control Type:"
-msgstr ""
+msgstr "نوع التحكم بالنقر Clicked Control:"
#: editor/script_editor_debugger.cpp
msgid "Live Edit Root:"
-msgstr ""
+msgstr "جذر التعديل المباشر:"
#: editor/script_editor_debugger.cpp
msgid "Set From Tree"
@@ -11218,10 +11263,11 @@ msgstr "تغيير نص٠قطر الإنارة"
#: editor/spatial_editor_gizmos.cpp
msgid "Change AudioStreamPlayer3D Emission Angle"
msgstr ""
+"تعديل زاوية انبعاث (إصدار) Ù…Ùشغل الصوت ثلاثي الأبعاد AudioStreamPlayer3D"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Camera FOV"
-msgstr ""
+msgstr "تعديل حقل رؤية الكاميرا Camera FOV"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Camera Size"
@@ -11229,43 +11275,43 @@ msgstr "غيّر حجم الكاميرا"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Notifier AABB"
-msgstr ""
+msgstr "تعديل Notifier AABB"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Particles AABB"
-msgstr ""
+msgstr "تعديل جÙزيئات AABB"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Probe Extents"
-msgstr ""
+msgstr "تعديل نطاقات المسبر Probe Extents"
#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp
msgid "Change Sphere Shape Radius"
-msgstr ""
+msgstr "تعديل نص٠قطر الشكل الكروي"
#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp
msgid "Change Box Shape Extents"
-msgstr ""
+msgstr "تعديل حجم الشكل الصندوقي"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Radius"
-msgstr ""
+msgstr "تعديل نص٠قطر الشكل الكبسولي Capsule Shape"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Height"
-msgstr ""
+msgstr "تعديل ارتÙاع الشكل الكبسولي Capsule Shape"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Cylinder Shape Radius"
-msgstr ""
+msgstr "تعديل نص٠قطر الشكل الأسطواني"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Cylinder Shape Height"
-msgstr ""
+msgstr "تعديل ارتÙاع الشكل الأسطواني"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Ray Shape Length"
-msgstr ""
+msgstr "تعديل طول الشكل الشعاعي"
#: modules/csg/csg_gizmos.cpp
#, fuzzy
@@ -11284,15 +11330,15 @@ msgstr "تغيير المرتكزات و الهوامش"
#: modules/csg/csg_gizmos.cpp
msgid "Change Torus Outer Radius"
-msgstr ""
+msgstr "تعديل نص٠القطر الخارجي للطارة Torus Outer Radius"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Select the dynamic library for this entry"
-msgstr ""
+msgstr "اختر المكتبة المطاوعة (الديناميكية) لأجل هذا الإدخال"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Select dependencies of the library for this entry"
-msgstr ""
+msgstr "اختر تبعيات المكتبة لأجل هذا الإدخال"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Remove current entry"
@@ -11300,31 +11346,31 @@ msgstr "مسح المدخلة الحالية"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Double click to create a new entry"
-msgstr ""
+msgstr "الضغط المزدوج لإنشاء إدخال جديد"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Platform:"
-msgstr ""
+msgstr "المنصة:"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Platform"
-msgstr ""
+msgstr "منصة"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dynamic Library"
-msgstr ""
+msgstr "مكتبة مطاوعة (ديناميكية)"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Add an architecture entry"
-msgstr ""
+msgstr "إضاÙØ© إدخال معماري architecture entry"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "GDNativeLibrary"
-msgstr ""
+msgstr "مكتبة GDNativeLibrary"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Enabled GDNative Singleton"
-msgstr ""
+msgstr "تمكين نمط البرمجة Singleton ل٠GDNative"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
@@ -11333,15 +11379,15 @@ msgstr "تعطيل دوار التحديث"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
-msgstr ""
+msgstr "مكتبة"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
-msgstr ""
+msgstr "مكتبات: "
#: modules/gdnative/register_types.cpp
msgid "GDNative"
-msgstr ""
+msgstr "GDNative"
#: modules/gdscript/gdscript_functions.cpp
#, fuzzy
@@ -11383,7 +11429,7 @@ msgstr "مجسّد القاموس غير صالح (أصنا٠Ùرعية غير
#: modules/gdscript/gdscript_functions.cpp
msgid "Object can't provide a length."
-msgstr ""
+msgstr "لا يمكن للكائن Object أن يمنح طولاً."
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -11397,23 +11443,23 @@ msgstr "التبويب السابق"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Plane:"
-msgstr ""
+msgstr "المستوى:"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Floor"
-msgstr ""
+msgstr "الطابق التالي"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Previous Floor"
-msgstr ""
+msgstr "الطابق السابق"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Floor:"
-msgstr ""
+msgstr "الطابق:"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Delete Selection"
-msgstr ""
+msgstr "خريطة الشبكة GridMap لحذ٠المÙختار"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -11427,67 +11473,67 @@ msgstr "ÙƒÙÙ„ المÙحدد"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Paint"
-msgstr ""
+msgstr "تلوين (طلاء) خريطة الشبكة GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
-msgstr ""
+msgstr "خريطة الشبكة"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Snap View"
-msgstr ""
+msgstr "مظهر المحاذاة"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Disabled"
-msgstr ""
+msgstr "القص Clip Ù…Ùعطّل"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Above"
-msgstr ""
+msgstr "القص Clip أعلاه"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Below"
-msgstr ""
+msgstr "القص Clip أدناه"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit X Axis"
-msgstr ""
+msgstr "تعديل المحور X"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Y Axis"
-msgstr ""
+msgstr "تعديل المحور Y"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Z Axis"
-msgstr ""
+msgstr "تعديل المحور Z"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Rotate X"
-msgstr ""
+msgstr "تدوير المؤشر X"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Rotate Y"
-msgstr ""
+msgstr "تدوير المؤشر Y"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Rotate Z"
-msgstr ""
+msgstr "تدوير المؤشر Z"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Back Rotate X"
-msgstr ""
+msgstr "تدوير المؤشر عكساً على X"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Back Rotate Y"
-msgstr ""
+msgstr "تدوير المؤشر عكساً على Y"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Back Rotate Z"
-msgstr ""
+msgstr "تدوير المؤشر عكساً على Z"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Clear Rotation"
-msgstr ""
+msgstr "مسح تدوير المؤشر"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -11504,11 +11550,11 @@ msgstr "تعبئة المÙحدد"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Settings"
-msgstr ""
+msgstr "إعدادات خريطة الشبكة"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Pick Distance:"
-msgstr ""
+msgstr "اختر المساÙØ©:"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -11518,18 +11564,20 @@ msgstr "وضع المÙصÙÙŠ:"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
msgstr ""
+"امنح مكتبة السطوح MeshLibrary وصولاً لخريطة الشبكة لتستخدم السطوح المجسمة "
+"الخاصة بها meshes."
#: modules/mono/csharp_script.cpp
msgid "Class name can't be a reserved keyword"
-msgstr ""
+msgstr "لا يمكن أن يكون اسم الص٠كلمة محجوزة"
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
-msgstr ""
+msgstr "نهاية تتبع مكدس الاستثناء الداخلي"
#: modules/recast/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
-msgstr ""
+msgstr "اطبخ شبكة ملاحة"
#: modules/recast/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
@@ -11592,26 +11640,29 @@ msgid ""
"A node yielded without working memory, please read the docs on how to yield "
"properly!"
msgstr ""
+"عقدة Ø­ÙصÙلت بدون ذاكرة Ùعالة,الرجاء قراءة الدليل عن كيÙية تحصيلها بطريقة صحيحة!"
#: modules/visual_script/visual_script.cpp
msgid ""
"Node yielded, but did not return a function state in the first working "
"memory."
-msgstr ""
+msgstr "العقدة Ø­ÙصÙلت,ولكنها لم ترجع حالة الوظيÙØ© ÙÙŠ اول ذاكرة Ùعالة."
#: modules/visual_script/visual_script.cpp
msgid ""
"Return value must be assigned to first element of node working memory! Fix "
"your node please."
msgstr ""
+"يجب أن تكون القيمة المÙرجهة مقرونة بالعنصر الأول من العÙقدة العاملة بالذاكرة! "
+"أصلح العقدة من Ùضلك."
#: modules/visual_script/visual_script.cpp
msgid "Node returned an invalid sequence output: "
-msgstr ""
+msgstr "أرجعت العÙقدة تسلسلاً Ù…Ùخرجاً غير صالح: "
#: modules/visual_script/visual_script.cpp
msgid "Found sequence bit but not the node in the stack, report bug!"
-msgstr ""
+msgstr "عثر على تسلسل بت ولكن ليس العقدة ÙÙŠ المكدس ,ارÙع تقرير عن الخطأ!"
#: modules/visual_script/visual_script.cpp
msgid "Stack overflow with stack depth: "
@@ -11619,23 +11670,23 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Signal Arguments"
-msgstr ""
+msgstr "تعديل معاملات الإشارات"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Argument Type"
-msgstr ""
+msgstr "تعديل نوع المعامل"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Argument name"
-msgstr ""
+msgstr "تعديل اسم المعامل"
#: modules/visual_script/visual_script_editor.cpp
msgid "Set Variable Default Value"
-msgstr ""
+msgstr "تحديد القيمة الاÙتراضية للمتغير"
#: modules/visual_script/visual_script_editor.cpp
msgid "Set Variable Type"
-msgstr ""
+msgstr "تحيد نوع المتغير"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -11659,7 +11710,7 @@ msgstr "إنشاء %s جديد"
#: modules/visual_script/visual_script_editor.cpp
msgid "Variables:"
-msgstr ""
+msgstr "المتغيرات:"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -11677,27 +11728,27 @@ msgstr "أنشئ شكل جديد من لا شئ."
#: modules/visual_script/visual_script_editor.cpp
msgid "Name is not a valid identifier:"
-msgstr ""
+msgstr "هذا الاسم ليس Ù…ÙعرÙاً مميزاً صالحاً:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name already in use by another func/var/signal:"
-msgstr ""
+msgstr "لقد تم استخدام هذا الاسم ÙÙŠ وظيÙØ© برمجية/ Ù…Ùتغيّر/ إشارة، من قبل:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Function"
-msgstr ""
+msgstr "إعادة تسمية الوظيÙØ© البرمجية"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Variable"
-msgstr ""
+msgstr "إعادة تسمية المÙتغيّر"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Signal"
-msgstr ""
+msgstr "إعادة تسمية الإشارة"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Function"
-msgstr ""
+msgstr "إضاÙØ© وظيÙØ© برمجية"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -11706,11 +11757,11 @@ msgstr "مسح النقطة"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Variable"
-msgstr ""
+msgstr "إضاÙØ© Ù…Ùتغيّر"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Signal"
-msgstr ""
+msgstr "إضاÙØ© إشارة"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -11724,65 +11775,72 @@ msgstr "مسح النقطة"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Expression"
-msgstr ""
+msgstr "تعديل التعبير"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
-msgstr ""
+msgstr "إزالة عÙقد البرمجة البصرية VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Duplicate VisualScript Nodes"
-msgstr ""
+msgstr "Ù…ÙضاعÙØ© عÙقد البرمجة البصرية VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"اضغط مطولاً %s لإسقاط جالب Getter. اضغط مطولاً على Shift لإسقاط توقيع عام "
+"generic signature."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"اضغط مطولاً على Ctrl لإسقاط جالب Getter. اضغط مطولاً على Shift لإسقاط توقيع "
+"عام generic signature."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a simple reference to the node."
-msgstr ""
+msgstr "اضغط مطولاً على %s لإسقاط مرجعية بسيطة للعÙقدة."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a simple reference to the node."
-msgstr ""
+msgstr "اضغط مطولاً على Ctrl لإسقاط مرجعية بسيطة للعÙقدة."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a Variable Setter."
-msgstr ""
+msgstr "اضغط مطولاً على %s لإسقاط Ù…Ùحدد المÙتغير Variable Setter."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Variable Setter."
-msgstr ""
+msgstr "اضغط مطولاً على Ctrl لإسقاط Ù…Ùحدد المÙتغيّر Variable Setter."
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Preload Node"
-msgstr ""
+msgstr "إضاÙØ© عÙقدة مسبقة التحميل"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
-msgstr ""
+msgstr "إضاÙØ© عÙقدة (عÙقد) من الشجرة"
#: modules/visual_script/visual_script_editor.cpp
msgid ""
"Can't drop properties because script '%s' is not used in this scene.\n"
"Drop holding 'Shift' to just copy the signature."
msgstr ""
+"لا يمكن إضاÙØ© (إسقاط) الخاصيات لأن النص البرمجي '%s' ليس موجوداً ÙÙŠ هذا "
+"المشهد.\n"
+"للإضاÙØ© (للإسقاط) اضغط مطولاً 'Shift' ببساطة لنسخ التوقيع signature."
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Getter Property"
-msgstr ""
+msgstr "إضاÙية خاصية جالب Getter Property"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Setter Property"
-msgstr ""
+msgstr "إضاÙØ© خاصية Ù…Ùحدد Setter Property"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Base Type"
-msgstr ""
+msgstr "تعديل النوع الأساس"
#: modules/visual_script/visual_script_editor.cpp
msgid "Move Node(s)"
@@ -11790,11 +11848,11 @@ msgstr "تحريك العقدة(عقدات)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Node"
-msgstr ""
+msgstr "إزالة عÙقدة البرمجة البصرية VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Connect Nodes"
-msgstr ""
+msgstr "وصل العÙقد"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -11813,11 +11871,11 @@ msgstr "صلها بالعقدة:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
-msgstr ""
+msgstr "يملك النص البرمجي سلÙاً الوظيÙØ© البرمجية '%s'"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Input Value"
-msgstr ""
+msgstr "تعديل قيمة الإدخال"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -11826,31 +11884,32 @@ msgstr "تعديل العنصر القماشي"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
-msgstr ""
+msgstr "لا يمكن نسخ الوظيÙØ© البرمجية للعÙقدة."
#: modules/visual_script/visual_script_editor.cpp
msgid "Clipboard is empty!"
-msgstr ""
+msgstr "الحاÙظة Ùارغة!"
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste VisualScript Nodes"
-msgstr ""
+msgstr "لصق عÙقد البرمجة البصرية VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't create function with a function node."
-msgstr ""
+msgstr "لا يمكن إنشاء وظيÙØ© برمجية من دون عÙقدة وظيÙية."
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't create function of nodes from nodes of multiple functions."
msgstr ""
+"لا يمكن إنشاء وظيÙØ© برمجية لعÙقد من عÙقد تابعة للعديد من الوظائ٠البرمجية."
#: modules/visual_script/visual_script_editor.cpp
msgid "Select at least one node with sequence port."
-msgstr ""
+msgstr "اختر على الأقل واحدة من العقد التي تملك منÙØ° تسلسل sequence port."
#: modules/visual_script/visual_script_editor.cpp
msgid "Try to only have one sequence input in selection."
-msgstr ""
+msgstr "حاول أن يكون لديك تسلسل إدخال واحد من المÙختار."
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -11863,19 +11922,19 @@ msgstr "مسح المهمة"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Variable"
-msgstr ""
+msgstr "إزالة المÙتغيّر"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Variable:"
-msgstr ""
+msgstr "تحرير المÙتغيّر:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Signal"
-msgstr ""
+msgstr "إزالة الإشارة"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Signal:"
-msgstr ""
+msgstr "تحرير الإشارة:"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -11908,23 +11967,23 @@ msgstr "الإعدادات:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit its graph."
-msgstr ""
+msgstr "اختر أو أنشئ وظيÙØ© برمجية لتحرير الرسم الخاص بها (graph)."
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
-msgstr ""
+msgstr "حذ٠المÙختار"
#: modules/visual_script/visual_script_editor.cpp
msgid "Find Node Type"
-msgstr ""
+msgstr "إيجاد نوع العÙقدة"
#: modules/visual_script/visual_script_editor.cpp
msgid "Copy Nodes"
-msgstr ""
+msgstr "نسخ العÙقد"
#: modules/visual_script/visual_script_editor.cpp
msgid "Cut Nodes"
-msgstr ""
+msgstr "قص العÙقد"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -11943,47 +12002,47 @@ msgstr "الأعضاء"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
-msgstr ""
+msgstr "نوع الإدخال غير متوقع: "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid"
-msgstr ""
+msgstr "أصبح المÙكرر غير صالحاً"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid: "
-msgstr ""
+msgstr "أصبح المÙكرر غير صالحاً: "
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name."
-msgstr ""
+msgstr "اسم خاصية المؤشر index property غير صالح."
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
-msgstr ""
+msgstr "الكائن الأساس ليس بعÙقدة!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Path does not lead Node!"
-msgstr ""
+msgstr "لا يؤدي المسار للوصول لعÙقدة!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr ""
+msgstr "اسم خاصية المؤشر \"الÙهرس\" '%s' ÙÙŠ العÙقدة %s غير صالح."
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
-msgstr ""
+msgstr ": معامل النوع غير صحيح: "
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid arguments: "
-msgstr ""
+msgstr ": معاملات غير صالحة: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableGet not found in script: "
-msgstr ""
+msgstr "لم يتم إيجاد VariableGet ÙÙŠ النص البرمجي: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableSet not found in script: "
-msgstr ""
+msgstr "لم يتم إيجاد (Ù…Ùحدد المÙتغير) VariableSet ÙÙŠ النص البرمجي: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
@@ -11994,6 +12053,8 @@ msgid ""
"Invalid return value from _step(), must be integer (seq out), or string "
"(error)."
msgstr ""
+"القيمة المÙرجعة من _step() غير صالحة، ينبغي أن تكون رقماً (تسلسل)ØŒ أو نصاً "
+"(خطأ)."
#: modules/visual_script/visual_script_property_selector.cpp
#, fuzzy
@@ -12053,6 +12114,13 @@ msgstr ""
"الموضوعة سلÙاً."
#: platform/android/export/export.cpp
+#, fuzzy
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"Ù…Ùنقح أخطاء Ù…Ùتاح المتجر keystore غير Ù…Ùهيئ ÙÙŠ إعدادت المÙحرر أو ÙÙŠ الإعدادات "
+"الموضوعة سلÙاً."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"البÙنى المخصوصة تتطلب مساراً لحزمة تطوير Android SDK صالحة ÙÙŠ إعدادات المÙحرر."
@@ -12079,6 +12147,32 @@ msgstr "اسم رÙزمة غير صالح:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12237,6 +12331,8 @@ msgid ""
"Only one visible CanvasModulate is allowed per scene (or set of instanced "
"scenes). The first created one will work, while the rest will be ignored."
msgstr ""
+"ÙŠÙسمح بواحد Ùقط من CanvasModulate (Ù…Ùعدلات اللوحة) ÙÙŠ ÙƒÙÙ„ مشهد (أو مجموعة "
+"المشاهد المÙنمذجة). سيعمل أول واحد Ùقط، بينما الباقي سيتم تجاهلهم."
#: scene/2d/collision_object_2d.cpp
msgid ""
@@ -12244,6 +12340,11 @@ msgid ""
"Consider adding a CollisionShape2D or CollisionPolygon2D as a child to "
"define its shape."
msgstr ""
+"لا تملك هذه العÙقدة شكلاً، بالتالي إنها غير قادرة على التصادم أو التÙاعل مع "
+"الكائنات الأخرى.\n"
+"ضع ÙÙŠ الحسبان إضاÙØ© عÙقدة بنت كالشكل التصادمي ثنائي الأبعاد CollisionShape2D "
+"أو الشكل التصادمي المÙضلع ثنائي الأبعاد CollisionPolygon2D لتحديد الشكل "
+"الخاصة بها."
#: scene/2d/collision_polygon_2d.cpp
msgid ""
@@ -12251,6 +12352,11 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
+"يعمل Ù…Ùضلع التصادم ثنائي الأبعاد CollisionPolygon2D Ùقط كشكل تصادمي لكل العÙقد "
+"المشتقة من الكائن التصادمي ثنائي الأبعاد CollisionObject2D. من Ùضلك استخدمه "
+"Ùقط لكل أبناء الحيز ثنائي الأبعاد Area2DØŒ الجسم السكوني ثنائي الأبعاد "
+"StaticBody2D و الجسم الجامد ثنائي الأبعاد RigidBody2D، والجسم المتحرك ثنائي "
+"الأبعاد KinematicBody2D إلخ.. لكي تمنح كل منهم شكلاً."
#: scene/2d/collision_polygon_2d.cpp
msgid "An empty CollisionPolygon2D has no effect on collision."
@@ -12262,6 +12368,11 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
+"يعمل Ù…Ùضلع التصادم ثنائي الأبعاد CollisionPolygon2D Ùقط كشكل تصادمي لكل العÙقد "
+"المشتقة من الكائن التصادمي ثنائي الأبعاد CollisionObject2D. من Ùضلك استخدمه "
+"Ùقط لكل أبناء الحيز ثنائي الأبعاد Area2DØŒ الجسم السكوني ثنائي الأبعاد "
+"StaticBody2D و الجسم الجامد ثنائي الأبعاد RigidBody2D، والجسم المتحرك ثنائي "
+"الأبعاد KinematicBody2D إلخ.. لكي تمنح كل منهم شكلاً."
#: scene/2d/collision_shape_2d.cpp
msgid ""
@@ -12276,12 +12387,14 @@ msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
+"تتطلب الرسوم المتحركة CPUParticles2D استخدام CanvasItemMaterial مع تمكين "
+"\"الرسوم المتحركة للجزيئات\"."
#: scene/2d/light_2d.cpp
msgid ""
"A texture with the shape of the light must be supplied to the \"Texture\" "
"property."
-msgstr ""
+msgstr "يجب توريد نقش بهيئة الضوء لخاصية \"النقش\"."
#: scene/2d/light_occluder_2d.cpp
msgid ""
@@ -12748,6 +12861,21 @@ msgstr "يمكن تعيين المتغيرات Ùقط ÙÙŠ الذروة ."
msgid "Constants cannot be modified."
msgstr "لا يمكن تعديل الثوابت."
+#~ msgid "Not in resource path."
+#~ msgstr "ليس ÙÙŠ مسار الموارد."
+
+#~ msgid "Revert"
+#~ msgstr "إرجاع"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "هذا الÙعل لا يمكن إرجاعة. إرجاع علي أية حال؟"
+
+#~ msgid "Revert Scene"
+#~ msgstr "إعادة المشهد"
+
+#~ msgid "Clear Script"
+#~ msgstr "إخلاء الكود"
+
#~ msgid "Issue Tracker"
#~ msgstr "متتبع الأخطاء"
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index c9be0c2c3f..f08f2b1362 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -825,7 +825,6 @@ msgstr "Сигналът не може да бъде Ñвързан"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1426,17 +1425,9 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Ðеправилен път."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Ðе е в Ð¿ÑŠÑ‚Ñ Ð½Ð° реÑурÑите."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2356,11 +2347,14 @@ msgid "Can't reload a scene that was never saved."
msgstr "Сцена, коÑто никога не е била запазвана, не може да бъде презаредена."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Запазване на Ñцената"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2626,10 +2620,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3237,6 +3227,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3822,6 +3816,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Запазване..."
@@ -6763,12 +6761,12 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Ред"
+msgid "[Ignore]"
+msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
+msgid "Line"
+msgstr "Ред"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7246,6 +7244,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10245,8 +10252,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Премахване на Ñкрипта"
+#, fuzzy
+msgid "Detach Script"
+msgstr "Закачане на Ñкрипт"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10403,6 +10411,13 @@ msgid "Open Documentation"
msgstr "ОтварÑне на документациÑта"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10453,11 +10468,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10584,6 +10599,10 @@ msgid "A directory with the same name exists."
msgstr "Вече ÑъщеÑтвува файл или папка Ñ Ñ‚Ð¾Ð²Ð° име."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "ТрÑбва да Ñе използва правилно разширение."
@@ -10630,6 +10649,10 @@ msgid "File exists, it will be reused."
msgstr "Файлът ÑъщеÑтвува. ИÑкате ли да го презапишете?"
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Ðеправилен път."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid class name."
msgstr "невалидно име на Група."
@@ -11711,6 +11734,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11735,6 +11762,32 @@ msgstr "невалидно име на Група."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12427,6 +12480,12 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Not in resource path."
+#~ msgstr "Ðе е в Ð¿ÑŠÑ‚Ñ Ð½Ð° реÑурÑите."
+
+#~ msgid "Clear Script"
+#~ msgstr "Премахване на Ñкрипта"
+
#~ msgid "Replaced %d occurrence(s)."
#~ msgstr "Заменени ÑъвпадениÑ: %d ."
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index aaa46da54d..3680e4ce6c 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -897,7 +897,6 @@ msgstr "সংযোজক সংকেত/সিগনà§à¦¯à¦¾à¦²:"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1546,18 +1545,9 @@ msgstr "সকà§à¦°à¦¿à¦¯à¦¼ করà§à¦¨"
msgid "Rearrange Autoloads"
msgstr "Autoload সমূহ পà§à¦¨à¦°à§à¦¬à¦¿à¦¨à§à¦¯à¦¸à§à¦¤ করà§à¦¨"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "অকারà§à¦¯à¦•à¦° পথ।"
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "ফাইলটি বিদà§à¦¯à¦®à¦¾à¦¨ নয়।"
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "রিসোরà§à¦¸à§‡à¦° পথে নয়।"
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2591,12 +2581,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "পূরà§à¦¬à§‡ কখনোই সংরকà§à¦·à¦¿à¦¤ হয়নি à¦à¦®à¦¨ দৃশà§à¦¯ পà§à¦¨à¦°à¦¾à§Ÿ-লোড (রিলোড) করা অসমà§à¦­à¦¬à¥¤"
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "পà§à¦°à¦¤à§à¦¯à¦¾à¦¬à¦°à§à¦¤à¦¨ করà§à¦¨"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "দৃশà§à¦¯ সংরকà§à¦·à¦£ করà§à¦¨"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "à¦à¦‡ কাজটি অসমà§à¦ªà¦¾à¦¦à¦¿à¦¤ করা সমà§à¦­à¦¬ হবে না। তবà§à¦“ পà§à¦°à¦¤à§à¦¯à¦¾à¦¬à¦°à§à¦¤à¦¨ করবেন?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2900,10 +2893,6 @@ msgid "Redo"
msgstr "পà§à¦¨à¦°à¦¾à¦¯à¦¼ করà§à¦¨"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "দৃশà§à¦¯ পà§à¦°à¦¤à§à¦¯à¦¾à¦¬à§ƒà¦¤à§à¦¤ করà§à¦¨"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "পà§à¦°à¦•à¦²à§à¦ª অথবা দৃশà§à¦¯à§‡-বà§à¦¯à¦¾à¦ªà§€ বিবিধ সরঞà§à¦œà¦¾à¦®-সমূহ।"
@@ -3584,6 +3573,13 @@ msgstr "সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ চালানো সমà§à¦­à¦¬ হয়ন
msgid "Did you forget the '_run' method?"
msgstr "আপনি কি '_run' মেথডটি দিতে ভà§à¦²à§‡à¦›à§‡à¦¨?"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"গেটার (Getter) তৈরি করতে/নামাতে কনà§à¦Ÿà§à¦°à§‹à¦² কী (Ctrl) চেপে রাখà§à¦¨à¥¤ জেনেরিক সিগনেচার "
+"(generic signature) তৈরি করতে/নামাতে শিফট কী (Shift) চেপে রাখà§à¦¨à¥¤"
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° জনà§à¦¯ নোড(সমূহ) নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨"
@@ -4265,6 +4261,10 @@ msgid "Error running post-import script:"
msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿ-পরবরà§à¦¤à§€ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ চালানোয় সমসà§à¦¯à¦¾ হয়েছে:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "সংরকà§à¦·à¦¿à¦¤ হচà§à¦›à§‡..."
@@ -7429,15 +7429,15 @@ msgid ""
msgstr "'%s' à¦à¦° সাথে '%s' সংযà§à¦•à§à¦¤ করà§à¦¨"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "লাইন:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "ফাংশনে যান..."
@@ -7953,6 +7953,15 @@ msgid "XForm Dialog"
msgstr "XForm à¦à¦° সংলাপ"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Snap Nodes To Floor"
msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª মোড:"
@@ -11164,8 +11173,9 @@ msgid "Instance Child Scene"
msgstr "শীষà§à¦¯ নোড ইনà§à¦¸à¦Ÿà§à¦¯à¦¾à¦¨à§à¦¸ করà§à¦¨"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ পরিসà§à¦•à¦¾à¦° করà§à¦¨"
+#, fuzzy
+msgid "Detach Script"
+msgstr "সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ সংযà§à¦•à§à¦¤ করà§à¦¨"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -11337,6 +11347,13 @@ msgid "Open Documentation"
msgstr "রেফারেনà§à¦¸à§‡à¦° ডকà§à¦®à§‡à¦¨à§à¦Ÿà§‡à¦¶à¦¨à§‡ খà§à¦à¦œà§à¦¨à¥¤"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "শীষà§à¦¯ নোড তৈরি করà§à¦¨"
@@ -11390,11 +11407,13 @@ msgstr ""
"উতà§à¦¤à¦°à¦¾à¦§à¦¿à¦•à¦¾à¦°à§€ দৃশà§à¦¯ তৈরি করে।"
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "à¦à¦•à¦Ÿà¦¿ নতà§à¦¨ বা বিদà§à¦¯à¦®à¦¾à¦¨ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ নোডে সংযà§à¦•à§à¦¤ করà§à¦¨à¥¤"
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ নোড হতে à¦à¦•à¦Ÿà¦¿ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ পরিসà§à¦•à¦¾à¦° করà§à¦¨à¥¤"
#: editor/scene_tree_dock.cpp
@@ -11542,6 +11561,10 @@ msgid "A directory with the same name exists."
msgstr "à¦à¦•à¦‡ নামের ডিরেকà§à¦Ÿà¦°à¦¿ বিদà§à¦¯à¦®à¦¾à¦¨"
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "ফাইলটি বিদà§à¦¯à¦®à¦¾à¦¨ নয়।"
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "অগà§à¦°à¦¹à¦£à¦¯à§‹à¦—à§à¦¯ à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨"
@@ -11591,6 +11614,11 @@ msgstr "à¦à¦•à¦‡ নামের ফাইল উপসà§à¦¥à¦¿à¦¤, তা ম
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "অকারà§à¦¯à¦•à¦° পথ।"
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "অগà§à¦°à¦¹à¦£à¦¯à§‹à¦—à§à¦¯ কà§à¦²à¦¾à¦¸ নাম"
@@ -12743,6 +12771,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -12767,6 +12799,32 @@ msgstr "অগà§à¦°à¦¹à¦£à¦¯à§‹à¦—à§à¦¯ কà§à¦²à¦¾à¦¸ নাম"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -13489,6 +13547,21 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Not in resource path."
+#~ msgstr "রিসোরà§à¦¸à§‡à¦° পথে নয়।"
+
+#~ msgid "Revert"
+#~ msgstr "পà§à¦°à¦¤à§à¦¯à¦¾à¦¬à¦°à§à¦¤à¦¨ করà§à¦¨"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "à¦à¦‡ কাজটি অসমà§à¦ªà¦¾à¦¦à¦¿à¦¤ করা সমà§à¦­à¦¬ হবে না। তবà§à¦“ পà§à¦°à¦¤à§à¦¯à¦¾à¦¬à¦°à§à¦¤à¦¨ করবেন?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "দৃশà§à¦¯ পà§à¦°à¦¤à§à¦¯à¦¾à¦¬à§ƒà¦¤à§à¦¤ করà§à¦¨"
+
+#~ msgid "Clear Script"
+#~ msgstr "সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ পরিসà§à¦•à¦¾à¦° করà§à¦¨"
+
#~ msgid "Issue Tracker"
#~ msgstr "ইসà§à¦¯à§ টà§à¦°à§à¦¯à¦¾à¦•à¦¾à¦°"
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index a1577b5a15..1640367701 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -16,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-03-11 12:20+0000\n"
-"Last-Translator: Alex Mancha <codingstain@gmail.com>\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
+"Last-Translator: roger <616steam@gmail.com>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/"
"godot/ca/>\n"
"Language: ca\n"
@@ -25,7 +25,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.0-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -567,7 +567,7 @@ msgstr "Escala amb el Cursor"
#: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp
msgid "Duplicate Selection"
-msgstr "Duplica la Selecció"
+msgstr "Duplicar la Selecció"
#: editor/animation_track_editor.cpp
msgid "Duplicate Transposed"
@@ -575,7 +575,7 @@ msgstr "Duplica'l Transposat"
#: editor/animation_track_editor.cpp
msgid "Delete Selection"
-msgstr "Elimina la Selecció"
+msgstr "Suprimir la Selecció"
#: editor/animation_track_editor.cpp
msgid "Go to Next Step"
@@ -656,7 +656,7 @@ msgstr "Seleccioneu les Pistes a Copiar"
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Copy"
-msgstr "Copia"
+msgstr "Copiar"
#: editor/animation_track_editor.cpp
msgid "Select All/None"
@@ -688,7 +688,7 @@ msgstr "Modifica el Valor de la Taula"
#: editor/code_editor.cpp
msgid "Go to Line"
-msgstr "Vés a la Línia"
+msgstr "Anar a la Línia"
#: editor/code_editor.cpp
msgid "Line Number:"
@@ -715,8 +715,9 @@ msgid "Whole Words"
msgstr "Paraules senceres"
#: editor/code_editor.cpp editor/rename_dialog.cpp
+#, fuzzy
msgid "Replace"
-msgstr "Reemplaça"
+msgstr "Reemplaçar"
#: editor/code_editor.cpp
msgid "Replace All"
@@ -847,7 +848,6 @@ msgstr "No es pot connectar el senyal"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1328,7 +1328,7 @@ msgstr "El Bus Principal no es pot pas eliminar!"
#: editor/editor_audio_buses.cpp
msgid "Delete Audio Bus"
-msgstr "Elimina Bus d'Àudio"
+msgstr "Elimina Bus d'Àudio"
#: editor/editor_audio_buses.cpp
msgid "Duplicate Audio Bus"
@@ -1460,17 +1460,9 @@ msgstr "Activa"
msgid "Rearrange Autoloads"
msgstr "Reorganitza AutoCàrregues"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Camí no vàlid."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "El Fitxer no existeix."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Fora del camí dels recursos."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1499,7 +1491,7 @@ msgstr "Singleton"
#: editor/editor_data.cpp editor/inspector_dock.cpp
msgid "Paste Params"
-msgstr "Enganxa els Paràmetres"
+msgstr "Enganxa els Paràmetres"
#: editor/editor_data.cpp
msgid "Updating Scene"
@@ -1984,6 +1976,7 @@ msgid "Constants"
msgstr "Constants"
#: editor/editor_help.cpp
+#, fuzzy
msgid "Property Descriptions"
msgstr "Descripcions de la Propietat"
@@ -2000,6 +1993,7 @@ msgstr ""
"$color][url=$url] totaportant-ne una[/url][/color]!"
#: editor/editor_help.cpp
+#, fuzzy
msgid "Method Descriptions"
msgstr "Descripcions del Mètode"
@@ -2008,7 +2002,7 @@ msgid ""
"There is currently no description for this method. Please help us by [color="
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"Aquest mètode no disposa de cap descripció. Podeu contribuir [color=$color]"
+"Aquest mètode no disposa de cap descripció. Podeu contribuir [color=$color]"
"[url=$url] tot aportant-ne una[/url][/color]!"
#: editor/editor_help_search.cpp editor/editor_node.cpp
@@ -2077,7 +2071,6 @@ msgid "Property"
msgstr "Propietat"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Theme Property"
msgstr "Propietats del tema"
@@ -2430,12 +2423,19 @@ msgid "Can't reload a scene that was never saved."
msgstr "No es pot recarregar una escena mai desada."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Reverteix"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Desa Escena"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Aquesta acció no es pot desfer. N'esteu segur?"
+#, fuzzy
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
+"L'escena actual té canvis sense desar.\n"
+"Voleu torna a carregar l'escena desada de totes maneres? Aquesta acció no es "
+"pot desfer."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2484,14 +2484,13 @@ msgid "Close Scene"
msgstr "Tanca l'Escena"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reopen Closed Scene"
msgstr "Reobrir l'escena tancada"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
msgstr ""
-"No es pot habilitar el complement a: '%s' ha fallat l'anàlisi de la "
+"No es pot habilitar el complement a: '%s' ha fallat l'anàlisi de la "
"configuració."
#: editor/editor_node.cpp
@@ -2530,8 +2529,8 @@ msgid ""
"Scene '%s' was automatically imported, so it can't be modified.\n"
"To make changes to it, a new inherited scene can be created."
msgstr ""
-"En ser importada automàticament, l'escena '%s' no es pot modificar. Per fer-"
-"hi canvis, creeu una nova escena heretada."
+"En ser importada automàticament, l'escena '%s' no es pot modificar. \n"
+"Per fer-hi canvis, creeu una nova escena heretada."
#: editor/editor_node.cpp
msgid ""
@@ -2607,7 +2606,6 @@ msgid "Close Tab"
msgstr "Tanca la Pestanya"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Undo Close Tab"
msgstr "Desfer Tancament de Pestanya"
@@ -2730,10 +2728,6 @@ msgid "Redo"
msgstr "Refés"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Reverteix Escena"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Eines vàries o d'escena."
@@ -2751,7 +2745,6 @@ msgid "Version Control"
msgstr "Control de Versions"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Set Up Version Control"
msgstr "Configurar Control de Versions"
@@ -2764,9 +2757,8 @@ msgid "Export..."
msgstr "Exportar..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install Android Build Template..."
-msgstr "Instal·lar plantilla de compilació d'Android"
+msgstr "Instal·lar Plantilla de Compilació d'Android..."
#: editor/editor_node.cpp
msgid "Open Project Data Folder"
@@ -2777,9 +2769,8 @@ msgid "Tools"
msgstr "Eines"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Orphan Resource Explorer..."
-msgstr "Navegador de Recursos Orfes"
+msgstr "Navegador de Recursos Orfes..."
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -2921,14 +2912,12 @@ msgid "Open Editor Settings Folder"
msgstr "Obre el directori de Configuració de l'Editor"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Editor Features..."
-msgstr "Administrar Característiques de l'Editor"
+msgstr "Administrar Característiques de l'Editor..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Export Templates..."
-msgstr "Gestor de Plantilles d'Exportació"
+msgstr "Administrar Plantilles d'Exportació..."
#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
msgid "Help"
@@ -2958,8 +2947,9 @@ msgid "Report a Bug"
msgstr "ReImportar"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Send Docs Feedback"
-msgstr ""
+msgstr "Enviar suggeriments sobre la documentació"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
@@ -3219,7 +3209,7 @@ msgstr "% del Fotograma"
#: editor/editor_profiler.cpp
msgid "Physics Frame %"
-msgstr "Fotograma de Física %"
+msgstr "Fotograma de Física %"
#: editor/editor_profiler.cpp
msgid "Inclusive"
@@ -3294,7 +3284,7 @@ msgid ""
msgstr ""
"No es pot crear una ViewportTexture en aquest recurs ja que no s'ha definit "
"com local per a l'escena.\n"
-"Activeu la propietat \"local a l'escena\" del recurs i també en tots els "
+"Activeu la propietat \"local a l'escena\" del recurs i també en tots els "
"recurs intermitjos que el continguin fins a un node."
#: editor/editor_properties.cpp editor/property_editor.cpp
@@ -3369,7 +3359,7 @@ msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the export menu."
msgstr ""
-"No s'ha trobat cap patró d'exportació executable per aquesta plataforma. \n"
+"No s'ha trobat cap patró d'exportació executable per aquesta plataforma. \n"
"Afegiu un patró predeterminat en el menú d'exportació."
#: editor/editor_run_script.cpp
@@ -3396,6 +3386,13 @@ msgstr "No s'ha pogut executar l'Script:"
msgid "Did you forget the '_run' method?"
msgstr "Podria mancar el mètode '_run'?"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Retén Ctrl per dipositar un mètode Accessor (Getter). Retén Maj per "
+"dipositar una firma genèrica."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Selecciona Node(s) per Importar"
@@ -3538,13 +3535,12 @@ msgid ""
"Templates installation failed.\n"
"The problematic templates archives can be found at '%s'."
msgstr ""
-"No s'han pogut instal·lar les plantilles. Els fitxers problemàtics es troben "
-"a '%s'."
+"No s'han pogut instal·lar les plantilles. \n"
+"Les plantilles problemàtics es troben a '%s'."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error requesting URL:"
-msgstr "Error en la sol·licitud de l'url: "
+msgstr "Error en sol·licitar l'URL:"
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror..."
@@ -3739,9 +3735,8 @@ msgid "Move To..."
msgstr "Mou cap a..."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Scene..."
-msgstr "Nova Escena"
+msgstr "Nova Escena..."
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "New Script..."
@@ -3792,7 +3787,9 @@ msgstr "Cerca Fitxers"
msgid ""
"Scanning Files,\n"
"Please Wait..."
-msgstr "Analitzant Fitxers..."
+msgstr ""
+"Analitzant Fitxers,\n"
+"Si Us Plau Espereu..."
#: editor/filesystem_dock.cpp
msgid "Move"
@@ -3931,7 +3928,7 @@ msgstr "Gestiona Grups"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Single Scene"
-msgstr "Importar com a Única Escena"
+msgstr "Importar com a Única Escena"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Animations"
@@ -4003,6 +4000,10 @@ msgid "Error running post-import script:"
msgstr "Error en l'execució de l'Script de post-importació:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Desant..."
@@ -4771,9 +4772,8 @@ msgid "Transition: "
msgstr "Transició: "
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Play Mode:"
-msgstr "Mode d'Escombratge lateral"
+msgstr "Mode de Reproducció:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -4836,7 +4836,7 @@ msgstr "Mescla 1:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "X-Fade Time (s):"
-msgstr "Durada de la fosa (s):"
+msgstr "Durada de la fosa (s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Current:"
@@ -4970,12 +4970,12 @@ msgstr "Bucle de redirecció."
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
msgid "Request failed, timeout"
-msgstr "Ha fallat la sol·licitud, codi de devolució:"
+msgstr "La sol·licitud ha fallat, s'ha esgotat el temps d'espera"
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
msgid "Timeout."
-msgstr "Temps"
+msgstr "Temps esgotat."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
@@ -5348,9 +5348,8 @@ msgid "Full Rect"
msgstr "Rect. Complet"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Keep Ratio"
-msgstr "Relació d'Escala:"
+msgstr "Mantenir Proporcions"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Anchors only"
@@ -5371,7 +5370,7 @@ msgid ""
"Overrides game camera with editor viewport camera."
msgstr ""
"Substitueix la càmera del joc.\n"
-"Substitueix la càmera del joc per la la càmera de l'editor."
+"Substitueix la càmera del joc per la càmera de l'editor."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5499,9 +5498,8 @@ msgid "Pan Mode"
msgstr "Mode d'Escombratge lateral"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Ruler Mode"
-msgstr "Mode d'Execució:"
+msgstr "Mode Regla"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -5700,9 +5698,8 @@ msgid "Auto Insert Key"
msgstr "Inserir Clau Automàticament"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Animation Key and Pose Options"
-msgstr "S'ha insertit una Clau d'Animació."
+msgstr "Opcions de Clau d'Animació i Pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
@@ -5760,7 +5757,7 @@ msgid ""
"Drag & drop + Shift : Add node as sibling\n"
"Drag & drop + Alt : Change node type"
msgstr ""
-"Arrossegar i deixar anar + Maj: Afegeix un node com a germà\n"
+"Arrossegar i deixar anar + Maj: Afegeix un node com a germà\n"
"Arrossegar i deixar anar + Maj: Canvia el tipus del node"
#: editor/plugins/collision_polygon_editor_plugin.cpp
@@ -5958,7 +5955,7 @@ msgstr "La malla és buida!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
msgid "Couldn't create a Trimesh collision shape."
-msgstr "Crea una Col·lisió entre malles de triangles germanes"
+msgstr "Crea una Col·lisió entre malles de triangles germanes."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
@@ -5974,12 +5971,15 @@ msgid "Create Trimesh Static Shape"
msgstr "Crea un forma amb una malla de triangles"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid "Can't create a single convex collision shape for the scene root."
msgstr ""
+"No es pot crear una sola forma de col·lisió convexa per a l'arrel de "
+"l'escena."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Couldn't create a single convex collision shape."
-msgstr "No s'ha pogut crear una capa de col·lisió convexa."
+msgstr "No s'ha pogut crear una forma de col·lisió convexa."
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
@@ -6132,12 +6132,14 @@ msgstr "Elimina l'element %d?"
msgid ""
"Update from existing scene?:\n"
"%s"
-msgstr "Actualitza des de l'Escena"
+msgstr ""
+"Actualitzar des d'una 'Escena existent?:\n"
+"%s"
#: editor/plugins/mesh_library_editor_plugin.cpp
#, fuzzy
msgid "Mesh Library"
-msgstr "Biblioteca de Models (MeshLibrary)..."
+msgstr "Biblioteca de Models (MeshLibrary)"
#: editor/plugins/mesh_library_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
@@ -6381,7 +6383,7 @@ msgstr "Selecciona Punts"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Shift+Drag: Select Control Points"
-msgstr "Maj.+ Arrossegar: Selecciona Punts de Control"
+msgstr "Maj.+ Arrossegar: Selecciona Punts de Control"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -6656,7 +6658,7 @@ msgstr "Configurar Quadrícula:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Offset X:"
-msgstr "Desplaçament X de la quadrícula:"
+msgstr "Desplaçament X de la quadrícula:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Offset Y:"
@@ -7028,12 +7030,13 @@ msgstr ""
"'%s'."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Línia"
+#, fuzzy
+msgid "[Ignore]"
+msgstr "(ignorar)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ignorar)"
+msgid "Line"
+msgstr "Línia"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7089,9 +7092,8 @@ msgid "Bookmarks"
msgstr "Marcadors"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Breakpoints"
-msgstr "Crea punts."
+msgstr "Punts d’interrupció"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
@@ -7125,7 +7127,7 @@ msgstr "(Des)Plega la línia"
#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
-msgstr "Plega totes les Línies"
+msgstr "Plega totes les Línies"
#: editor/plugins/script_text_editor.cpp
msgid "Unfold All Lines"
@@ -7245,7 +7247,7 @@ msgstr "Esquelet2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
msgid "Make Rest Pose (From Bones)"
-msgstr "Crear Pose de Repòs (A partir dels Ossos)"
+msgstr "Crear Pose de Repòs (A partir dels Ossos)"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
@@ -7311,7 +7313,7 @@ msgstr "Rotació de %s graus."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Keying is disabled (no key inserted)."
-msgstr "l'Edició de Claus està inhabilitada (no s'ha inserit cap Clau)."
+msgstr "l'Edició de Claus està inhabilitada (no s'ha inserit cap Clau)."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Animation Key Inserted."
@@ -7526,6 +7528,15 @@ msgid "XForm Dialog"
msgstr "Diàleg XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Ajustar Nodes al Terra"
@@ -7540,9 +7551,9 @@ msgid ""
"Alt+Drag: Move\n"
"Alt+RMB: Depth list selection"
msgstr ""
-"Arrossegar: Gira\n"
+"Arrossegar: Gira\n"
"Alt+Arrossegar: Mou\n"
-"Alt+Clic Dret: Selecció de llista de profunditat"
+"Alt+Clic Dret: Selecció de llista de profunditat"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
@@ -7649,9 +7660,8 @@ msgstr "Mostra la Graella"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Settings..."
-msgstr "Configuració"
+msgstr "Configuració..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
@@ -7842,9 +7852,8 @@ msgid "Add Frame"
msgstr "Afegeix Fotograma"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Unable to load images"
-msgstr "No s'ha pogut carregar el recurs."
+msgstr "No s'han pogut carregar les imatges"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
@@ -8208,7 +8217,7 @@ msgstr "Habilitar Prioritat"
#: editor/plugins/tile_map_editor_plugin.cpp
#, fuzzy
msgid "Filter tiles"
-msgstr "Filtrat de Fitxers..."
+msgstr "Filtrat de Fitxers"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Give a TileSet resource to this TileMap to use its tiles."
@@ -8254,12 +8263,12 @@ msgstr "Restablir Transformació"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
msgid "Add Texture(s) to TileSet."
-msgstr "Afegeix Nodes des d'Arbre"
+msgstr "Afegeix Nodes des d'Arbre."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
msgid "Remove selected Texture from TileSet."
-msgstr "Elimina l'entrada actual"
+msgstr "Elimineu la textura seleccionada de TileSet."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
@@ -8608,9 +8617,8 @@ msgid "TileSet"
msgstr "Conjunt de rajoles"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "No VCS addons are available."
-msgstr "Nom del pare del node, si està disponible"
+msgstr "No hi ha addons VCS disponibles."
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Error"
@@ -8649,9 +8657,8 @@ msgid "Staging area"
msgstr "Zona de posada en escena"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Detect new changes"
-msgstr "Crear un nou rectangle."
+msgstr "Detectar nous canvis"
#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
@@ -8727,9 +8734,8 @@ msgid "Add Output"
msgstr "Afegeix una Entrada"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar"
-msgstr "Escala:"
+msgstr "Escalar"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector"
@@ -8850,7 +8856,7 @@ msgstr "Crear node Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Color function."
-msgstr "Vés a la Funció"
+msgstr "Funció color."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color operator."
@@ -8871,7 +8877,7 @@ msgstr "Converteix el vector RGB en un equivalent de HSV."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Sepia function."
-msgstr "Reanomena Funció"
+msgstr "Funció sèpia."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Burn operator."
@@ -8919,7 +8925,7 @@ msgstr "Constant de color."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Color uniform."
-msgstr "Transforma"
+msgstr "Color uniforme."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9004,9 +9010,8 @@ msgstr ""
"escalar."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Boolean constant."
-msgstr "Modificar una constant vectorial"
+msgstr "Constant booleana."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Boolean uniform."
@@ -9052,14 +9057,12 @@ msgid "'%s' input parameter for vertex and fragment shader mode."
msgstr "paràmetre d'entrada 'alpha' per modes shader vèrtex i el fragment."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar function."
-msgstr "Modifica una Funció Escalar"
+msgstr "Funció escalar."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar operator."
-msgstr "Modifica un operador escalar"
+msgstr "Operador escalar."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "E constant (2.718282). Represents the base of the natural logarithm."
@@ -9100,7 +9103,7 @@ msgstr "Retorna el valor absolut del paràmetre."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-cosine of the parameter."
-msgstr "Retorna el l'arc cosinus del paràmetre."
+msgstr "Retorna el l'arc cosinus del paràmetre."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9302,14 +9305,13 @@ msgid "Subtracts scalar from scalar."
msgstr "Resta escalar d'escalar."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar constant."
-msgstr "Modificar una constant escalar"
+msgstr "Constant escalar."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Scalar uniform."
-msgstr "Modificar un Uniforme Escalar"
+msgstr "Escalar uniforme."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9324,7 +9326,7 @@ msgstr "Realitza la cerca de textures."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Cubic texture uniform lookup."
-msgstr "Modifica un Uniforme Textura"
+msgstr "Modifica un Uniforme Textura."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9405,7 +9407,7 @@ msgstr "Funció vector."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vector operator."
-msgstr "Modifica un operador vectorial"
+msgstr "Operador de vector."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Composes vector from three scalars."
@@ -9556,16 +9558,15 @@ msgid "Vector uniform."
msgstr "Modifica un Uniforme Vectorial"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid ""
"Custom Godot Shader Language expression, with custom amount of input and "
"output ports. This is a direct injection of code into the vertex/fragment/"
"light function, do not use it to write the function declarations inside."
msgstr ""
"Expressió personalitzada del llenguatge de Shader de Godot, amb una "
-"quantitat de ports d'entrada i sortida personalitzats. Això es una una "
-"injecció de codi directa en la funció vertex/fragment/light, no lo utilitzau "
-"per a escriure les declaracions de la funció dins seu."
+"quantitat de ports d'entrada i sortida personalitzats. Això es una injecció "
+"de codi directa en la funció vertex/fragment/light, no lo utilitzau per a "
+"escriure les declaracions de la funció dins seu."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9690,7 +9691,7 @@ msgstr "El camí d'exportació donat no existeix:"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted:"
-msgstr "Manquen d'exportació per aquesta plataforma o s'han malmès:"
+msgstr "Manquen d'exportació per aquesta plataforma o s'han malmès:"
#: editor/project_export.cpp
msgid "Presets"
@@ -9735,22 +9736,20 @@ msgid "Resources to export:"
msgstr "Recursos per exportar:"
#: editor/project_export.cpp
-#, fuzzy
msgid ""
"Filters to export non-resource files/folders\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
-"Filtres per a l'exportació fitxers no-recurs (separats per comes, ex: *."
-"json, *. txt)"
+"Filtres per a l'exportació de fitxers/carpetes no-recurs \n"
+"(separats per comes, ex: *.json, *. txt, docs/*)"
#: editor/project_export.cpp
-#, fuzzy
msgid ""
"Filters to exclude files/folders from project\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
-"Filtres per excloure fitxers del projecte (separats per comes, ex:*.json, *."
-"txt)"
+"Filtres per excloure fitxers/carpetes del projecte\n"
+"(separats per comes, ex:*.json, *.txt, docs/*)"
#: editor/project_export.cpp
msgid "Patches"
@@ -9763,7 +9762,7 @@ msgstr "Crea un Pedaç"
#: editor/project_export.cpp
#, fuzzy
msgid "Pack File"
-msgstr " Fitxers"
+msgstr "Fitxers"
#: editor/project_export.cpp
msgid "Features"
@@ -9823,9 +9822,8 @@ msgid "Export All"
msgstr "Exportar Tot"
#: editor/project_export.cpp editor/project_manager.cpp
-#, fuzzy
msgid "ZIP File"
-msgstr " Fitxers"
+msgstr "Fitxer ZIP"
#: editor/project_export.cpp
msgid "Godot Game Pack"
@@ -10217,7 +10215,7 @@ msgid ""
"Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'"
msgstr ""
-"Nom d'acció no vàlid. No pot estar buit ni contenir '/', ':', '=', '\\' o "
+"Nom d'acció no vàlid. No pot estar buit ni contenir '/', ':', '=', '\\' o "
"'\"'"
#: editor/project_settings_editor.cpp
@@ -10705,7 +10703,7 @@ msgstr "Expressions Regulars"
#: editor/rename_dialog.cpp
#, fuzzy
msgid "At character %s"
-msgstr "Caràcters vàlids:"
+msgstr "Al caràcter %s"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent Node"
@@ -10773,8 +10771,9 @@ msgid "Instance Child Scene"
msgstr "Instancia una Escena Filla"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Esborra l'Script"
+#, fuzzy
+msgid "Detach Script"
+msgstr "Adjunta-li un Script"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10814,14 +10813,12 @@ msgid "Make node as Root"
msgstr "Convertir node en arrel"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete %d nodes?"
-msgstr "Eliminar Nodes"
+msgstr "Suprimir %d nodes?"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete the root node \"%s\"?"
-msgstr "Elimina el(s) Node(s) de Graf d'Ombreig"
+msgstr "Voleu suprimir el node arrel \"% s\"?"
#: editor/scene_tree_dock.cpp
#, fuzzy
@@ -10829,9 +10826,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr "Voleu suprimir el node \"%s\" i els seus fills?"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "Eliminar Nodes"
+msgstr "Suprimir el node \"% s\"?"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -10950,6 +10946,13 @@ msgid "Open Documentation"
msgstr "Obrir documentació"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Afegeix un Node Fill"
@@ -11002,11 +11005,13 @@ msgstr ""
"node arrel."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "Adjunta un Script nou o existent per al Node Seleccionat."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "Reestableix un Script per al node Seleccionat."
#: editor/scene_tree_dock.cpp
@@ -11142,6 +11147,10 @@ msgid "A directory with the same name exists."
msgstr "Ja existeix un directori amb el mateix nom."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "El Fitxer no existeix."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "L'extensió no és vàlida."
@@ -11183,6 +11192,10 @@ msgid "File exists, it will be reused."
msgstr "El fitxer ja existeix, es reutilitzarà."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Camí no vàlid."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Nom de classe no vàlid."
@@ -11224,19 +11237,16 @@ msgid ""
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Class Name:"
-msgstr "Nom de Classe"
+msgstr "Nom de la Classe:"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Template:"
-msgstr "Plantilla"
+msgstr "Plantilla:"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Built-in Script:"
-msgstr "Script Integrat"
+msgstr "Script integrat:"
#: editor/script_create_dialog.cpp
msgid "Attach Node Script"
@@ -11275,14 +11285,13 @@ msgid "C++ Source"
msgstr "Font"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Source:"
-msgstr "Font"
+msgstr "Font:"
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "C++ Source:"
-msgstr "Font"
+msgstr "Font de C++:"
#: editor/script_editor_debugger.cpp
#, fuzzy
@@ -11729,7 +11738,7 @@ msgstr "Trieu la distància:"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Filter meshes"
-msgstr "Filtra Mode:"
+msgstr "Filtrar malles"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
@@ -12043,7 +12052,7 @@ msgstr "Connecta els Nodes"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
-msgstr "La funció '%s' ja existeix en l'Script"
+msgstr "La funció '%s' ja existeix en l'Script"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Input Value"
@@ -12112,7 +12121,7 @@ msgstr "Edició del Senyal:"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Make Tool:"
-msgstr "Fer Local"
+msgstr "Convertir en Eina:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Members:"
@@ -12121,7 +12130,7 @@ msgstr "Membres:"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Change Base Type:"
-msgstr "Modifica el Tipus de Base"
+msgstr "Canviar Tipus de Base:"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -12136,7 +12145,7 @@ msgstr "Afegeix una Funció"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "function_name"
-msgstr "Funció:"
+msgstr "nom_funció"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -12284,13 +12293,17 @@ msgstr "L'executable ADB no està configurat a la configuració de l'editor."
#: platform/android/export/export.cpp
#, fuzzy
msgid "OpenJDK jarsigner not configured in the Editor Settings."
-msgstr "OpenJDK Jarsigner no està configurat en la configuració de l'editor."
+msgstr "OpenJDK Jarsigner no està configurat en la configuració de l'editor."
#: platform/android/export/export.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
#, fuzzy
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -12322,6 +12335,32 @@ msgid "Invalid package name:"
msgstr "El nom del paquet no és vàlid:"
#: platform/android/export/export.cpp
+msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
#, fuzzy
msgid ""
"Trying to build from a custom built template, but no version info for it "
@@ -12426,7 +12465,7 @@ msgstr "Utilitzant la imatge de presentació per defecte."
#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid package short name."
-msgstr "El nom del paquet no és vàlid:"
+msgstr "El nom curt del paquet no és vàlid."
#: platform/uwp/export/export.cpp
msgid "Invalid package unique name."
@@ -13057,7 +13096,7 @@ msgid ""
msgstr ""
"ScrollContainer fou pensat per treballar-hi amb un sol Control fill.\n"
"Utilitzeu un contenidor (VBox, HBox, ...) com a fill, o un utilitzeu Control "
-"i personalitzeu-hi la mida mínima manualment."
+"i personalitzeu-hi la mida mínima manualment."
#: scene/gui/tree.cpp
msgid "(Other)"
@@ -13117,6 +13156,21 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Les constants no es poden modificar."
+#~ msgid "Not in resource path."
+#~ msgstr "Fora del camí dels recursos."
+
+#~ msgid "Revert"
+#~ msgstr "Reverteix"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Aquesta acció no es pot desfer. N'esteu segur?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Reverteix Escena"
+
+#~ msgid "Clear Script"
+#~ msgstr "Esborra l'Script"
+
#~ msgid "Issue Tracker"
#~ msgstr "Seguiment d'Incidències"
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index 566ff0c1e2..fabec77283 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -18,12 +18,14 @@
# David Kubeš <kubesdavid@email.cz>, 2019.
# Emil Jiří Tywoniak <emil.tywoniak@gmail.com>, 2020.
# Filip Vincůrek <vincurek.f@gmail.com>, 2020.
+# Ondrej Pavelka <ondrej.pavelka@outlook.com>, 2020.
+# Zbyněk <zbynek.fiala@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-03-12 23:33+0000\n"
-"Last-Translator: Vojtěch Šamla <auzkok@seznam.cz>\n"
+"PO-Revision-Date: 2020-06-06 10:15+0000\n"
+"Last-Translator: Zbyněk <zbynek.fiala@gmail.com>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/"
"cs/>\n"
"Language: cs\n"
@@ -31,7 +33,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.0-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -746,13 +748,13 @@ msgstr "Přepnout panel skriptů"
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom In"
-msgstr "Přiblížit"
+msgstr "Zvětšit"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Out"
-msgstr "Oddálit"
+msgstr "Změnšit"
#: editor/code_editor.cpp
msgid "Reset Zoom"
@@ -852,7 +854,6 @@ msgstr "Připojit Signál"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1463,17 +1464,9 @@ msgstr "Povolit"
msgid "Rearrange Autoloads"
msgstr "Přeskupit Autoloady"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Neplatná cesta."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Soubor neexistuje."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Není v cestě ke zdroji."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1624,7 +1617,7 @@ msgstr "Editor skriptů"
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
-msgstr "Knihovna assetů"
+msgstr "Otevřít knihovnu assetů"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
@@ -1888,9 +1881,8 @@ msgid "(Un)favorite current folder."
msgstr "Přidat/odebrat složku z oblíbených."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Toggle the visibility of hidden files."
-msgstr "Zobrazit skryté soubory"
+msgstr "Změnit viditelnost skrytých souborů."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails."
@@ -1990,7 +1982,7 @@ msgstr "Konstanty"
#: editor/editor_help.cpp
msgid "Property Descriptions"
-msgstr "Popis vlastnosti"
+msgstr "Popisy vlastnosti"
#: editor/editor_help.cpp
msgid "(value)"
@@ -2006,7 +1998,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Method Descriptions"
-msgstr "Popis metody"
+msgstr "Popisy metod"
#: editor/editor_help.cpp
msgid ""
@@ -2123,7 +2115,7 @@ msgstr "Vymazat výstup"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
#: editor/editor_profiler.cpp
msgid "Stop"
-msgstr "Zastavit"
+msgstr "Stop"
#: editor/editor_network_profiler.cpp editor/editor_profiler.cpp
#: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp
@@ -2430,12 +2422,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Nelze naÄíst scénu, která nebyla nikdy uložena."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Vrátit zpět"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Uložit scénu"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Tuto akci nelze vrátit zpÄ›t. PokraÄovat?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2483,7 +2478,7 @@ msgstr "Zavřít scénu"
#: editor/editor_node.cpp
msgid "Reopen Closed Scene"
-msgstr "Znovuotevřít uzavřenou scénu"
+msgstr "Znovu otevřít zavřenou scénu"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
@@ -2631,7 +2626,7 @@ msgstr "Pozice doku"
#: editor/editor_node.cpp
msgid "Distraction Free Mode"
-msgstr "Nerozptylující režim"
+msgstr "Nerozptylující režitm"
#: editor/editor_node.cpp
msgid "Toggle distraction-free mode."
@@ -2655,11 +2650,11 @@ msgstr "Kopírovat text"
#: editor/editor_node.cpp
msgid "Next tab"
-msgstr "Další záložka"
+msgstr "Další panel"
#: editor/editor_node.cpp
msgid "Previous tab"
-msgstr "Předchozí záložka"
+msgstr "Předchozí tab"
#: editor/editor_node.cpp
msgid "Filter Files..."
@@ -2716,10 +2711,6 @@ msgid "Redo"
msgstr "Znovu"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Vrátit scénu"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Různé nástroje pro projekt nebo scény."
@@ -2882,7 +2873,7 @@ msgstr "Otevřít složku s daty a nastavením editoru"
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr "Celá obrazovka"
+msgstr "Přepnout celou obrazovku"
#: editor/editor_node.cpp
#, fuzzy
@@ -2955,7 +2946,7 @@ msgstr "Spustit projekt."
#: editor/editor_node.cpp
msgid "Play"
-msgstr "Spustit"
+msgstr "Hrát"
#: editor/editor_node.cpp
msgid "Pause the scene execution for debugging."
@@ -2975,7 +2966,7 @@ msgstr "Spustit upravenou scénu."
#: editor/editor_node.cpp
msgid "Play Scene"
-msgstr "Spustit scénu"
+msgstr "Přehrát scénu"
#: editor/editor_node.cpp
msgid "Play custom scene"
@@ -2983,7 +2974,7 @@ msgstr "Přehrát vlastní scénu"
#: editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr "Spustit vlastní scénu"
+msgstr "Přehrát upravenou scénu"
#: editor/editor_node.cpp
msgid "Changing the video driver requires restarting the editor."
@@ -3091,15 +3082,15 @@ msgstr "Vybrat"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
-msgstr "Otevřít 2D editor"
+msgstr "Otevřít 2D Editor"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
-msgstr "Otevřít 3D editor"
+msgstr "Otevřít 3D Editor"
#: editor/editor_node.cpp
msgid "Open Script Editor"
-msgstr "Otevřít editor skriptů"
+msgstr "Otevřít Editor Skriptů"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
@@ -3327,8 +3318,9 @@ msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the export menu."
msgstr ""
-"Nenalezen žádný spustitelný preset pro export pro tuto platformu.\n"
-"rosím přidejte spustitelný preset v menu exportu."
+"Nebylo nalezeno žádné spustilené přednastavení pro exportování na tuto "
+"platformu.\n"
+"Přidejte prosím spustitelné přednastavení v exportovacím menu."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -3354,6 +3346,13 @@ msgstr "Nelze spustit skript:"
msgid "Did you forget the '_run' method?"
msgstr "Nezapoměl jste metodu '_run'?"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Podržte Ctrl k uvolnění getteru. Podržte Shift k uvolnění generického "
+"podpisu."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3948,6 +3947,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Ukládání..."
@@ -5067,7 +5070,6 @@ msgid "Failed creating lightmap images, make sure path is writable."
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
msgid "Bake Lightmaps"
msgstr "Zapéct lightmapy"
@@ -5332,7 +5334,7 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Reset"
-msgstr "Resetovat zoom"
+msgstr "Obnovení lupy"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6012,11 +6014,12 @@ msgid "Remove item %d?"
msgstr "Odstranit %d?"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid ""
"Update from existing scene?:\n"
"%s"
-msgstr "Aktualizovat ze scény"
+msgstr ""
+"Aktualizovat z existující scény?:\n"
+"%s"
#: editor/plugins/mesh_library_editor_plugin.cpp
#, fuzzy
@@ -6898,12 +6901,13 @@ msgid ""
msgstr "Odpojit '%s' od '%s'"
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Řádek"
+#, fuzzy
+msgid "[Ignore]"
+msgstr "(ignorovat)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ignorovat)"
+msgid "Line"
+msgstr "Řádek"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7389,6 +7393,15 @@ msgid "XForm Dialog"
msgstr "XForm Dialog"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Snap Nodes To Floor"
msgstr "Přichytit k mřížce"
@@ -8055,7 +8068,7 @@ msgstr "Najít dlaždici"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Transpose"
-msgstr ""
+msgstr "Transponovat"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Disable Autotile"
@@ -8195,14 +8208,12 @@ msgid "Z Index"
msgstr "Index:"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Region Mode"
-msgstr "Režim otáÄení"
+msgstr "Režim oblasti"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Collision Mode"
-msgstr "InterpolaÄní režim"
+msgstr "Kolizní režim"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8210,14 +8221,12 @@ msgid "Occlusion Mode"
msgstr "Editovat polygon"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Navigation Mode"
-msgstr "Vytvořit Navigation Mesh"
+msgstr "NavigaÄní režim"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Bitmask Mode"
-msgstr "Režim otáÄení"
+msgstr "Režim bitové masky"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8225,9 +8234,8 @@ msgid "Priority Mode"
msgstr "Expertní režim:"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Icon Mode"
-msgstr "Režim přesouvání"
+msgstr "Režim ikony"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Z Index Mode"
@@ -9512,9 +9520,8 @@ msgid "Make Patch"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
msgid "Pack File"
-msgstr " Soubory"
+msgstr "Soubour balíÄk"
#: editor/project_export.cpp
msgid "Features"
@@ -10498,8 +10505,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Vymazat skript"
+#, fuzzy
+msgid "Detach Script"
+msgstr "Připojit skript"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10661,6 +10669,13 @@ msgid "Open Documentation"
msgstr "Otevřít dokumentaci"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Přidat podřízený uzel"
@@ -10710,12 +10725,14 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "Připojit nový, nebo existující skript k vybranému uzlu."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr ""
+#, fuzzy
+msgid "Detach the script from the selected node."
+msgstr "Připojit nový, nebo existující skript k vybranému uzlu."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10837,6 +10854,10 @@ msgid "A directory with the same name exists."
msgstr "Složka se stejným jménem již existuje."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Soubor neexistuje."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Neplatná přípona."
@@ -10878,6 +10899,10 @@ msgid "File exists, it will be reused."
msgstr "Soubor již existuje, bude znovu použit."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Neplatná cesta."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Neplatné jméno třídy."
@@ -11947,6 +11972,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11971,6 +12000,32 @@ msgstr "Neplatné jméno třídy"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12702,6 +12757,21 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstanty není možné upravovat."
+#~ msgid "Not in resource path."
+#~ msgstr "Není v cestě ke zdroji."
+
+#~ msgid "Revert"
+#~ msgstr "Vrátit zpět"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Tuto akci nelze vrátit zpÄ›t. PokraÄovat?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Vrátit scénu"
+
+#~ msgid "Clear Script"
+#~ msgstr "Vymazat skript"
+
#~ msgid "Issue Tracker"
#~ msgstr "Sledování chyb"
diff --git a/editor/translations/da.po b/editor/translations/da.po
index 5e88313d95..8eeaaafaea 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -881,7 +881,6 @@ msgstr "Forbind Signal: "
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1516,18 +1515,9 @@ msgstr "Aktivér"
msgid "Rearrange Autoloads"
msgstr "Flytte om på Autoloads"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "Ugyldig Sti."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Fil eksisterer ikke."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Ikke i stien for ressource."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2520,12 +2510,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Kan ikke genindlæse en scene, der aldrig blev gemt."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Vend tilbage"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Gem Scene"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Denne handling kan ikke fortrydes. Vend tilbage alligevel?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2816,10 +2809,6 @@ msgid "Redo"
msgstr "Annuller Fortyd"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Gendan scene"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Diverse projekt eller scene redskaber."
@@ -3469,6 +3458,10 @@ msgstr "Kunne ikke køre script:"
msgid "Did you forget the '_run' method?"
msgstr "Glemte du '_run' metoden?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Vælg Noder at Importere"
@@ -4108,6 +4101,10 @@ msgid "Error running post-import script:"
msgstr "Fejl ved kørsel af efter-import script:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Gemmer..."
@@ -7154,15 +7151,15 @@ msgid ""
msgstr "Afbryd '%s' fra '%s'"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "Linje:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "Tilføj Funktion"
@@ -7651,6 +7648,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10733,7 +10739,8 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+#, fuzzy
+msgid "Detach Script"
msgstr "Ryd Script"
#: editor/scene_tree_dock.cpp
@@ -10902,6 +10909,13 @@ msgid "Open Documentation"
msgstr "Ã…ben Seneste"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10952,11 +10966,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -11087,6 +11101,10 @@ msgid "A directory with the same name exists."
msgstr "En fil eller mappe med dette navn findes allerede."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Fil eksisterer ikke."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "Du skal bruge en gyldig udvidelse."
@@ -11132,6 +11150,11 @@ msgstr "Filen findes, vil blive genbrugt"
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "Ugyldig Sti."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "Ugyldigt navn."
@@ -12224,6 +12247,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -12248,6 +12275,32 @@ msgstr "Ugyldigt navn."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12971,6 +13024,18 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstanter kan ikke ændres."
+#~ msgid "Not in resource path."
+#~ msgstr "Ikke i stien for ressource."
+
+#~ msgid "Revert"
+#~ msgstr "Vend tilbage"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Denne handling kan ikke fortrydes. Vend tilbage alligevel?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Gendan scene"
+
#~ msgid "Issue Tracker"
#~ msgstr "Problem Tracker"
diff --git a/editor/translations/de.po b/editor/translations/de.po
index c3b2d6ee58..b52206e56e 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -49,12 +49,15 @@
# Draco Drache <jan.holger.te@gmail.com>, 2019.
# Jonas <dotchucknorris@gmx.de>, 2019.
# PagDev <pag.develop@gmail.com>, 2020.
+# artism90 <artism90@googlemail.com>, 2020.
+# Jaigskim <filzstift112@gmail.com>, 2020.
+# Jacqueline Ulken <Jacqueline.Ulken@protonmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-04 15:11+0000\n"
-"Last-Translator: Anonymous <noreply@weblate.org>\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
+"Last-Translator: So Wieso <sowieso@dukun.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
"Language: de\n"
@@ -67,12 +70,11 @@ msgstr ""
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr ""
-"Ungültiger Argument-Typ in convert()-Aufruf, TYPE_*-Konstanten benötigt."
+msgstr "Ungültiger Argument-Typ in convert(), TYPE_*-Konstanten benötigt."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "Zeichenkette der Länge 1 erwartet (ein Zeichen)."
+msgstr "Zeichenkette der Länge 1 erwartet (exakt ein Symbol)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -95,7 +97,7 @@ msgstr "Ungültige Operanden für Operator %s, %s und %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr "Ungültiger Index des Typs ‚%s‘ für Grundtyp %s"
+msgstr "Ungültiger Index des Typs %s für Grundtyp %s"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
@@ -435,7 +437,7 @@ msgstr "Spuren neu anordnen"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr "Transformationsspuren gelten nur für Nodes die auf Spatial basieren."
+msgstr "Transformationsspuren gelten nur für Nodes, die auf Spatial basieren."
#: editor/animation_track_editor.cpp
msgid ""
@@ -538,11 +540,11 @@ msgstr ""
"Diese Animation gehört zu einer importierten Szene, Änderungen an "
"importierten Spuren werden nicht gespeichert.\n"
"\n"
-"Um neue Spuren hinzufügen zu können muss unter den Importeinstellungen\n"
+"Um neue Spuren hinzufügen zu können muss unter den Importeinstellungen der "
+"Szene\n"
"„Animation > Storage“ zu „Files“ gesetzt und „Animation > Keep Custom "
-"Tracks“ aktiviert werden.\n"
-"Danach ist die Szene erneut zu importieren.\n"
-"Alternativ kann eine Importeinstllung benutzt werden welche Animationen in "
+"Tracks“ aktiviert werden, danach ist die Szene erneut zu importieren.\n"
+"Alternativ kann eine Importeinstellung benutzt werden, welche Animationen in "
"separate Dateien importiert."
#: editor/animation_track_editor.cpp
@@ -552,7 +554,7 @@ msgstr "Achtung: Es wird eine importierte Animation bearbeitet"
#: editor/animation_track_editor.cpp
msgid "Select an AnimationPlayer node to create and edit animations."
msgstr ""
-"Ein AnimationPlayer-Node auswählen um Animationen zu erzeugen oder zu "
+"Ein AnimationPlayer-Node auswählen, um Animationen zu erzeugen oder zu "
"bearbeiten."
#: editor/animation_track_editor.cpp
@@ -887,7 +889,6 @@ msgstr "Signal kann nicht verbunden werden"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1502,17 +1503,9 @@ msgstr "Aktivieren"
msgid "Rearrange Autoloads"
msgstr "Autoloads neu anordnen"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Ungültiger Pfad."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Datei existiert nicht."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Nicht im Ressourcen-Pfad."
+msgid "Can't add autoload:"
+msgstr "Autoload konnte nicht hinzugefügt werden:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1629,8 +1622,9 @@ msgid ""
"Enabled'."
msgstr ""
"Die Zielplattform benötigt ‚ETC‘-Texturkompression für den Treiber-Fallback "
-"auf GLES2. Bitte ‚Import Etc‘ in den Projekteinstellungen aktivieren oder "
-"‚Driver Fallback Enabled‘ ausschalten."
+"auf GLES2. \n"
+"Bitte ‚Import Etc‘ in den Projekteinstellungen aktivieren oder ‚Driver "
+"Fallback Enabled‘ ausschalten."
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
@@ -2015,7 +2009,7 @@ msgstr "Methoden"
#: editor/editor_help.cpp
msgid "Theme Properties"
-msgstr "Motiv-Eigenschaften"
+msgstr "Theme-Eigenschaften"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2092,11 +2086,11 @@ msgstr "Nur Eigenschaften"
#: editor/editor_help_search.cpp
msgid "Theme Properties Only"
-msgstr "Nur Motiv-Eigenschaften"
+msgstr "Nur Theme-Eigenschaften"
#: editor/editor_help_search.cpp
msgid "Member Type"
-msgstr "Mitgliedstyp"
+msgstr "Attribut-Typ"
#: editor/editor_help_search.cpp
msgid "Class"
@@ -2112,7 +2106,7 @@ msgstr "Signal"
#: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constant"
-msgstr "Konstant"
+msgstr "Konstante"
#: editor/editor_help_search.cpp
msgid "Property"
@@ -2120,7 +2114,7 @@ msgstr "Eigenschaft"
#: editor/editor_help_search.cpp
msgid "Theme Property"
-msgstr "Motiv-Eigenschaft"
+msgstr "Theme-Eigenschaft"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
@@ -2128,11 +2122,11 @@ msgstr "Eigenschaft:"
#: editor/editor_inspector.cpp
msgid "Set"
-msgstr "Setze"
+msgstr "Festlegen"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
-msgstr "Mehrfach einstellen:"
+msgstr "Mehrfach festlegen:"
#: editor/editor_log.cpp
msgid "Output:"
@@ -2159,7 +2153,7 @@ msgstr "Ausgabe löschen"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
#: editor/editor_profiler.cpp
msgid "Stop"
-msgstr "Stop"
+msgstr "Stopp"
#: editor/editor_network_profiler.cpp editor/editor_profiler.cpp
#: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp
@@ -2172,7 +2166,7 @@ msgstr "%s/s"
#: editor/editor_network_profiler.cpp
msgid "Down"
-msgstr "Herunter"
+msgstr "Runter"
#: editor/editor_network_profiler.cpp
msgid "Up"
@@ -2213,7 +2207,7 @@ msgstr "OK"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
-msgstr "Fehler beim speichern der Ressource!"
+msgstr "Fehler beim Speichern der Ressource!"
#: editor/editor_node.cpp
msgid ""
@@ -2229,7 +2223,7 @@ msgstr "Speichere Ressource als..."
#: editor/editor_node.cpp
msgid "Can't open file for writing:"
-msgstr "Datei kann nicht zum schreiben geöffnet werden:"
+msgstr "Datei kann nicht zum Schreiben geöffnet werden:"
#: editor/editor_node.cpp
msgid "Requested file format unknown:"
@@ -2237,13 +2231,13 @@ msgstr "Angefordertes Dateiformat unbekannt:"
#: editor/editor_node.cpp
msgid "Error while saving."
-msgstr "Fehler beim speichern."
+msgstr "Fehler beim Speichern."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Can't open '%s'. The file could have been moved or deleted."
msgstr ""
"Datei ‚%s‘ kann nicht geöffnet werden. Die Datei könnte verschoben oder "
-"gelöscht sein."
+"gelöscht worden sein."
#: editor/editor_node.cpp
msgid "Error while parsing '%s'."
@@ -2282,8 +2276,8 @@ msgid ""
"This scene can't be saved because there is a cyclic instancing inclusion.\n"
"Please resolve it and then attempt to save again."
msgstr ""
-"Diese Szene kann nicht gespeichert werden da sie eine zyklische "
-"Instantiierungshierarchie enthält.\n"
+"Diese Szene kann nicht gespeichert werden, da sie eine zyklische "
+"Instanziierungshierarchie enthält.\n"
"Speichern ist erst nach Beheben des Konflikts möglich."
#: editor/editor_node.cpp
@@ -2300,23 +2294,23 @@ msgstr "Momentan geöffnete Szenen können nicht überschrieben werden!"
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
-msgstr "MeshLibrary konnte nicht zum vereinen geladen werden!"
+msgstr "MeshLibrary konnte nicht zum Vereinen geladen werden!"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr "Fehler beim speichern der MeshLibrary!"
+msgstr "Fehler beim Speichern der MeshLibrary!"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
-msgstr "TileSet konnte nicht zum vereinen geladen werden!"
+msgstr "TileSet konnte nicht zum Vereinen geladen werden!"
#: editor/editor_node.cpp
msgid "Error saving TileSet!"
-msgstr "Fehler beim speichern des TileSet!"
+msgstr "Fehler beim Speichern des TileSet!"
#: editor/editor_node.cpp
msgid "Error trying to save layout!"
-msgstr "Fehler beim speichern des Layouts!"
+msgstr "Fehler beim Speichern des Layouts!"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
@@ -2324,7 +2318,7 @@ msgstr "Standard-Editorlayout überschrieben."
#: editor/editor_node.cpp
msgid "Layout name not found!"
-msgstr "Layout Name nicht gefunden!"
+msgstr "Layout-Name nicht gefunden!"
#: editor/editor_node.cpp
msgid "Restored default layout to base settings."
@@ -2345,7 +2339,7 @@ msgid ""
"This resource belongs to a scene that was instanced or inherited.\n"
"Changes to it won't be kept when saving the current scene."
msgstr ""
-"Diese Ressource gehört zu einer instantiierten oder geerbten Szene.\n"
+"Diese Ressource gehört zu einer instanziierten oder geerbten Szene.\n"
"Änderungen an der Ressource werden beim Speichern der aktuellen Szene nicht "
"mitgespeichert."
@@ -2366,7 +2360,7 @@ msgid ""
"understand this workflow."
msgstr ""
"Diese Szene wurde importiert, Änderungen an ihr werden nicht gespeichert.\n"
-"Instantiierung oder Vererbung sind nötig um Änderungen vorzunehmen.\n"
+"Instanziierung oder Vererbung ist nötig, um Änderungen vorzunehmen.\n"
"Die Dokumentation zum Szenenimport beschreibt den nötigen Arbeitsablauf."
#: editor/editor_node.cpp
@@ -2375,18 +2369,19 @@ msgid ""
"Please read the documentation relevant to debugging to better understand "
"this workflow."
msgstr ""
-"Dies ist ein Fern-Objekt, Änderungen an ihm werden nicht gespeichert.\n"
+"Dies ist ein nicht-lokales Objekt, Änderungen an ihm werden nicht "
+"gespeichert.\n"
"Die Dokumentation zum Debugging beschreibt den nötigen Arbeitsablauf."
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
-msgstr "Es ist keine zu startende Szene definiert."
+msgstr "Es ist keine abzuspielende Szene definiert."
#: editor/editor_node.cpp
msgid "Current scene was never saved, please save it prior to running."
msgstr ""
-"Die aktuelle Szene wurde noch nicht gespeichert, bitte speichere sie vor dem "
-"Starten."
+"Die aktuelle Szene wurde noch nicht gespeichert, bitte vor dem Abspielen "
+"sichern."
#: editor/editor_node.cpp
msgid "Could not start subprocess!"
@@ -2474,13 +2469,17 @@ msgstr ""
"Szene kann nicht neu geladen werden, wenn sie vorher nicht gespeichert wurde."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Zurücksetzen"
+msgid "Reload Saved Scene"
+msgstr "Gespeicherte Szene neu laden"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
-"Diese Aktion kann nicht rückgängig gemacht werden. Trotzdem zurücksetzen?"
+"Die aktuelle Szene enthält ungesicherte Änderungen.\n"
+"Soll die Szene trotzdem neu geladen werden? Diese Aktion kann nicht "
+"rückgängig gemacht werden."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2612,9 +2611,10 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"Die ausgewählte Szene ‚%s‘ existiert nicht.\n"
-"Wähle eine gültige Szene in den Projekteinstellungen unter der Kategorie "
-"„Anwendung“."
+"Die ausgewählte Szene ‚%s‘ existiert nicht, soll eine gültige ausgewählt "
+"werden?\n"
+"Dies kann später in den Projekteinstellungen unter der Kategorie ‚Anwendung‘ "
+"geändert werden."
#: editor/editor_node.cpp
msgid ""
@@ -2622,9 +2622,10 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"Die ausgewählte Szene ‚%s‘ ist keine gültige Datei für eine Szene.\n"
-"Wähle eine gültige Szene in den Projekteinstellungen unter der Kategorie "
-"„Anwendung“."
+"Die ausgewählte Szene ‚%s‘ ist keine gültige Datei für eine Szene, soll eine "
+"andere ausgewählt werden?\n"
+"Dies kann später in den Projekteinstellungen unter der Kategorie ‚Anwendung‘ "
+"geändert werden."
#: editor/editor_node.cpp
msgid "Save Layout"
@@ -2775,10 +2776,6 @@ msgid "Redo"
msgstr "Wiederherstellen"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Szene zurücksetzen"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Sonstiges Projekt oder szenenübergreifende Werkzeuge."
@@ -3428,6 +3425,12 @@ msgstr "Skript konnte nicht ausgeführt werden:"
msgid "Did you forget the '_run' method?"
msgstr "Hast du die '_run' Methode vergessen?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Strg-Taste halten um auf Ganzzahlen zu runden. Umschalt-Taste halten für "
+"präzisere Änderungen."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Selektiere Node(s) für den Import"
@@ -3939,7 +3942,7 @@ msgstr "Nodes filtern"
#: editor/groups_editor.cpp
msgid "Nodes in Group"
-msgstr "Nodes in der Gruppe"
+msgstr "Nodes in Gruppe"
#: editor/groups_editor.cpp
msgid "Empty groups will be automatically removed."
@@ -4027,6 +4030,12 @@ msgid "Error running post-import script:"
msgstr "Fehler beim ausführen des Post-Import Skripts:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+"Wurde ein von Node abstammendes Objekt in der ‚post_import()‘-Methode "
+"zurückgegeben?"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Speichere..."
@@ -4581,7 +4590,7 @@ msgstr "Spiele ausgewählte Animation vom Start. (Umschalt+D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from current pos. (D)"
-msgstr "Ausgewählte Animation von aktueller Position aus abspielen. (D)"
+msgstr "Spiele ausgewählte Animation von aktueller Position. (D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation position (in seconds)."
@@ -4621,7 +4630,7 @@ msgstr "Zwiebelhaut aktivieren"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning Options"
-msgstr "Zwiebelhaut-Einstellugen"
+msgstr "Zwiebelhaut-Einstellungen"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Directions"
@@ -5268,8 +5277,8 @@ msgid ""
"When active, moving Control nodes changes their anchors instead of their "
"margins."
msgstr ""
-"Wenn aktiviert ändert das Verschieben von Control-Nodes ihre Anker anstatt "
-"ihre Ausmaße."
+"Wenn aktiviert, ändert das Verschieben von Control-Nodes deren Bezugspunkte "
+"statt ihre Randabstände."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Top Left"
@@ -5624,7 +5633,7 @@ msgstr "Zeige Ansichtsfenster (Viewport)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Group And Lock Icons"
-msgstr "Gruppe zeigen und Icons sperren"
+msgstr "Gruppen und Symbole anzeigen"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
@@ -6769,11 +6778,11 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
-msgstr "Motiv importieren"
+msgstr "Theme importieren"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
-msgstr "Fehler beim Speichern des Motivs"
+msgstr "Fehler beim Speichern des Themes"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving"
@@ -6781,7 +6790,7 @@ msgstr "Fehler beim Speichern"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As..."
-msgstr "Motiv speichern als..."
+msgstr "Theme speichern als..."
#: editor/plugins/script_editor_plugin.cpp
msgid "%s Class Reference"
@@ -6868,7 +6877,7 @@ msgstr "Vorwärts im Verlauf"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme"
-msgstr "Motiv"
+msgstr "Theme"
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme..."
@@ -6876,11 +6885,11 @@ msgstr "Thema importieren..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
-msgstr "Motiv neu laden"
+msgstr "Theme neu laden"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme"
-msgstr "Motiv speichern"
+msgstr "Theme speichern"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close All"
@@ -6988,12 +6997,12 @@ msgstr ""
"Fehlende verbundene Methode ‚%s‘ für Signal ‚%s‘ von Node ‚%s‘ zu Node ‚%s‘."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Zeile"
+msgid "[Ignore]"
+msgstr "[Ignorieren]"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ignorieren)"
+msgid "Line"
+msgstr "Zeile"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7471,6 +7480,21 @@ msgid "XForm Dialog"
msgstr "Transformationsdialog"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+"Klicken um zwischen Sichtbarkeitsmodi umzuschalten.\n"
+"\n"
+"Offenes Auge: Griffe sind sichtbar.\n"
+"Geschlossenes Auge: Griffe sind unsichtbar.\n"
+"Halb offenes Auge: Griffe sind auch durch deckende Oberflächen sichtbar "
+"(\"Röntgenblick\")."
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Nodes am Boden einrasten"
@@ -7961,7 +7985,7 @@ msgstr "Aus derzeitigem Editor-Thema erstellen"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Toggle Button"
-msgstr "Knopf umschalten"
+msgstr "Umschaltknopf"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Disabled Button"
@@ -8066,7 +8090,7 @@ msgstr "Farbe"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme File"
-msgstr "Motiv-Datei"
+msgstr "Theme-Datei"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
@@ -8196,7 +8220,7 @@ msgstr "Nächste Koordinate"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Select the next shape, subtile, or Tile."
-msgstr "Die nächste Form oder Kachel auswählen."
+msgstr "Die nächste Form oder (Unter-)Kachel auswählen."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Previous Coordinate"
@@ -8204,7 +8228,7 @@ msgstr "Vorherige Koordinate"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Select the previous shape, subtile, or Tile."
-msgstr "Die vorherige Form oder Kachel auswählen."
+msgstr "Die vorherige Form oder (Unter-)Kachel auswählen."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Region"
@@ -8244,7 +8268,7 @@ msgstr "Kollisionsmodus"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Occlusion Mode"
-msgstr "Verschlussmodus"
+msgstr "Verdeckungsmodus"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Navigation Mode"
@@ -9317,7 +9341,7 @@ msgid ""
msgstr ""
"Stufenfunktion ( Vektor(Kante), Vektor(x) ).\n"
"\n"
-"Gibt 0.0 zurück falls ‚x‘ kleiner als ‚Kante‘, ansonsten 1.0."
+"Gibt 0.0 zurück falls ‚x‘ kleiner als ‚Kante‘, ansonsten 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -10575,8 +10599,8 @@ msgid "Instance Child Scene"
msgstr "Szene hier instantiieren"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Skript leeren"
+msgid "Detach Script"
+msgstr "Skript loslösen"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10742,6 +10766,15 @@ msgid "Open Documentation"
msgstr "Dokumentation öffnen"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+"Skript konnte nicht angehängt werden: Keine Sprachen registriert.\n"
+"Vermutliche Ursache ist dass der Editor ohne Sprachmodulen gebaut wurde."
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Node hier anhängen"
@@ -10790,12 +10823,12 @@ msgstr ""
"kein Root-Node existiert."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
-msgstr "Ein neues oder existierendes Skript zum ausgewählten Node hinzufügen."
+msgid "Attach a new or existing script to the selected node."
+msgstr "Ein neues oder existierendes Skript dem ausgewählten Node anhängen."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr "Entferne Skript von ausgewähltem Node."
+msgid "Detach the script from the selected node."
+msgstr "Skript vom ausgewählten Node loslösen."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10850,12 +10883,12 @@ msgid ""
"Node is in %s group(s).\n"
"Click to show groups dock."
msgstr ""
-"Node ist %s Gruppe(n).\n"
+"Node gehört zu %s Gruppe(n).\n"
"Hier klicken zur Gruppenverwaltung."
#: editor/scene_tree_editor.cpp
msgid "Open Script:"
-msgstr "Offenes Skript:"
+msgstr "Skript öffnen:"
#: editor/scene_tree_editor.cpp
msgid ""
@@ -10927,6 +10960,10 @@ msgid "A directory with the same name exists."
msgstr "Ein Verzeichnis mit gleichem Namen existiert bereits."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Datei existiert nicht."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Ungültige Dateiendung."
@@ -10967,6 +11004,10 @@ msgid "File exists, it will be reused."
msgstr "Datei existiert bereits, wird erneut verwendet."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Ungültiger Pfad."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Ungültiger Klassenname."
@@ -11986,7 +12027,7 @@ msgstr "Paketsegmente dürfen keine Länge gleich Null haben."
#: platform/android/export/export.cpp
msgid "The character '%s' is not allowed in Android application package names."
-msgstr "Das Zeichen ‚%s‘ ist in Android-Anwendungs-Paketnamen nicht gestattet."
+msgstr "Das Zeichen ‚%s‘ ist in Android-Anwendungspaketnamen nicht gestattet."
#: platform/android/export/export.cpp
msgid "A digit cannot be the first character in a package segment."
@@ -12020,6 +12061,11 @@ msgstr ""
"konfiguriert."
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"Release-Keystore wurde nicht korrekt konfiguriert in den Exporteinstellungen."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"Eigene Builds erfordern gültigen Android-SDK-Pfad in den Editoreinstellungen."
@@ -12047,6 +12093,41 @@ msgstr "Ungültiger Paketname:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+"Ungültiges „GodotPaymentV3“-Modul eingebunden in den „android/modules“-"
+"Projekteinstellungen (wurde in Godot 3.2.2 geändert).\n"
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+"„Use Custom Build“ muss aktiviert werden um die Plugins nutzen zu können."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+"„Degrees Of Freedom“ ist nur gültig wenn „Xr Mode“ als „Occulus Mobile VR“ "
+"gesetzt wurde."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"„Hand Tracking“ ist nur gültig wenn „Xr Mode“ als „Occulus Mobile VR“ "
+"gesetzt wurde."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"„Focus Awareness“ ist nur gültig wenn „Xr Mode“ als „Occulus Mobile VR“ "
+"gesetzt wurde."
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12229,7 +12310,7 @@ msgid ""
msgstr ""
"CollisionPolygon2D liefert nur eine Kollisionsform für ein von "
"CollisionObject2D abgeleitetes Node. Es kann nur als Unterobjekt von Area2D, "
-"StaticBody2D, RigidBody2D, KinematicBody2D usw. eingehängt werden um diesen "
+"StaticBody2D, RigidBody2D, KinematicBody2D usw. eingehängt werden, um diesen "
"eine Form zu geben."
#: scene/2d/collision_polygon_2d.cpp
@@ -12244,7 +12325,7 @@ msgid ""
msgstr ""
"CollisionShape2D liefert nur eine Kollisionsform für ein von "
"CollisionObject2D abgeleitetes Node. Es kann nur als Unterobjekt von Area2D, "
-"StaticBody2D, RigidBody2D, KinematicBody2D usw. eingehängt werden um diesen "
+"StaticBody2D, RigidBody2D, KinematicBody2D usw. eingehängt werden, um diesen "
"eine Form zu geben."
#: scene/2d/collision_shape_2d.cpp
@@ -12298,9 +12379,9 @@ msgid ""
"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
"node. It only provides navigation data."
msgstr ""
-"Eine NavigationPolygon-Instanz muss ein Unterobjekt erster oder zweiter "
-"Ordnung unterhalb eines Navigation2D-Node sein. Sie liefert nur "
-"Navigationsdaten."
+"NavigationPolygonInstance muss ein Unterobjekt erster oder zweiter Ordnung "
+"unterhalb eines Navigation2D-Node sein. Es liefert nur "
+"Navigationsinformationen."
#: scene/2d/parallax_layer.cpp
msgid ""
@@ -12381,10 +12462,10 @@ msgid ""
"to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, "
"KinematicBody2D, etc. to give them a shape."
msgstr ""
-"Ein TileMap mit aktivierter „Use Parent“-Option benötigt ein "
-"CollisionObject2D-Elternnode dem es Form verleiht. Das TileMap sollte als "
-"als Unterobjekt von Area2D, StaticBody2D, RigidBody2D, KinematicBody2D, usw. "
-"verwendet werden um ihnen eine Form zu geben."
+"Eine TileMap mit aktivierter „Use Parent“-Option benötigt ein Eltern-Node "
+"des Typs CollisionObject2D, welcher der TileMap eine Form verleiht. Sie "
+"sollte als Unterobjekt von Area2D, StaticBody2D, RigidBody2D, "
+"KinematicBody2D, usw. verwendet werden, um ihnen eine Form zu geben."
#: scene/2d/visibility_notifier_2d.cpp
msgid ""
@@ -12469,7 +12550,8 @@ msgid ""
msgstr ""
"CollisionPolygon liefert nur eine Kollisionsform für ein von CollisionObject "
"abgeleitetes Node. Es kann nur als Unterobjekt von Area, StaticBody, "
-"RigidBody, KinematicBody usw. eingehängt werden um diesen eine Form zu geben."
+"RigidBody, KinematicBody usw. eingehängt werden, um diesen eine Form zu "
+"verleihen."
#: scene/3d/collision_polygon.cpp
msgid "An empty CollisionPolygon has no effect on collision."
@@ -12483,7 +12565,8 @@ msgid ""
msgstr ""
"CollisionShape liefert nur eine Kollisionsform für ein von CollisionObject "
"abgeleitetes Node. Es kann nur als Unterobjekt von Area, StaticBody, "
-"RigidBody, KinematicBody usw. eingehängt werden um diesen eine Form zu geben."
+"RigidBody, KinematicBody usw. eingehängt werden, um diesen eine Form zu "
+"geben."
#: scene/3d/collision_shape.cpp
msgid ""
@@ -12547,8 +12630,8 @@ msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
-"Eine NavigationMesh-Instanz muss ein Unterobjekt erster oder höherer Ordnung "
-"eines Navigation-Nodes sein. Es liefert nur Navigationsdaten."
+"NavigationMeshInstance muss ein Unterobjekt erster oder zweiter Ordnung "
+"eines Navigation-Nodes sein. Es liefert nur Navigationsinformationen."
#: scene/3d/particles.cpp
msgid ""
@@ -12852,6 +12935,22 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden."
msgid "Constants cannot be modified."
msgstr "Konstanten können nicht verändert werden."
+#~ msgid "Not in resource path."
+#~ msgstr "Nicht im Ressourcen-Pfad."
+
+#~ msgid "Revert"
+#~ msgstr "Zurücksetzen"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr ""
+#~ "Diese Aktion kann nicht rückgängig gemacht werden. Trotzdem zurücksetzen?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Szene zurücksetzen"
+
+#~ msgid "Clear Script"
+#~ msgstr "Skript leeren"
+
#~ msgid "Issue Tracker"
#~ msgstr "Problem-Melder"
diff --git a/editor/translations/de_CH.po b/editor/translations/de_CH.po
deleted file mode 100644
index c86daa54dc..0000000000
--- a/editor/translations/de_CH.po
+++ /dev/null
@@ -1,12956 +0,0 @@
-# Swiss High German translation of the Godot Engine editor
-# Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).
-# This file is distributed under the same license as the Godot source code.
-# Christian Fisch <christian.fiesel@gmail.com>, 2016.
-# Nils <nfa106008@iet-gibb.ch>, 2020.
-# PagDev <pag.develop@gmail.com>, 2020.
-msgid ""
-msgstr ""
-"Project-Id-Version: Godot Engine editor\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-03-08 22:33+0000\n"
-"Last-Translator: PagDev <pag.develop@gmail.com>\n"
-"Language-Team: German (Switzerland) <https://hosted.weblate.org/projects/"
-"godot-engine/godot/de_CH/>\n"
-"Language: de_CH\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.0-dev\n"
-
-#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
-#: modules/visual_script/visual_script_builtin_funcs.cpp
-msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr ""
-"Ungültiger Argument-Typ in convert()-Aufruf, TYPE_*-Konstanten benötigt."
-
-#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
-msgid "Expected a string of length 1 (a character)."
-msgstr "Es wurde eine Zeichenfolge der Länge 1 (a character) erwartet."
-
-#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
-#: modules/mono/glue/gd_glue.cpp
-#: modules/visual_script/visual_script_builtin_funcs.cpp
-msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "Nicht genügend Bytes zum Decodieren von Bytes oder ungültiges Format."
-
-#: core/math/expression.cpp
-msgid "Invalid input %i (not passed) in expression"
-msgstr ""
-
-#: core/math/expression.cpp
-msgid "self can't be used because instance is null (not passed)"
-msgstr "self cha nid brucht wärde wöu d Instanz null isch (nid düre cho)"
-
-#: core/math/expression.cpp
-msgid "Invalid operands to operator %s, %s and %s."
-msgstr "Invalidi Operande füre Operator %s, %s und %s."
-
-#: core/math/expression.cpp
-msgid "Invalid index of type %s for base type %s"
-msgstr "Invalide index vom Typ %s füre Basis Typ %s"
-
-#: core/math/expression.cpp
-msgid "Invalid named index '%s' for base type %s"
-msgstr "Invalid benamslete index '%s' füre Basis Typ %s"
-
-#: core/math/expression.cpp
-msgid "Invalid arguments to construct '%s'"
-msgstr "Invalidi argumänt für s '%s' z konstruiere"
-
-#: core/math/expression.cpp
-msgid "On call to '%s':"
-msgstr "Ufem ufruef für '%s':"
-
-#: core/ustring.cpp
-msgid "B"
-msgstr "B"
-
-#: core/ustring.cpp
-msgid "KiB"
-msgstr "KiB"
-
-#: core/ustring.cpp
-msgid "MiB"
-msgstr "MiB"
-
-#: core/ustring.cpp
-msgid "GiB"
-msgstr "GiB"
-
-#: core/ustring.cpp
-msgid "TiB"
-msgstr "TiB"
-
-#: core/ustring.cpp
-msgid "PiB"
-msgstr "PiB"
-
-#: core/ustring.cpp
-msgid "EiB"
-msgstr "EiB"
-
-#: editor/animation_bezier_editor.cpp
-msgid "Free"
-msgstr "Gratis"
-
-#: editor/animation_bezier_editor.cpp
-msgid "Balanced"
-msgstr "Usgliche"
-
-#: editor/animation_bezier_editor.cpp
-msgid "Mirror"
-msgstr "Spiegu"
-
-#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
-msgid "Time:"
-msgstr "Zit:"
-
-#: editor/animation_bezier_editor.cpp
-msgid "Value:"
-msgstr "Wärt:"
-
-#: editor/animation_bezier_editor.cpp
-msgid "Insert Key Here"
-msgstr "Schlüssu hie ifüege"
-
-#: editor/animation_bezier_editor.cpp
-msgid "Duplicate Selected Key(s)"
-msgstr "Usgwäuti Schlüssle dupliziere"
-
-#: editor/animation_bezier_editor.cpp
-msgid "Delete Selected Key(s)"
-msgstr "Usgwäuti Schlüssle lösche"
-
-#: editor/animation_bezier_editor.cpp
-msgid "Add Bezier Point"
-msgstr "Dr Bezier Punkt hinzuefüege"
-
-#: editor/animation_bezier_editor.cpp
-msgid "Move Bezier Points"
-msgstr "Dr Bezier Punkt bewege"
-
-#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
-msgid "Anim Duplicate Keys"
-msgstr "Anim Schlüssle Dupliziere"
-
-#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
-msgid "Anim Delete Keys"
-msgstr "Anim Schlüssle lösche"
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Change Keyframe Time"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Change Transition"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Change Transform"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Change Keyframe Value"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Change Call"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Multi Change Keyframe Time"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Multi Change Transition"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Multi Change Transform"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Multi Change Keyframe Value"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Multi Change Call"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Change Animation Length"
-msgstr "Typ ändern"
-
-#: editor/animation_track_editor.cpp
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Property Track"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "3D Transform Track"
-msgstr "Transformationstyp"
-
-#: editor/animation_track_editor.cpp
-msgid "Call Method Track"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Bezier Curve Track"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Audio Playback Track"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Animation Playback Track"
-msgstr "Stoppe Animations-Wiedergabe. (S)"
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Animation length (frames)"
-msgstr "Animations-Node"
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Animation length (seconds)"
-msgstr "Animations-Node"
-
-#: editor/animation_track_editor.cpp
-msgid "Add Track"
-msgstr "Spur hinzuefüege"
-
-#: editor/animation_track_editor.cpp
-msgid "Animation Looping"
-msgstr "Animationswiderholig"
-
-#: editor/animation_track_editor.cpp
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Functions:"
-msgstr "Funktione:"
-
-#: editor/animation_track_editor.cpp
-msgid "Audio Clips:"
-msgstr "Audioclips:"
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Clips:"
-msgstr "Animationsclips:"
-
-#: editor/animation_track_editor.cpp
-msgid "Change Track Path"
-msgstr "D Spur wächsle"
-
-#: editor/animation_track_editor.cpp
-msgid "Toggle this track on/off."
-msgstr "Die Spur ah-/abschaute"
-
-#: editor/animation_track_editor.cpp
-msgid "Update Mode (How this property is set)"
-msgstr "Update Modus (Wie die Eigeschaft gsetzt isch)"
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Interpolation Mode"
-msgstr "Animations-Node"
-
-#: editor/animation_track_editor.cpp
-msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Remove this track."
-msgstr "Ungültige Bilder löschen"
-
-#: editor/animation_track_editor.cpp
-msgid "Time (s): "
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Toggle Track Enabled"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Continuous"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Discrete"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Trigger"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Capture"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Nearest"
-msgstr ""
-
-#: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp
-#: editor/property_editor.cpp
-msgid "Linear"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Cubic"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Clamp Loop Interp"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Wrap Loop Interp"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Insert Key"
-msgstr "Bild einfügen"
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Duplicate Key(s)"
-msgstr "Node(s) duplizieren"
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Delete Key(s)"
-msgstr "Node(s) löschen"
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Change Animation Update Mode"
-msgstr "Typ ändern"
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Change Animation Interpolation Mode"
-msgstr "Animations-Node"
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Change Animation Loop Mode"
-msgstr "Animations-Node"
-
-#: editor/animation_track_editor.cpp
-msgid "Remove Anim Track"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Create NEW track for %s and insert key?"
-msgstr "Willst du eine neue Ebene inklusiv Bild in %s einfügen?"
-
-#: editor/animation_track_editor.cpp
-msgid "Create %d NEW tracks and insert keys?"
-msgstr "Erstelle %d in neuer Ebene inklusiv Bild?"
-
-#: editor/animation_track_editor.cpp editor/create_dialog.cpp
-#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp
-#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
-#: editor/plugins/abstract_polygon_2d_editor.cpp
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/particles_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#: editor/script_create_dialog.cpp
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Create"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Insert"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "AnimationPlayer can't animate itself, only other players."
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Create & Insert"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Insert Track & Key"
-msgstr "Anim Ebene und Bild einfügen"
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Insert Key"
-msgstr "Anim Bild einfügen"
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Change Animation Step"
-msgstr "Bild einfügen"
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Rearrange Tracks"
-msgstr "Node erstellen"
-
-#: editor/animation_track_editor.cpp
-msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid ""
-"Audio tracks can only point to nodes of type:\n"
-"-AudioStreamPlayer\n"
-"-AudioStreamPlayer2D\n"
-"-AudioStreamPlayer3D"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "An animation player can't animate itself, only other players."
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Not possible to add a new track without a root"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Add Bezier Track"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Track path is invalid, so can't add a key."
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Track is not of type Spatial, can't insert key"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Add Transform Track Key"
-msgstr "Transformationstyp"
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Add Track Key"
-msgstr "Anim Ebene und Bild einfügen"
-
-#: editor/animation_track_editor.cpp
-msgid "Track path is invalid, so can't add a method key."
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Add Method Track Key"
-msgstr "Anim Ebene und Bild einfügen"
-
-#: editor/animation_track_editor.cpp
-msgid "Method not found in object: "
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Move Keys"
-msgstr "Anim Bilder bewegen"
-
-#: editor/animation_track_editor.cpp
-msgid "Clipboard is empty"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Node erstellen"
-
-#: editor/animation_track_editor.cpp
-msgid "Anim Scale Keys"
-msgstr "Anim verlängern"
-
-#: editor/animation_track_editor.cpp
-msgid ""
-"This option does not work for Bezier editing, as it's only a single track."
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid ""
-"This animation belongs to an imported scene, so changes to imported tracks "
-"will not be saved.\n"
-"\n"
-"To enable the ability to add custom tracks, navigate to the scene's import "
-"settings and set\n"
-"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks"
-"\", then re-import.\n"
-"Alternatively, use an import preset that imports animations to separate "
-"files."
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Warning: Editing imported animation"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Select an AnimationPlayer node to create and edit animations."
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Only show tracks from nodes selected in tree."
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Group tracks by node or display them as plain list."
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Snap:"
-msgstr "Selektiere Node(s) zum Importieren aus"
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Animation step value."
-msgstr "Animations-Node"
-
-#: editor/animation_track_editor.cpp
-msgid "Seconds"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/animation_track_editor.cpp editor/editor_properties.cpp
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-#: editor/plugins/tile_set_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/property_editor.cpp
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Edit"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Animation properties."
-msgstr "Animations-Node"
-
-#: editor/animation_track_editor.cpp
-msgid "Copy Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Scale Selection"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Scale From Cursor"
-msgstr ""
-
-#: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Duplicate Selection"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Duplicate Transposed"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Delete Selection"
-msgstr "Script hinzufügen"
-
-#: editor/animation_track_editor.cpp
-msgid "Go to Next Step"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Go to Previous Step"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Optimize Animation"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Clean-Up Animation"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Pick the node that will be animated:"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Use Bezier Curves"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Anim. Optimizer"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Max. Linear Error:"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Max. Angular Error:"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Max Optimizable Angle:"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Optimize"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Remove invalid keys"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/animation_track_editor.cpp
-msgid "Remove unresolved and empty tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Clean-up all animations"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Clean-Up"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Scale Ratio:"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-msgid "Select Tracks to Copy"
-msgstr ""
-
-#: editor/animation_track_editor.cpp editor/editor_log.cpp
-#: editor/editor_properties.cpp
-#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
-msgid "Copy"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Select All/None"
-msgstr "Node(s) löschen"
-
-#: editor/animation_track_editor_plugins.cpp
-msgid "Add Audio Track Clip"
-msgstr ""
-
-#: editor/animation_track_editor_plugins.cpp
-msgid "Change Audio Track Clip Start Offset"
-msgstr ""
-
-#: editor/animation_track_editor_plugins.cpp
-msgid "Change Audio Track Clip End Offset"
-msgstr ""
-
-#: editor/array_property_edit.cpp
-msgid "Resize Array"
-msgstr ""
-
-#: editor/array_property_edit.cpp
-msgid "Change Array Value Type"
-msgstr ""
-
-#: editor/array_property_edit.cpp
-msgid "Change Array Value"
-msgstr ""
-
-#: editor/code_editor.cpp
-msgid "Go to Line"
-msgstr ""
-
-#: editor/code_editor.cpp
-msgid "Line Number:"
-msgstr ""
-
-#: editor/code_editor.cpp
-msgid "%d replaced."
-msgstr ""
-
-#: editor/code_editor.cpp editor/editor_help.cpp
-msgid "%d match."
-msgstr ""
-
-#: editor/code_editor.cpp editor/editor_help.cpp
-msgid "%d matches."
-msgstr ""
-
-#: editor/code_editor.cpp editor/find_in_files.cpp
-msgid "Match Case"
-msgstr ""
-
-#: editor/code_editor.cpp editor/find_in_files.cpp
-msgid "Whole Words"
-msgstr ""
-
-#: editor/code_editor.cpp editor/rename_dialog.cpp
-msgid "Replace"
-msgstr ""
-
-#: editor/code_editor.cpp
-msgid "Replace All"
-msgstr ""
-
-#: editor/code_editor.cpp
-msgid "Selection Only"
-msgstr ""
-
-#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp
-#: editor/plugins/text_editor.cpp
-msgid "Standard"
-msgstr ""
-
-#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
-msgid "Toggle Scripts Panel"
-msgstr ""
-
-#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/texture_region_editor_plugin.cpp
-#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
-msgid "Zoom In"
-msgstr ""
-
-#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/texture_region_editor_plugin.cpp
-#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
-msgid "Zoom Out"
-msgstr ""
-
-#: editor/code_editor.cpp
-msgid "Reset Zoom"
-msgstr ""
-
-#: editor/code_editor.cpp
-msgid "Warnings"
-msgstr ""
-
-#: editor/code_editor.cpp
-msgid "Line and column numbers."
-msgstr ""
-
-#: editor/connections_dialog.cpp
-#, fuzzy
-msgid "Method in target node must be specified."
-msgstr "Die Methode muss im Ziel Node definiert werden!"
-
-#: editor/connections_dialog.cpp
-msgid ""
-"Target method not found. Specify a valid method or attach a script to the "
-"target node."
-msgstr ""
-
-#: editor/connections_dialog.cpp
-#, fuzzy
-msgid "Connect to Node:"
-msgstr "Verbindung zu Node:"
-
-#: editor/connections_dialog.cpp
-#, fuzzy
-msgid "Connect to Script:"
-msgstr "Verbindung zu Node:"
-
-#: editor/connections_dialog.cpp
-#, fuzzy
-msgid "From Signal:"
-msgstr "Connections editieren"
-
-#: editor/connections_dialog.cpp
-#, fuzzy
-msgid "Scene does not contain any script."
-msgstr "Node enthält keine Geometrie (Flächen)."
-
-#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
-#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
-msgid "Add"
-msgstr ""
-
-#: editor/connections_dialog.cpp editor/dependency_editor.cpp
-#: editor/editor_feature_profile.cpp editor/groups_editor.cpp
-#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp
-msgid "Remove"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Add Extra Call Argument:"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Extra Call Arguments:"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-#, fuzzy
-msgid "Receiver Method:"
-msgstr "Node erstellen"
-
-#: editor/connections_dialog.cpp
-msgid "Advanced"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Deferred"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid ""
-"Defers the signal, storing it in a queue and only firing it at idle time."
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Oneshot"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Disconnects the signal after its first emission."
-msgstr ""
-
-#: editor/connections_dialog.cpp
-#, fuzzy
-msgid "Cannot connect signal"
-msgstr "Connections editieren"
-
-#: editor/connections_dialog.cpp editor/dependency_editor.cpp
-#: editor/export_template_manager.cpp editor/groups_editor.cpp
-#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-#: editor/plugins/version_control_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/property_editor.cpp
-#: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Close"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Connect"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-#, fuzzy
-msgid "Signal:"
-msgstr "Script hinzufügen"
-
-#: editor/connections_dialog.cpp
-msgid "Connect '%s' to '%s'"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Disconnect '%s' from '%s'"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Disconnect all from signal: '%s'"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Connect..."
-msgstr ""
-
-#: editor/connections_dialog.cpp
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Disconnect"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-#, fuzzy
-msgid "Connect a Signal to a Method"
-msgstr "Connections editieren"
-
-#: editor/connections_dialog.cpp
-#, fuzzy
-msgid "Edit Connection:"
-msgstr "Connections editieren"
-
-#: editor/connections_dialog.cpp
-msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
-msgstr ""
-
-#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
-msgid "Signals"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Are you sure you want to remove all connections from this signal?"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Disconnect All"
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Edit..."
-msgstr ""
-
-#: editor/connections_dialog.cpp
-msgid "Go To Method"
-msgstr ""
-
-#: editor/create_dialog.cpp
-#, fuzzy
-msgid "Change %s Type"
-msgstr "Typ ändern"
-
-#: editor/create_dialog.cpp editor/project_settings_editor.cpp
-#, fuzzy
-msgid "Change"
-msgstr "Typ ändern"
-
-#: editor/create_dialog.cpp
-#, fuzzy
-msgid "Create New %s"
-msgstr "Node erstellen"
-
-#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
-#: editor/filesystem_dock.cpp
-msgid "Favorites:"
-msgstr ""
-
-#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
-msgid "Recent:"
-msgstr ""
-
-#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
-#: modules/visual_script/visual_script_property_selector.cpp
-msgid "Search:"
-msgstr ""
-
-#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
-#: modules/visual_script/visual_script_property_selector.cpp
-msgid "Matches:"
-msgstr ""
-
-#: editor/create_dialog.cpp editor/editor_plugin_settings.cpp
-#: editor/plugin_config_dialog.cpp
-#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp
-#: modules/visual_script/visual_script_property_selector.cpp
-msgid "Description:"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Search Replacement For:"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Dependencies For:"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid ""
-"Scene '%s' is currently being edited.\n"
-"Changes will only take effect when reloaded."
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid ""
-"Resource '%s' is in use.\n"
-"Changes will only take effect when reloaded."
-msgstr ""
-
-#: editor/dependency_editor.cpp
-#: modules/gdnative/gdnative_library_editor_plugin.cpp
-msgid "Dependencies"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Resource"
-msgstr ""
-
-#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp
-#: editor/project_manager.cpp editor/project_settings_editor.cpp
-msgid "Path"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Dependencies:"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Fix Broken"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Dependency Editor"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Search Replacement Resource:"
-msgstr ""
-
-#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp
-#: editor/editor_help_search.cpp editor/editor_node.cpp
-#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
-#: editor/script_create_dialog.cpp
-#: modules/visual_script/visual_script_property_selector.cpp
-#: scene/gui/file_dialog.cpp
-msgid "Open"
-msgstr "Öffnen"
-
-#: editor/dependency_editor.cpp
-msgid "Owners Of:"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Remove selected files from the project? (Can't be restored)"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid ""
-"The files being removed are required by other resources in order for them to "
-"work.\n"
-"Remove them anyway? (no undo)"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Cannot remove:"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Error loading:"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-#, fuzzy
-msgid "Load failed due to missing dependencies:"
-msgstr "Szene '%s' hat kapute Abhängigkeiten:"
-
-#: editor/dependency_editor.cpp editor/editor_node.cpp
-msgid "Open Anyway"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Which action should be taken?"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Fix Dependencies"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Errors loading!"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Show Dependencies"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Orphan Resource Explorer"
-msgstr ""
-
-#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_file_dialog.cpp editor/editor_node.cpp
-#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
-#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
-msgid "Delete"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Owns"
-msgstr ""
-
-#: editor/dependency_editor.cpp
-msgid "Resources Without Explicit Ownership:"
-msgstr ""
-
-#: editor/dictionary_property_edit.cpp
-msgid "Change Dictionary Key"
-msgstr ""
-
-#: editor/dictionary_property_edit.cpp
-#, fuzzy
-msgid "Change Dictionary Value"
-msgstr "Typ ändern"
-
-#: editor/editor_about.cpp
-msgid "Thanks from the Godot community!"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "Godot Engine contributors"
-msgstr ""
-
-#: editor/editor_about.cpp
-#, fuzzy
-msgid "Project Founders"
-msgstr "Projekt exportieren"
-
-#: editor/editor_about.cpp
-msgid "Lead Developer"
-msgstr ""
-
-#: editor/editor_about.cpp
-#, fuzzy
-msgid "Project Manager "
-msgstr "Projektname:"
-
-#: editor/editor_about.cpp
-msgid "Developers"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "Authors"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "Platinum Sponsors"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "Gold Sponsors"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "Mini Sponsors"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "Gold Donors"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "Silver Donors"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "Bronze Donors"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "Donors"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "License"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "Third-party Licenses"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid ""
-"Godot Engine relies on a number of third-party free and open source "
-"libraries, all compatible with the terms of its MIT license. The following "
-"is an exhaustive list of all such third-party components with their "
-"respective copyright statements and license terms."
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "All Components"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "Components"
-msgstr ""
-
-#: editor/editor_about.cpp
-msgid "Licenses"
-msgstr ""
-
-#: editor/editor_asset_installer.cpp editor/project_manager.cpp
-msgid "Error opening package file, not in ZIP format."
-msgstr ""
-
-#: editor/editor_asset_installer.cpp
-msgid "%s (Already Exists)"
-msgstr ""
-
-#: editor/editor_asset_installer.cpp
-msgid "Uncompressing Assets"
-msgstr ""
-
-#: editor/editor_asset_installer.cpp editor/project_manager.cpp
-msgid "The following files failed extraction from package:"
-msgstr ""
-
-#: editor/editor_asset_installer.cpp
-#, fuzzy
-msgid "And %s more files."
-msgstr "Node erstellen"
-
-#: editor/editor_asset_installer.cpp editor/project_manager.cpp
-msgid "Package installed successfully!"
-msgstr ""
-
-#: editor/editor_asset_installer.cpp
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Success!"
-msgstr ""
-
-#: editor/editor_asset_installer.cpp
-msgid "Package Contents:"
-msgstr ""
-
-#: editor/editor_asset_installer.cpp editor/editor_node.cpp
-msgid "Install"
-msgstr ""
-
-#: editor/editor_asset_installer.cpp
-msgid "Package Installer"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Speakers"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Add Effect"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Rename Audio Bus"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-#, fuzzy
-msgid "Change Audio Bus Volume"
-msgstr "Autoplay Umschalten"
-
-#: editor/editor_audio_buses.cpp
-#, fuzzy
-msgid "Toggle Audio Bus Solo"
-msgstr "Autoplay Umschalten"
-
-#: editor/editor_audio_buses.cpp
-msgid "Toggle Audio Bus Mute"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Toggle Audio Bus Bypass Effects"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Select Audio Bus Send"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Add Audio Bus Effect"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Move Bus Effect"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Delete Bus Effect"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Drag & drop to rearrange."
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Solo"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Mute"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Bypass"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Bus options"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
-#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "Duplicate"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Reset Volume"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Delete Effect"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Audio"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Add Audio Bus"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Master bus can't be deleted!"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-#, fuzzy
-msgid "Delete Audio Bus"
-msgstr "Bild einfügen"
-
-#: editor/editor_audio_buses.cpp
-#, fuzzy
-msgid "Duplicate Audio Bus"
-msgstr "Node(s) duplizieren"
-
-#: editor/editor_audio_buses.cpp
-msgid "Reset Bus Volume"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-#, fuzzy
-msgid "Move Audio Bus"
-msgstr "Bild bewegen/einfügen"
-
-#: editor/editor_audio_buses.cpp
-msgid "Save Audio Bus Layout As..."
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Location for New Layout..."
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Open Audio Bus Layout"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "There is no '%s' file."
-msgstr ""
-
-#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Layout"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Invalid file, not an audio bus layout."
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-#, fuzzy
-msgid "Error saving file: %s"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/editor_audio_buses.cpp
-msgid "Add Bus"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Add a new Audio Bus to this layout."
-msgstr ""
-
-#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
-#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
-#: editor/script_create_dialog.cpp
-msgid "Load"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Load an existing Bus Layout."
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Save As"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Save this Bus Layout to a file."
-msgstr ""
-
-#: editor/editor_audio_buses.cpp editor/import_dock.cpp
-msgid "Load Default"
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Load the default Bus Layout."
-msgstr ""
-
-#: editor/editor_audio_buses.cpp
-msgid "Create a new Bus Layout."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Invalid name."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Valid characters:"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Must not collide with an existing engine class name."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Must not collide with an existing built-in type name."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Must not collide with an existing global constant name."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Keyword cannot be used as an autoload name."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Autoload '%s' already exists!"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Rename Autoload"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Toggle AutoLoad Globals"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Move Autoload"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Remove Autoload"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp
-msgid "Enable"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Rearrange Autoloads"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "Projektname:"
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Add AutoLoad"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp
-#: editor/editor_plugin_settings.cpp
-#: editor/plugins/animation_tree_editor_plugin.cpp
-#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp
-msgid "Path:"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Node Name:"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp
-#: editor/editor_profiler.cpp editor/project_manager.cpp
-#: editor/settings_config_dialog.cpp
-msgid "Name"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "Singleton"
-msgstr ""
-
-#: editor/editor_data.cpp editor/inspector_dock.cpp
-msgid "Paste Params"
-msgstr ""
-
-#: editor/editor_data.cpp
-msgid "Updating Scene"
-msgstr ""
-
-#: editor/editor_data.cpp
-msgid "Storing local changes..."
-msgstr ""
-
-#: editor/editor_data.cpp
-msgid "Updating scene..."
-msgstr ""
-
-#: editor/editor_data.cpp editor/editor_properties.cpp
-msgid "[empty]"
-msgstr ""
-
-#: editor/editor_data.cpp
-msgid "[unsaved]"
-msgstr ""
-
-#: editor/editor_dir_dialog.cpp
-msgid "Please select a base directory first."
-msgstr ""
-
-#: editor/editor_dir_dialog.cpp
-msgid "Choose a Directory"
-msgstr ""
-
-#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
-#: editor/filesystem_dock.cpp editor/project_manager.cpp
-#: scene/gui/file_dialog.cpp
-msgid "Create Folder"
-msgstr ""
-
-#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
-#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
-#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
-#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
-msgid "Name:"
-msgstr ""
-
-#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
-#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
-msgid "Could not create folder."
-msgstr ""
-
-#: editor/editor_dir_dialog.cpp
-msgid "Choose"
-msgstr ""
-
-#: editor/editor_export.cpp
-msgid "Storing File:"
-msgstr ""
-
-#: editor/editor_export.cpp
-msgid "No export template found at the expected path:"
-msgstr ""
-
-#: editor/editor_export.cpp
-msgid "Packing"
-msgstr ""
-
-#: editor/editor_export.cpp
-msgid ""
-"Target platform requires 'ETC' texture compression for GLES2. Enable 'Import "
-"Etc' in Project Settings."
-msgstr ""
-
-#: editor/editor_export.cpp
-msgid ""
-"Target platform requires 'ETC2' texture compression for GLES3. Enable "
-"'Import Etc 2' in Project Settings."
-msgstr ""
-
-#: editor/editor_export.cpp
-msgid ""
-"Target platform requires 'ETC' texture compression for the driver fallback "
-"to GLES2.\n"
-"Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback "
-"Enabled'."
-msgstr ""
-
-#: editor/editor_export.cpp platform/android/export/export.cpp
-#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
-#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
-msgid "Custom debug template not found."
-msgstr ""
-
-#: editor/editor_export.cpp platform/android/export/export.cpp
-#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
-#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
-msgid "Custom release template not found."
-msgstr ""
-
-#: editor/editor_export.cpp platform/javascript/export/export.cpp
-msgid "Template file not found:"
-msgstr ""
-
-#: editor/editor_export.cpp
-msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "3D Editor"
-msgstr "Verzeichnis öffnen"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Script Editor"
-msgstr "Verzeichnis öffnen"
-
-#: editor/editor_feature_profile.cpp
-msgid "Asset Library"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-msgid "Scene Tree Editing"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Import Dock"
-msgstr "Importierte Projekte"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Node Dock"
-msgstr "Bild bewegen/einfügen"
-
-#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-msgid "Erase profile '%s'? (no undo)"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-msgid "Profile must be a valid filename and must not contain '.'"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-msgid "Profile with this name already exists."
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-msgid "(Editor Disabled, Properties Disabled)"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-msgid "(Properties Disabled)"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "(Editor Disabled)"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Class Options:"
-msgstr "Script hinzufügen"
-
-#: editor/editor_feature_profile.cpp
-msgid "Enable Contextual Editor"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Enabled Properties:"
-msgstr "Node erstellen"
-
-#: editor/editor_feature_profile.cpp
-msgid "Enabled Features:"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-msgid "Enabled Classes:"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-msgid "File '%s' format is invalid, import aborted."
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-msgid ""
-"Profile '%s' already exists. Remove it first before importing, import "
-"aborted."
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Error saving profile to path: '%s'."
-msgstr "Fehler beim Instanzieren der %s Szene"
-
-#: editor/editor_feature_profile.cpp
-msgid "Unset"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Current Profile:"
-msgstr "Node(s) löschen"
-
-#: editor/editor_feature_profile.cpp
-msgid "Make Current"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "New"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp editor/editor_node.cpp
-#: editor/project_manager.cpp
-msgid "Import"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp editor/project_export.cpp
-msgid "Export"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Available Profiles:"
-msgstr "TimeScale-Node"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Class Options"
-msgstr "Script hinzufügen"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "New profile name:"
-msgstr "Node"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Erase Profile"
-msgstr "Oberfläche %d"
-
-#: editor/editor_feature_profile.cpp
-msgid "Godot Feature Profile"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Import Profile(s)"
-msgstr "Importierte Projekte"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Export Profile"
-msgstr "Projekt exportieren"
-
-#: editor/editor_feature_profile.cpp
-msgid "Manage Editor Feature Profiles"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
-msgid "Select Current Folder"
-msgstr "Node(s) löschen"
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "File Exists, Overwrite?"
-msgstr "Datei existiert, Ãœberschreiben?"
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
-msgid "Select This Folder"
-msgstr "Node(s) löschen"
-
-#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Open in File Manager"
-msgstr "Datei öffnen"
-
-#: editor/editor_file_dialog.cpp editor/editor_node.cpp
-#: editor/filesystem_dock.cpp editor/project_manager.cpp
-#, fuzzy
-msgid "Show in File Manager"
-msgstr "Datei öffnen"
-
-#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-msgid "New Folder..."
-msgstr ""
-
-#: editor/editor_file_dialog.cpp editor/find_in_files.cpp
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "All Recognized"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "All Files (*)"
-msgstr "Alle Dateien (*)"
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "Open a File"
-msgstr "Datei öffnen"
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "Open File(s)"
-msgstr "Datei(en) öffnen"
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "Open a Directory"
-msgstr "Verzeichnis öffnen"
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "Open a File or Directory"
-msgstr "Datei oder Verzeichnis öffnen"
-
-#: editor/editor_file_dialog.cpp editor/editor_node.cpp
-#: editor/editor_properties.cpp editor/inspector_dock.cpp
-#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp scene/gui/file_dialog.cpp
-msgid "Save"
-msgstr "Speichern"
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "Save a File"
-msgstr "Datei speichern"
-
-#: editor/editor_file_dialog.cpp
-msgid "Go Back"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
-msgid "Go Forward"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
-msgid "Go Up"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
-msgid "Toggle Hidden Files"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
-msgid "Toggle Favorite"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
-msgid "Toggle Mode"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
-msgid "Focus Path"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
-msgid "Move Favorite Up"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
-msgid "Move Favorite Down"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
-#, fuzzy
-msgid "Go to previous folder."
-msgstr "Node erstellen"
-
-#: editor/editor_file_dialog.cpp
-#, fuzzy
-msgid "Go to next folder."
-msgstr "Node erstellen"
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
-msgid "Go to parent folder."
-msgstr "Node erstellen"
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "Refresh files."
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
-msgid "(Un)favorite current folder."
-msgstr ""
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "Toggle the visibility of hidden files."
-msgstr ""
-
-#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-msgid "View items as a grid of thumbnails."
-msgstr ""
-
-#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-msgid "View items as a list."
-msgstr ""
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "Directories & Files:"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
-#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Preview:"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "File:"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-msgid "Must use a valid extension."
-msgstr ""
-
-#: editor/editor_file_system.cpp
-msgid "ScanSources"
-msgstr ""
-
-#: editor/editor_file_system.cpp
-msgid ""
-"There are multiple importers for different types pointing to file %s, import "
-"aborted"
-msgstr ""
-
-#: editor/editor_file_system.cpp
-msgid "(Re)Importing Assets"
-msgstr ""
-
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
-msgid "Top"
-msgstr ""
-
-#: editor/editor_help.cpp
-msgid "Class:"
-msgstr ""
-
-#: editor/editor_help.cpp editor/scene_tree_editor.cpp
-#: editor/script_create_dialog.cpp
-msgid "Inherits:"
-msgstr ""
-
-#: editor/editor_help.cpp
-msgid "Inherited by:"
-msgstr ""
-
-#: editor/editor_help.cpp
-#, fuzzy
-msgid "Description"
-msgstr "Script hinzufügen"
-
-#: editor/editor_help.cpp
-msgid "Online Tutorials"
-msgstr ""
-
-#: editor/editor_help.cpp
-msgid "Properties"
-msgstr ""
-
-#: editor/editor_help.cpp
-msgid "override:"
-msgstr ""
-
-#: editor/editor_help.cpp
-msgid "default:"
-msgstr ""
-
-#: editor/editor_help.cpp
-msgid "Methods"
-msgstr ""
-
-#: editor/editor_help.cpp
-#, fuzzy
-msgid "Theme Properties"
-msgstr "Node erstellen"
-
-#: editor/editor_help.cpp
-msgid "Enumerations"
-msgstr ""
-
-#: editor/editor_help.cpp
-msgid "Constants"
-msgstr ""
-
-#: editor/editor_help.cpp
-#, fuzzy
-msgid "Property Descriptions"
-msgstr "Script hinzufügen"
-
-#: editor/editor_help.cpp
-msgid "(value)"
-msgstr ""
-
-#: editor/editor_help.cpp
-msgid ""
-"There is currently no description for this property. Please help us by "
-"[color=$color][url=$url]contributing one[/url][/color]!"
-msgstr ""
-
-#: editor/editor_help.cpp
-#, fuzzy
-msgid "Method Descriptions"
-msgstr "Script hinzufügen"
-
-#: editor/editor_help.cpp
-msgid ""
-"There is currently no description for this method. Please help us by [color="
-"$color][url=$url]contributing one[/url][/color]!"
-msgstr ""
-
-#: editor/editor_help_search.cpp editor/editor_node.cpp
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Search Help"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Case Sensitive"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Show Hierarchy"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Display All"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Classes Only"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Methods Only"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Signals Only"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Constants Only"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Properties Only"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Theme Properties Only"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Member Type"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Class"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Method"
-msgstr ""
-
-#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Signal"
-msgstr "Script hinzufügen"
-
-#: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp
-msgid "Constant"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-msgid "Property"
-msgstr ""
-
-#: editor/editor_help_search.cpp
-#, fuzzy
-msgid "Theme Property"
-msgstr "Node erstellen"
-
-#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
-msgid "Property:"
-msgstr ""
-
-#: editor/editor_inspector.cpp
-msgid "Set"
-msgstr ""
-
-#: editor/editor_inspector.cpp
-msgid "Set Multiple:"
-msgstr ""
-
-#: editor/editor_log.cpp
-msgid "Output:"
-msgstr ""
-
-#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
-msgid "Copy Selection"
-msgstr "Script hinzufügen"
-
-#: editor/editor_log.cpp editor/editor_network_profiler.cpp
-#: editor/editor_profiler.cpp editor/editor_properties.cpp
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-#: editor/property_editor.cpp editor/scene_tree_dock.cpp
-#: editor/script_editor_debugger.cpp
-#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
-#: scene/gui/text_edit.cpp
-msgid "Clear"
-msgstr ""
-
-#: editor/editor_log.cpp
-#, fuzzy
-msgid "Clear Output"
-msgstr "Script hinzufügen"
-
-#: editor/editor_network_profiler.cpp editor/editor_node.cpp
-#: editor/editor_profiler.cpp
-msgid "Stop"
-msgstr ""
-
-#: editor/editor_network_profiler.cpp editor/editor_profiler.cpp
-#: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp
-msgid "Start"
-msgstr ""
-
-#: editor/editor_network_profiler.cpp
-msgid "%s/s"
-msgstr ""
-
-#: editor/editor_network_profiler.cpp
-msgid "Down"
-msgstr ""
-
-#: editor/editor_network_profiler.cpp
-msgid "Up"
-msgstr ""
-
-#: editor/editor_network_profiler.cpp editor/editor_node.cpp
-msgid "Node"
-msgstr "Node"
-
-#: editor/editor_network_profiler.cpp
-msgid "Incoming RPC"
-msgstr ""
-
-#: editor/editor_network_profiler.cpp
-msgid "Incoming RSET"
-msgstr ""
-
-#: editor/editor_network_profiler.cpp
-msgid "Outgoing RPC"
-msgstr ""
-
-#: editor/editor_network_profiler.cpp
-msgid "Outgoing RSET"
-msgstr ""
-
-#: editor/editor_node.cpp editor/project_manager.cpp
-msgid "New Window"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Imported resources can't be saved."
-msgstr ""
-
-#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
-#: scene/gui/dialogs.cpp
-msgid "OK"
-msgstr "Okay"
-
-#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
-msgid "Error saving resource!"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"This resource can't be saved because it does not belong to the edited scene. "
-"Make it unique first."
-msgstr ""
-
-#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
-msgid "Save Resource As..."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Can't open file for writing:"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Requested file format unknown:"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Error while saving."
-msgstr ""
-
-#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
-msgid "Can't open '%s'. The file could have been moved or deleted."
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Error while parsing '%s'."
-msgstr "Fehler beim Instanzieren der %s Szene"
-
-#: editor/editor_node.cpp
-msgid "Unexpected end of file '%s'."
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Missing '%s' or its dependencies."
-msgstr "Szene '%s' hat kapute Abhängigkeiten:"
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Error while loading '%s'."
-msgstr "Fehler beim Instanzieren der %s Szene"
-
-#: editor/editor_node.cpp
-msgid "Saving Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Analyzing"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Creating Thumbnail"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "This operation can't be done without a tree root."
-msgstr "Ohne eine Szene kann das nicht funktionieren."
-
-#: editor/editor_node.cpp
-msgid ""
-"This scene can't be saved because there is a cyclic instancing inclusion.\n"
-"Please resolve it and then attempt to save again."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"Couldn't save scene. Likely dependencies (instances or inheritance) couldn't "
-"be satisfied."
-msgstr ""
-
-#: editor/editor_node.cpp editor/scene_tree_dock.cpp
-msgid "Can't overwrite scene that is still open!"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Can't load MeshLibrary for merging!"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Error saving MeshLibrary!"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Can't load TileSet for merging!"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Error saving TileSet!"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Error trying to save layout!"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Default editor layout overridden."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Layout name not found!"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Restored default layout to base settings."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"This resource belongs to a scene that was imported, so it's not editable.\n"
-"Please read the documentation relevant to importing scenes to better "
-"understand this workflow."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"This resource belongs to a scene that was instanced or inherited.\n"
-"Changes to it won't be kept when saving the current scene."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"This resource was imported, so it's not editable. Change its settings in the "
-"import panel and then re-import."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"This scene was imported, so changes to it won't be kept.\n"
-"Instancing it or inheriting will allow making changes to it.\n"
-"Please read the documentation relevant to importing scenes to better "
-"understand this workflow."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"This is a remote object, so changes to it won't be kept.\n"
-"Please read the documentation relevant to debugging to better understand "
-"this workflow."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "There is no defined scene to run."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Could not start subprocess!"
-msgstr ""
-
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-msgid "Open Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Open Base Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Quick Open..."
-msgstr "Öffnen"
-
-#: editor/editor_node.cpp
-msgid "Quick Open Scene..."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Quick Open Script..."
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Save & Close"
-msgstr "Datei speichern"
-
-#: editor/editor_node.cpp
-msgid "Save changes to '%s' before closing?"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Saved %s modified resource(s)."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "A root node is required to save the scene."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Save Scene As..."
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "No"
-msgstr "Node"
-
-#: editor/editor_node.cpp
-msgid "Yes"
-msgstr "Ja"
-
-#: editor/editor_node.cpp
-msgid "This scene has never been saved. Save before running?"
-msgstr ""
-
-#: editor/editor_node.cpp editor/scene_tree_dock.cpp
-msgid "This operation can't be done without a scene."
-msgstr "Ohne eine Szene kann das nicht funktionieren."
-
-#: editor/editor_node.cpp
-msgid "Export Mesh Library"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "This operation can't be done without a root node."
-msgstr "Ohne eine Szene kann das nicht funktionieren."
-
-#: editor/editor_node.cpp
-msgid "Export Tile Set"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "This operation can't be done without a selected node."
-msgstr "Ohne eine Szene kann das nicht funktionieren."
-
-#: editor/editor_node.cpp
-msgid "Current scene not saved. Open anyway?"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Can't reload a scene that was never saved."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Quick Run Scene..."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Quit"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Exit the editor?"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Open Project Manager?"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Save & Quit"
-msgstr "Datei speichern"
-
-#: editor/editor_node.cpp
-msgid "Save changes to the following scene(s) before quitting?"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Save changes the following scene(s) before opening Project Manager?"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"This option is deprecated. Situations where refresh must be forced are now "
-"considered a bug. Please report."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Pick a Main Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Close Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Reopen Closed Scene"
-msgstr "Datei(en) öffnen"
-
-#: editor/editor_node.cpp
-msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Unable to load addon script from path: '%s'."
-msgstr "Fehler beim Instanzieren der %s Szene"
-
-#: editor/editor_node.cpp
-msgid ""
-"Unable to load addon script from path: '%s' There seems to be an error in "
-"the code, please check the syntax."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"Scene '%s' was automatically imported, so it can't be modified.\n"
-"To make changes to it, a new inherited scene can be created."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"Error loading scene, it must be inside the project path. Use 'Import' to "
-"open the scene, then save it inside the project path."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Scene '%s' has broken dependencies:"
-msgstr "Szene '%s' hat kapute Abhängigkeiten:"
-
-#: editor/editor_node.cpp
-msgid "Clear Recent Scenes"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"No main scene has ever been defined, select one?\n"
-"You can change it later in \"Project Settings\" under the 'application' "
-"category."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"Selected scene '%s' does not exist, select a valid one?\n"
-"You can change it later in \"Project Settings\" under the 'application' "
-"category."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"Selected scene '%s' is not a scene file, select a valid one?\n"
-"You can change it later in \"Project Settings\" under the 'application' "
-"category."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Save Layout"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr ""
-
-#: editor/editor_node.cpp editor/import_dock.cpp
-#: editor/script_create_dialog.cpp
-msgid "Default"
-msgstr ""
-
-#: editor/editor_node.cpp editor/editor_properties.cpp
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
-#, fuzzy
-msgid "Show in FileSystem"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Play This Scene"
-msgstr "Szene starten"
-
-#: editor/editor_node.cpp
-msgid "Close Tab"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Undo Close Tab"
-msgstr ""
-
-#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
-msgid "Close Other Tabs"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Close Tabs to the Right"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Close All Tabs"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Switch Scene Tab"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "%d more files or folders"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "%d more folders"
-msgstr "Node erstellen"
-
-#: editor/editor_node.cpp
-msgid "%d more files"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Dock Position"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Distraction Free Mode"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Toggle distraction-free mode."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Add a new scene."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Go to previously opened scene."
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Copy Text"
-msgstr "Script hinzufügen"
-
-#: editor/editor_node.cpp
-msgid "Next tab"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Previous tab"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Filter Files..."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Operations with scene files."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "New Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "New Inherited Scene..."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Open Scene..."
-msgstr ""
-
-#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
-msgid "Open Recent"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Save Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Save All Scenes"
-msgstr "Neue Szene speichern als..."
-
-#: editor/editor_node.cpp
-msgid "Convert To..."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "MeshLibrary..."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "TileSet..."
-msgstr ""
-
-#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
-msgid "Undo"
-msgstr ""
-
-#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
-msgid "Redo"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Miscellaneous project or scene-wide tools."
-msgstr "Verschiedene Projekte oder Szenenweite Werkzeuge."
-
-#: editor/editor_node.cpp editor/project_manager.cpp
-#: editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Project"
-msgstr "Projektname:"
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Project Settings..."
-msgstr "Projekteinstellungen"
-
-#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
-msgid "Version Control"
-msgstr ""
-
-#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
-msgid "Set Up Version Control"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Shut Down Version Control"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Export..."
-msgstr "Projekt exportieren"
-
-#: editor/editor_node.cpp
-msgid "Install Android Build Template..."
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Open Project Data Folder"
-msgstr "Projekt exportieren"
-
-#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
-msgid "Tools"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Orphan Resource Explorer..."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Quit to Project List"
-msgstr "Zurück zur Projektliste"
-
-#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/project_export.cpp
-msgid "Debug"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Deploy with Remote Debug"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
-"The filesystem will be provided from the project by the editor over the "
-"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Visible Collision Shapes"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
-msgstr ""
-"Collision-Formen und Raycast Nodes (für 2D und 3D) werden im laufenden Spiel "
-"angezeigt, falls diese Option aktiviert ist."
-
-#: editor/editor_node.cpp
-msgid "Visible Navigation"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Sync Script Changes"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
-msgstr ""
-
-#: editor/editor_node.cpp editor/script_create_dialog.cpp
-msgid "Editor"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Editor Settings..."
-msgstr "Connections editieren"
-
-#: editor/editor_node.cpp
-msgid "Editor Layout"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Take Screenshot"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Screenshots are stored in the Editor Data/Settings Folder."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Toggle Fullscreen"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Toggle System Console"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Open Editor Data/Settings Folder"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Open Editor Data Folder"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Open Editor Settings Folder"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Manage Editor Features..."
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Manage Export Templates..."
-msgstr "Ungültige Bilder löschen"
-
-#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
-msgid "Help"
-msgstr ""
-
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
-msgid "Search"
-msgstr ""
-
-#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/plugins/shader_editor_plugin.cpp
-msgid "Online Docs"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Q&A"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Report a Bug"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Send Docs Feedback"
-msgstr ""
-
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-msgid "Community"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "About"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Play the project."
-msgstr "Projekt starten."
-
-#: editor/editor_node.cpp
-msgid "Play"
-msgstr "Abspielen"
-
-#: editor/editor_node.cpp
-msgid "Pause the scene execution for debugging."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Pause Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Stop the scene."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Play the edited scene."
-msgstr "Spiele die editierte Szene."
-
-#: editor/editor_node.cpp
-msgid "Play Scene"
-msgstr "Szene starten"
-
-#: editor/editor_node.cpp
-msgid "Play custom scene"
-msgstr "Spiele angepasste Szene"
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Play Custom Scene"
-msgstr "Spiele angepasste Szene"
-
-#: editor/editor_node.cpp
-msgid "Changing the video driver requires restarting the editor."
-msgstr ""
-
-#: editor/editor_node.cpp editor/project_settings_editor.cpp
-#: editor/settings_config_dialog.cpp
-#, fuzzy
-msgid "Save & Restart"
-msgstr "Datei speichern"
-
-#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Update Continuously"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Update When Changed"
-msgstr "Typ ändern"
-
-#: editor/editor_node.cpp
-msgid "Hide Update Spinner"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "FileSystem"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Inspector"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Expand Bottom Panel"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Output"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Don't Save"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Android build template is missing, please install relevant templates."
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Manage Templates"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/editor_node.cpp
-msgid ""
-"This will set up your project for custom Android builds by installing the "
-"source template to \"res://android/build\".\n"
-"You can then apply modifications and build your own custom APK on export "
-"(adding modules, changing the AndroidManifest.xml, etc.).\n"
-"Note that in order to make custom builds instead of using pre-built APKs, "
-"the \"Use Custom Build\" option should be enabled in the Android export "
-"preset."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid ""
-"The Android build template is already installed in this project and it won't "
-"be overwritten.\n"
-"Remove the \"res://android/build\" directory manually before attempting this "
-"operation again."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Import Templates From ZIP File"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Template Package"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/editor_node.cpp
-msgid "Export Library"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Merge With Existing"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Open & Run a Script"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "New Inherited"
-msgstr "Script hinzufügen"
-
-#: editor/editor_node.cpp
-msgid "Load Errors"
-msgstr ""
-
-#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
-msgid "Select"
-msgstr ""
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Open 2D Editor"
-msgstr "Verzeichnis öffnen"
-
-#: editor/editor_node.cpp
-#, fuzzy
-msgid "Open 3D Editor"
-msgstr "Verzeichnis öffnen"
-
-#: editor/editor_node.cpp
-msgid "Open Script Editor"
-msgstr ""
-
-#: editor/editor_node.cpp editor/project_manager.cpp
-msgid "Open Asset Library"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Open the next Editor"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Open the previous Editor"
-msgstr ""
-
-#: editor/editor_node.h
-msgid "Warning!"
-msgstr ""
-
-#: editor/editor_path.cpp
-#, fuzzy
-msgid "No sub-resources found."
-msgstr "Keine Oberflächen Quelle spezifiziert."
-
-#: editor/editor_plugin.cpp
-msgid "Creating Mesh Previews"
-msgstr ""
-
-#: editor/editor_plugin.cpp
-msgid "Thumbnail..."
-msgstr ""
-
-#: editor/editor_plugin_settings.cpp
-#, fuzzy
-msgid "Main Script:"
-msgstr "Script hinzufügen"
-
-#: editor/editor_plugin_settings.cpp
-#, fuzzy
-msgid "Edit Plugin"
-msgstr "Script hinzufügen"
-
-#: editor/editor_plugin_settings.cpp
-msgid "Installed Plugins:"
-msgstr ""
-
-#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
-msgid "Update"
-msgstr ""
-
-#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Version:"
-msgstr ""
-
-#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
-msgid "Author:"
-msgstr ""
-
-#: editor/editor_plugin_settings.cpp
-msgid "Status:"
-msgstr ""
-
-#: editor/editor_plugin_settings.cpp
-msgid "Edit:"
-msgstr ""
-
-#: editor/editor_profiler.cpp
-msgid "Measure:"
-msgstr ""
-
-#: editor/editor_profiler.cpp
-msgid "Frame Time (sec)"
-msgstr ""
-
-#: editor/editor_profiler.cpp
-msgid "Average Time (sec)"
-msgstr ""
-
-#: editor/editor_profiler.cpp
-msgid "Frame %"
-msgstr ""
-
-#: editor/editor_profiler.cpp
-msgid "Physics Frame %"
-msgstr ""
-
-#: editor/editor_profiler.cpp
-msgid "Inclusive"
-msgstr ""
-
-#: editor/editor_profiler.cpp
-msgid "Self"
-msgstr ""
-
-#: editor/editor_profiler.cpp
-msgid "Frame #:"
-msgstr ""
-
-#: editor/editor_profiler.cpp
-msgid "Time"
-msgstr ""
-
-#: editor/editor_profiler.cpp
-msgid "Calls"
-msgstr ""
-
-#: editor/editor_properties.cpp
-#, fuzzy
-msgid "Edit Text:"
-msgstr "Node Filter editieren"
-
-#: editor/editor_properties.cpp editor/script_create_dialog.cpp
-msgid "On"
-msgstr ""
-
-#: editor/editor_properties.cpp
-msgid "Layer"
-msgstr ""
-
-#: editor/editor_properties.cpp
-msgid "Bit %d, value %d"
-msgstr ""
-
-#: editor/editor_properties.cpp
-msgid "[Empty]"
-msgstr ""
-
-#: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp
-msgid "Assign..."
-msgstr ""
-
-#: editor/editor_properties.cpp
-msgid "Invalid RID"
-msgstr ""
-
-#: editor/editor_properties.cpp
-msgid ""
-"The selected resource (%s) does not match any type expected for this "
-"property (%s)."
-msgstr ""
-
-#: editor/editor_properties.cpp
-msgid ""
-"Can't create a ViewportTexture on resources saved as a file.\n"
-"Resource needs to belong to a scene."
-msgstr ""
-
-#: editor/editor_properties.cpp
-msgid ""
-"Can't create a ViewportTexture on this resource because it's not set as "
-"local to scene.\n"
-"Please switch on the 'local to scene' property on it (and all resources "
-"containing it up to a node)."
-msgstr ""
-
-#: editor/editor_properties.cpp editor/property_editor.cpp
-msgid "Pick a Viewport"
-msgstr ""
-
-#: editor/editor_properties.cpp editor/property_editor.cpp
-#, fuzzy
-msgid "New Script"
-msgstr "Script hinzufügen"
-
-#: editor/editor_properties.cpp editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Extend Script"
-msgstr "Script hinzufügen"
-
-#: editor/editor_properties.cpp editor/property_editor.cpp
-msgid "New %s"
-msgstr ""
-
-#: editor/editor_properties.cpp editor/property_editor.cpp
-msgid "Make Unique"
-msgstr ""
-
-#: editor/editor_properties.cpp
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/animation_state_machine_editor.cpp
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-#: editor/plugins/tile_map_editor_plugin.cpp editor/property_editor.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
-msgid "Paste"
-msgstr ""
-
-#: editor/editor_properties.cpp editor/property_editor.cpp
-#, fuzzy
-msgid "Convert To %s"
-msgstr "Verbindung zu Node:"
-
-#: editor/editor_properties.cpp editor/property_editor.cpp
-#, fuzzy
-msgid "Selected node is not a Viewport!"
-msgstr "Selektiere Node(s) zum Importieren aus"
-
-#: editor/editor_properties_array_dict.cpp
-msgid "Size: "
-msgstr ""
-
-#: editor/editor_properties_array_dict.cpp
-msgid "Page: "
-msgstr ""
-
-#: editor/editor_properties_array_dict.cpp
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Remove Item"
-msgstr ""
-
-#: editor/editor_properties_array_dict.cpp
-msgid "New Key:"
-msgstr ""
-
-#: editor/editor_properties_array_dict.cpp
-msgid "New Value:"
-msgstr ""
-
-#: editor/editor_properties_array_dict.cpp
-msgid "Add Key/Value Pair"
-msgstr ""
-
-#: editor/editor_run_native.cpp
-msgid ""
-"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
-msgstr ""
-
-#: editor/editor_run_script.cpp
-msgid "Write your logic in the _run() method."
-msgstr ""
-
-#: editor/editor_run_script.cpp
-msgid "There is an edited scene already."
-msgstr ""
-
-#: editor/editor_run_script.cpp
-msgid "Couldn't instance script:"
-msgstr ""
-
-#: editor/editor_run_script.cpp
-msgid "Did you forget the 'tool' keyword?"
-msgstr "Sieht so aus als hättest du das Schlüsselwort \"tool\" vergessen?"
-
-#: editor/editor_run_script.cpp
-msgid "Couldn't run script:"
-msgstr ""
-
-#: editor/editor_run_script.cpp
-msgid "Did you forget the '_run' method?"
-msgstr ""
-
-#: editor/editor_sub_scene.cpp
-msgid "Select Node(s) to Import"
-msgstr "Selektiere Node(s) zum Importieren aus"
-
-#: editor/editor_sub_scene.cpp editor/project_manager.cpp
-msgid "Browse"
-msgstr ""
-
-#: editor/editor_sub_scene.cpp
-msgid "Scene Path:"
-msgstr ""
-
-#: editor/editor_sub_scene.cpp
-msgid "Import From Node:"
-msgstr "Importiere von folgendem Node:"
-
-#: editor/export_template_manager.cpp
-msgid "Redownload"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Uninstall"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "(Installed)"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Download"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Official export templates aren't available for development builds."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "(Missing)"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "(Current)"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Retrieving mirrors, please wait..."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Remove template version '%s'?"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Can't open export templates zip."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Invalid version.txt format inside templates: %s."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "No version.txt found inside templates."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-#, fuzzy
-msgid "Error creating path for templates:"
-msgstr "Fehler beim Schreiben des Projekts PCK!"
-
-#: editor/export_template_manager.cpp
-msgid "Extracting Export Templates"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Importing:"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-#, fuzzy
-msgid "Error getting the list of mirrors."
-msgstr "Fehler beim Schreiben des Projekts PCK!"
-
-#: editor/export_template_manager.cpp
-msgid "Error parsing JSON of mirror list. Please report this issue!"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid ""
-"No download links found for this version. Direct download is only available "
-"for official releases."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Can't resolve."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Can't connect."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "No response."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Request Failed."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Redirect Loop."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Failed:"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Download Complete."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Cannot remove temporary file:"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid ""
-"Templates installation failed.\n"
-"The problematic templates archives can be found at '%s'."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-#, fuzzy
-msgid "Error requesting URL:"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/export_template_manager.cpp
-#, fuzzy
-msgid "Connecting to Mirror..."
-msgstr "Connections editieren"
-
-#: editor/export_template_manager.cpp
-msgid "Disconnected"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Resolving"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Can't Resolve"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
-msgid "Connecting..."
-msgstr "Connections editieren"
-
-#: editor/export_template_manager.cpp
-#, fuzzy
-msgid "Can't Connect"
-msgstr "Neues Projekt erstellen"
-
-#: editor/export_template_manager.cpp
-#, fuzzy
-msgid "Connected"
-msgstr "Verbindung zu Node:"
-
-#: editor/export_template_manager.cpp
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Requesting..."
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Downloading"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-#, fuzzy
-msgid "Connection Error"
-msgstr "Connections editieren"
-
-#: editor/export_template_manager.cpp
-msgid "SSL Handshake Error"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Uncompressing Android Build Sources"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Current Version:"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Installed Versions:"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-msgid "Install From File"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-#, fuzzy
-msgid "Remove Template"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/export_template_manager.cpp
-#, fuzzy
-msgid "Select Template File"
-msgstr "Node(s) löschen"
-
-#: editor/export_template_manager.cpp
-#, fuzzy
-msgid "Godot Export Templates"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/export_template_manager.cpp
-msgid "Export Template Manager"
-msgstr ""
-
-#: editor/export_template_manager.cpp
-#, fuzzy
-msgid "Download Templates"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/export_template_manager.cpp
-msgid "Select mirror from list: (Shift+Click: Open in Browser)"
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "Favorites"
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "Status: Import of file failed. Please fix file and reimport manually."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "Cannot move/rename resources root."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "Cannot move a folder into itself."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Error moving:"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Error duplicating:"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Unable to update dependencies:"
-msgstr "Szene '%s' hat kapute Abhängigkeiten:"
-
-#: editor/filesystem_dock.cpp editor/scene_tree_editor.cpp
-msgid "No name provided."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "Provided name contains invalid characters."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "A file or folder with this name already exists."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "Name contains invalid characters."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Renaming file:"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/filesystem_dock.cpp
-msgid "Renaming folder:"
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Duplicating file:"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Duplicating folder:"
-msgstr "Node(s) duplizieren"
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "New Inherited Scene"
-msgstr "Script hinzufügen"
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Set As Main Scene"
-msgstr "Neue Szene speichern als..."
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Open Scenes"
-msgstr "Datei(en) öffnen"
-
-#: editor/filesystem_dock.cpp
-msgid "Instance"
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Add to Favorites"
-msgstr "Node"
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Remove from Favorites"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/filesystem_dock.cpp
-msgid "Edit Dependencies..."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "View Owners..."
-msgstr ""
-
-#: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
-msgid "Rename..."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Duplicate..."
-msgstr "Node(s) duplizieren"
-
-#: editor/filesystem_dock.cpp
-msgid "Move To..."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "New Scene..."
-msgstr "Neue Szene speichern als..."
-
-#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "New Script..."
-msgstr "Script hinzufügen"
-
-#: editor/filesystem_dock.cpp
-msgid "New Resource..."
-msgstr ""
-
-#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
-#: editor/script_editor_debugger.cpp
-msgid "Expand All"
-msgstr ""
-
-#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
-#: editor/script_editor_debugger.cpp
-msgid "Collapse All"
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-#: editor/project_manager.cpp editor/rename_dialog.cpp
-#: editor/scene_tree_dock.cpp
-msgid "Rename"
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Previous Folder/File"
-msgstr "Node(s) löschen"
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Next Folder/File"
-msgstr "Node erstellen"
-
-#: editor/filesystem_dock.cpp
-msgid "Re-Scan Filesystem"
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "Toggle Split Mode"
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "Search files"
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid ""
-"Scanning Files,\n"
-"Please Wait..."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "Move"
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "There is already file or folder with the same name in this location."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "Overwrite"
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Create Scene"
-msgstr "Node erstellen"
-
-#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
-msgid "Create Script"
-msgstr ""
-
-#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Find in Files"
-msgstr "Node Filter editieren"
-
-#: editor/find_in_files.cpp
-msgid "Find:"
-msgstr ""
-
-#: editor/find_in_files.cpp
-msgid "Folder:"
-msgstr ""
-
-#: editor/find_in_files.cpp
-#, fuzzy
-msgid "Filters:"
-msgstr "Node erstellen"
-
-#: editor/find_in_files.cpp
-msgid ""
-"Include the files with the following extensions. Add or remove them in "
-"ProjectSettings."
-msgstr ""
-
-#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/plugins/script_text_editor.cpp
-msgid "Find..."
-msgstr ""
-
-#: editor/find_in_files.cpp editor/plugins/script_text_editor.cpp
-msgid "Replace..."
-msgstr ""
-
-#: editor/find_in_files.cpp editor/progress_dialog.cpp scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: editor/find_in_files.cpp
-msgid "Find: "
-msgstr ""
-
-#: editor/find_in_files.cpp
-msgid "Replace: "
-msgstr ""
-
-#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
-
-#: editor/find_in_files.cpp
-#, fuzzy
-msgid "Searching..."
-msgstr "Connections editieren"
-
-#: editor/find_in_files.cpp
-msgid "Search complete"
-msgstr ""
-
-#: editor/groups_editor.cpp
-msgid "Add to Group"
-msgstr ""
-
-#: editor/groups_editor.cpp
-msgid "Remove from Group"
-msgstr ""
-
-#: editor/groups_editor.cpp
-msgid "Group name already exists."
-msgstr ""
-
-#: editor/groups_editor.cpp
-#, fuzzy
-msgid "Invalid group name."
-msgstr "Projektname:"
-
-#: editor/groups_editor.cpp
-#, fuzzy
-msgid "Rename Group"
-msgstr "Neues Projekt erstellen"
-
-#: editor/groups_editor.cpp
-#, fuzzy
-msgid "Delete Group"
-msgstr "Node(s) löschen"
-
-#: editor/groups_editor.cpp editor/node_dock.cpp
-msgid "Groups"
-msgstr ""
-
-#: editor/groups_editor.cpp
-msgid "Nodes Not in Group"
-msgstr ""
-
-#: editor/groups_editor.cpp editor/scene_tree_dock.cpp
-#: editor/scene_tree_editor.cpp
-#, fuzzy
-msgid "Filter nodes"
-msgstr "Node erstellen"
-
-#: editor/groups_editor.cpp
-msgid "Nodes in Group"
-msgstr ""
-
-#: editor/groups_editor.cpp
-msgid "Empty groups will be automatically removed."
-msgstr ""
-
-#: editor/groups_editor.cpp
-#, fuzzy
-msgid "Group Editor"
-msgstr "Verzeichnis öffnen"
-
-#: editor/groups_editor.cpp
-msgid "Manage Groups"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Import as Single Scene"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Import with Separate Animations"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Import with Separate Materials"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Import with Separate Objects"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Import with Separate Objects+Materials"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Import with Separate Objects+Animations"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Import with Separate Materials+Animations"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Import with Separate Objects+Materials+Animations"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Import as Multiple Scenes"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Import as Multiple Scenes+Materials"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import Scene"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Importing Scene..."
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Generating Lightmaps"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Generating for Mesh: "
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Running Custom Script..."
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Couldn't load post-import script:"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Invalid/broken script for post-import (check console):"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Error running post-import script:"
-msgstr ""
-
-#: editor/import/resource_importer_scene.cpp
-msgid "Saving..."
-msgstr ""
-
-#: editor/import_dock.cpp
-msgid "%d Files"
-msgstr "%d Dateien"
-
-#: editor/import_dock.cpp
-msgid "Set as Default for '%s'"
-msgstr ""
-
-#: editor/import_dock.cpp
-msgid "Clear Default for '%s'"
-msgstr ""
-
-#: editor/import_dock.cpp
-msgid "Import As:"
-msgstr ""
-
-#: editor/import_dock.cpp
-msgid "Preset"
-msgstr ""
-
-#: editor/import_dock.cpp
-msgid "Reimport"
-msgstr ""
-
-#: editor/import_dock.cpp
-msgid "Save Scenes, Re-Import, and Restart"
-msgstr ""
-
-#: editor/import_dock.cpp
-msgid "Changing the type of an imported file requires editor restart."
-msgstr ""
-
-#: editor/import_dock.cpp
-msgid ""
-"WARNING: Assets exist that use this resource, they may stop loading properly."
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Failed to load resource."
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Expand All Properties"
-msgstr ""
-
-#: editor/inspector_dock.cpp
-#, fuzzy
-msgid "Collapse All Properties"
-msgstr "Node erstellen"
-
-#: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Save As..."
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Copy Params"
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Edit Resource Clipboard"
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Copy Resource"
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Make Built-In"
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Make Sub-Resources Unique"
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Open in Help"
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Create a new resource in memory and edit it."
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Load an existing resource from disk and edit it."
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Save the currently edited resource."
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Go to the previous edited object in history."
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Go to the next edited object in history."
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "History of recently edited objects."
-msgstr ""
-
-#: editor/inspector_dock.cpp
-msgid "Object properties."
-msgstr ""
-
-#: editor/inspector_dock.cpp
-#, fuzzy
-msgid "Filter properties"
-msgstr "Node erstellen"
-
-#: editor/inspector_dock.cpp
-msgid "Changes may be lost!"
-msgstr ""
-
-#: editor/multi_node_edit.cpp
-#, fuzzy
-msgid "MultiNode Set"
-msgstr "MultiNode Set"
-
-#: editor/node_dock.cpp
-#, fuzzy
-msgid "Select a single node to edit its signals and groups."
-msgstr "Selektiere ein Node um deren Signale und Gruppen zu ändern."
-
-#: editor/plugin_config_dialog.cpp
-msgid "Edit a Plugin"
-msgstr ""
-
-#: editor/plugin_config_dialog.cpp
-#, fuzzy
-msgid "Create a Plugin"
-msgstr "Node erstellen"
-
-#: editor/plugin_config_dialog.cpp
-msgid "Plugin Name:"
-msgstr ""
-
-#: editor/plugin_config_dialog.cpp
-msgid "Subfolder:"
-msgstr ""
-
-#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp
-msgid "Language:"
-msgstr ""
-
-#: editor/plugin_config_dialog.cpp
-#, fuzzy
-msgid "Script Name:"
-msgstr "Projektname:"
-
-#: editor/plugin_config_dialog.cpp
-msgid "Activate now?"
-msgstr ""
-
-#: editor/plugins/abstract_polygon_2d_editor.cpp
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Create Polygon"
-msgstr "Node erstellen"
-
-#: editor/plugins/abstract_polygon_2d_editor.cpp
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
-msgid "Create points."
-msgstr "Bild einfügen"
-
-#: editor/plugins/abstract_polygon_2d_editor.cpp
-msgid ""
-"Edit points.\n"
-"LMB: Move Point\n"
-"RMB: Erase Point"
-msgstr ""
-
-#: editor/plugins/abstract_polygon_2d_editor.cpp
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
-msgid "Erase points."
-msgstr "Oberfläche %d"
-
-#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
-msgid "Edit Polygon"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
-msgid "Insert Point"
-msgstr "Bild einfügen"
-
-#: editor/plugins/abstract_polygon_2d_editor.cpp
-msgid "Edit Polygon (Remove Point)"
-msgstr ""
-
-#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
-msgid "Remove Polygon And Point"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/animation_state_machine_editor.cpp
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Add Animation"
-msgstr ""
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid "Load..."
-msgstr ""
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
-msgid "Move Node Point"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-msgid "Change BlendSpace1D Limits"
-msgstr ""
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-msgid "Change BlendSpace1D Labels"
-msgstr ""
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid "This type of node can't be used. Only root nodes are allowed."
-msgstr ""
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
-msgid "Add Node Point"
-msgstr "Node"
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
-msgid "Add Animation Point"
-msgstr "Animations-Node"
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
-msgid "Remove BlendSpace1D Point"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-msgid "Move BlendSpace1D Node Point"
-msgstr ""
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid ""
-"AnimationTree is inactive.\n"
-"Activate to enable playback, check node warnings if activation fails."
-msgstr ""
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-msgid "Set the blending position within the space"
-msgstr ""
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-msgid "Select and move points, create points with RMB."
-msgstr ""
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp
-msgid "Enable snap and show grid."
-msgstr ""
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-msgid "Point"
-msgstr ""
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
-msgid "Open Editor"
-msgstr "Verzeichnis öffnen"
-
-#: editor/plugins/animation_blend_space_1d_editor.cpp
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
-msgid "Open Animation Node"
-msgstr "Animations-Node"
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-msgid "Triangle already exists."
-msgstr ""
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
-msgid "Add Triangle"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-msgid "Change BlendSpace2D Limits"
-msgstr ""
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-msgid "Change BlendSpace2D Labels"
-msgstr ""
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
-msgid "Remove BlendSpace2D Point"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
-msgid "Remove BlendSpace2D Triangle"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-msgid "BlendSpace2D does not belong to an AnimationTree node."
-msgstr ""
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-msgid "No triangles exist, so no blending can take place."
-msgstr ""
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
-msgid "Toggle Auto Triangles"
-msgstr "Autoplay Umschalten"
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-msgid "Create triangles by connecting points."
-msgstr ""
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-msgid "Erase points and triangles."
-msgstr ""
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-msgid "Generate blend triangles automatically (instead of manually)"
-msgstr ""
-
-#: editor/plugins/animation_blend_space_2d_editor.cpp
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Blend:"
-msgstr ""
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
-msgid "Parameter Changed"
-msgstr "Typ ändern"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-#, fuzzy
-msgid "Edit Filters"
-msgstr "Node Filter editieren"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-msgid "Output node can't be added to the blend tree."
-msgstr ""
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
-msgid "Add Node to BlendTree"
-msgstr "Node von Szene"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Node Moved"
-msgstr "Bild bewegen/einfügen"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-msgid "Unable to connect, port may be in use or connection may be invalid."
-msgstr ""
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Nodes Connected"
-msgstr "Verbindung zu Node:"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Nodes Disconnected"
-msgstr ""
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
-msgid "Set Animation"
-msgstr "Bild einfügen"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Delete Node"
-msgstr "Node(s) löschen"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr "Node(s) löschen"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-msgid "Toggle Filter On/Off"
-msgstr ""
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
-msgid "Change Filter"
-msgstr "Typ ändern"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-msgid "No animation player set, so unable to retrieve track names."
-msgstr ""
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-msgid "Player path set is invalid, so unable to retrieve track names."
-msgstr ""
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/root_motion_editor_plugin.cpp
-msgid ""
-"Animation player has no valid root node path, so unable to retrieve track "
-"names."
-msgstr ""
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-msgid "Anim Clips"
-msgstr ""
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-msgid "Audio Clips"
-msgstr ""
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
-msgid "Functions"
-msgstr "Node erstellen"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
-msgid "Node Renamed"
-msgstr "Node"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Add Node..."
-msgstr "Node"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/root_motion_editor_plugin.cpp
-#, fuzzy
-msgid "Edit Filtered Tracks:"
-msgstr "Node Filter editieren"
-
-#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
-msgid "Enable Filtering"
-msgstr "Typ ändern"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Toggle Autoplay"
-msgstr "Autoplay Umschalten"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "New Animation Name:"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "New Anim"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Change Animation Name:"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
-msgid "Delete Animation?"
-msgstr "Bild einfügen"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Remove Animation"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
-msgid "Invalid animation name!"
-msgstr "Bild einfügen"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Animation name already exists!"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Rename Animation"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Blend Next Changed"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Change Blend Time"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Load Animation"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Duplicate Animation"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "No animation to copy!"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "No animation resource on clipboard!"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Pasted Animation"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Paste Animation"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
-msgid "No animation to edit!"
-msgstr "Animations-Node"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
-msgid "Play selected animation backwards from current pos. (A)"
-msgstr "Spiele ausgewählte Animation rückwärts von aktueller Position. (A)"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
-msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr "Spiele ausgewählte Animation rückwärts vom Ende. (Shift+A)"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Stop animation playback. (S)"
-msgstr "Stoppe Animations-Wiedergabe. (S)"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
-msgid "Play selected animation from start. (Shift+D)"
-msgstr "Spiele ausgewählte Animation vom Start. (Shift+D)"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
-msgid "Play selected animation from current pos. (D)"
-msgstr "Ausgewählte Animation von der aktueller Position aus abspielen. (D)"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Animation position (in seconds)."
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Scale animation playback globally for the node."
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Animation Tools"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Animation"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
-msgid "Edit Transitions..."
-msgstr "Connections editieren"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
-msgid "Open in Inspector"
-msgstr "Verzeichnis öffnen"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Display list of animations in player."
-msgstr "Liste der Animationen anzeigen."
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Autoplay on Load"
-msgstr "Beim Laden automatisch abpielen"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Enable Onion Skinning"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Onion Skinning Options"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
-msgid "Directions"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Past"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Future"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Depth"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "1 step"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "2 steps"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "3 steps"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Differences Only"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Force White Modulate"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Include Gizmos (3D)"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
-msgid "Pin AnimationPlayer"
-msgstr "Animations-Node"
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Create New Animation"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Animation Name:"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
-#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
-msgid "Error!"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Blend Times:"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Next (Auto Queue):"
-msgstr ""
-
-#: editor/plugins/animation_player_editor_plugin.cpp
-msgid "Cross-Animation Blend Times"
-msgstr ""
-
-#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
-msgid "Move Node"
-msgstr "Bild bewegen/einfügen"
-
-#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
-msgid "Transition exists!"
-msgstr "Transition-Node"
-
-#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
-msgid "Add Transition"
-msgstr "Transition-Node"
-
-#: editor/plugins/animation_state_machine_editor.cpp
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Add Node"
-msgstr "Node"
-
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid "End"
-msgstr ""
-
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid "Immediate"
-msgstr ""
-
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid "Sync"
-msgstr ""
-
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid "At End"
-msgstr ""
-
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid "Travel"
-msgstr ""
-
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid "Start and end nodes are needed for a sub-transition."
-msgstr ""
-
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid "No playback resource set at path: %s."
-msgstr ""
-
-#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
-msgid "Node Removed"
-msgstr "Node"
-
-#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
-msgid "Transition Removed"
-msgstr "Transition-Node"
-
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid "Set Start Node (Autoplay)"
-msgstr ""
-
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid ""
-"Select and move nodes.\n"
-"RMB to add new nodes.\n"
-"Shift+LMB to create connections."
-msgstr ""
-
-#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
-msgid "Create new nodes."
-msgstr "Node erstellen"
-
-#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
-msgid "Connect nodes."
-msgstr "Verbindung zu Node:"
-
-#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
-msgid "Remove selected node or transition."
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid "Toggle autoplay this animation on start, restart or seek to zero."
-msgstr ""
-
-#: editor/plugins/animation_state_machine_editor.cpp
-msgid "Set the end animation. This is useful for sub-transitions."
-msgstr ""
-
-#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
-msgid "Transition: "
-msgstr "Transition-Node"
-
-#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
-msgid "Play Mode:"
-msgstr "Node erstellen"
-
-#: editor/plugins/animation_tree_editor_plugin.cpp
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-#, fuzzy
-msgid "AnimationTree"
-msgstr "Animations-Node"
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "New name:"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Scale:"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Fade In (s):"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Fade Out (s):"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Blend"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Mix"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Auto Restart:"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Restart (s):"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Random Restart (s):"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Start!"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Amount:"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Blend 0:"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Blend 1:"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "X-Fade Time (s):"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Current:"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Input"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Clear Auto-Advance"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Set Auto-Advance"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Delete Input"
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Animation tree is valid."
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Animation tree is invalid."
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Animation Node"
-msgstr "Animations-Node"
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "OneShot Node"
-msgstr "OneShot-Node"
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Mix Node"
-msgstr "Mix-Node"
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Blend2 Node"
-msgstr "Blend2-Node"
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Blend3 Node"
-msgstr "Blend3-Node"
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Blend4 Node"
-msgstr "Blend4-Node"
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "TimeScale Node"
-msgstr "TimeScale-Node"
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "TimeSeek Node"
-msgstr "TimeSeek-Node"
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Transition Node"
-msgstr "Transition-Node"
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Import Animations..."
-msgstr ""
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Edit Node Filters"
-msgstr "Node Filter editieren"
-
-#: editor/plugins/animation_tree_player_editor_plugin.cpp
-msgid "Filters..."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Contents:"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
-msgid "View Files"
-msgstr "Datei(en) öffnen"
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Connection error, please try again."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
-msgid "Can't connect to host:"
-msgstr "Verbindung zu Node:"
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "No response from host:"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Can't resolve hostname:"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Request failed, return code:"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Request failed."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Cannot save response to:"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Write error."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Request failed, too many redirects"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Redirect loop."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Request failed, timeout"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Timeout."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Bad download hash, assuming file has been tampered with."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Expected:"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Got:"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Failed sha256 hash check"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Asset Download Error:"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Downloading (%s / %s)..."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Downloading..."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Resolving..."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
-msgid "Error making request"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Idle"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Install..."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Retry"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Download Error"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Download for this asset is already in progress!"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Recently Updated"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Least Recently Updated"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Name (A-Z)"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Name (Z-A)"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "License (A-Z)"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "License (Z-A)"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "First"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Previous"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Next"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Last"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "All"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "No results for \"%s\"."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
-msgid "Import..."
-msgstr "Importierte Projekte"
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Plugins..."
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
-msgid "Sort:"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/project_settings_editor.cpp
-msgid "Category:"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Site:"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Support"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Official"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Testing"
-msgstr ""
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
-msgid "Loading..."
-msgstr "Connections editieren"
-
-#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Assets ZIP File"
-msgstr ""
-
-#: editor/plugins/baked_lightmap_editor_plugin.cpp
-msgid ""
-"Can't determine a save path for lightmap images.\n"
-"Save your scene (for images to be saved in the same dir), or pick a save "
-"path from the BakedLightmap properties."
-msgstr ""
-
-#: editor/plugins/baked_lightmap_editor_plugin.cpp
-msgid ""
-"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
-"Light' flag is on."
-msgstr ""
-
-#: editor/plugins/baked_lightmap_editor_plugin.cpp
-msgid "Failed creating lightmap images, make sure path is writable."
-msgstr ""
-
-#: editor/plugins/baked_lightmap_editor_plugin.cpp
-msgid "Bake Lightmaps"
-msgstr ""
-
-#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
-msgid "Preview"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Configure Snap"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Grid Offset:"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Grid Step:"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Primary Line Every:"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "steps"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotation Offset:"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotation Step:"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Scale Step:"
-msgstr "TimeScale-Node"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move Vertical Guide"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Create Vertical Guide"
-msgstr "Neues Projekt erstellen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Remove Vertical Guide"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move Horizontal Guide"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Create Horizontal Guide"
-msgstr "Neues Projekt erstellen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Remove Horizontal Guide"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Create Horizontal and Vertical Guides"
-msgstr "Neues Projekt erstellen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move pivot"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move anchor"
-msgstr "Bild bewegen/einfügen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid ""
-"Children of containers have their anchors and margins values overridden by "
-"their parent."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Presets for the anchors and margins values of a Control node."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid ""
-"When active, moving Control nodes changes their anchors instead of their "
-"margins."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Top Left"
-msgstr "Node erstellen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Top Right"
-msgstr "Node erstellen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Bottom Right"
-msgstr "Node erstellen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Bottom Left"
-msgstr "Node erstellen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Center Left"
-msgstr "Node erstellen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Center Top"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Center Right"
-msgstr "Node erstellen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Center Bottom"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Center"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Left Wide"
-msgstr "Bild einfügen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Top Wide"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Right Wide"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Bottom Wide"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "VCenter Wide"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "HCenter Wide"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Full Rect"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Keep Ratio"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Anchors only"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Change Anchors and Margins"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Change Anchors"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid ""
-"Game Camera Override\n"
-"Overrides game camera with editor viewport camera."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid ""
-"Game Camera Override\n"
-"No game instance running."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Lock Selected"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Unlock Selected"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
-msgid "Group Selected"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
-msgid "Ungroup Selected"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Paste Pose"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Clear Guides"
-msgstr "Spiele angepasste Szene"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Create Custom Bone(s) from Node(s)"
-msgstr "Spiele angepasste Szene"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Clear Bones"
-msgstr "Spiele angepasste Szene"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Make IK Chain"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Clear IK Chain"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid ""
-"Warning: Children of a container get their position and size determined only "
-"by their parent."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/texture_region_editor_plugin.cpp
-#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
-msgid "Zoom Reset"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Select Mode"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Drag: Rotate"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Alt+Drag: Move"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Alt+RMB: Depth list selection"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
-msgid "Move Mode"
-msgstr "Bild bewegen/einfügen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
-msgid "Rotate Mode"
-msgstr "Node erstellen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
-msgid "Scale Mode"
-msgstr "TimeScale-Node"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid ""
-"Show a list of all objects at the position clicked\n"
-"(same as Alt+RMB in select mode)."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Click to change object's rotation pivot."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Pan Mode"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Ruler Mode"
-msgstr "TimeScale-Node"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Toggle smart snapping."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Use Smart Snap"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Toggle grid snapping."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Use Grid Snap"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Snapping Options"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Use Rotation Snap"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Use Scale Snap"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Snap Relative"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Use Pixel Snap"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Smart Snapping"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Configure Snap..."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Snap to Parent"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Snap to Node Anchor"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Snap to Node Sides"
-msgstr "Selektiere Node(s) zum Importieren aus"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Snap to Node Center"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Snap to Other Nodes"
-msgstr "Node erstellen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Snap to Guides"
-msgstr "Selektiere Node(s) zum Importieren aus"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Lock the selected object in place (can't be moved)."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Unlock the selected object (can be moved)."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Makes sure the object's children are not selectable."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Restores the object's children's ability to be selected."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Skeleton Options"
-msgstr "Bild einfügen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Show Bones"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Make Custom Bone(s) from Node(s)"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Clear Custom Bones"
-msgstr "Spiele angepasste Szene"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "View"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Always Show Grid"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Show Helpers"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Show Rulers"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Show Guides"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Show Origin"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Show Viewport"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Show Group And Lock Icons"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Center Selection"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Frame Selection"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Preview Canvas Scale"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Translation mask for inserting keys."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotation mask for inserting keys."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale mask for inserting keys."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Insert keys (based on mask)."
-msgstr "Bilder (innerhalb) einfügen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid ""
-"Auto insert keys when objects are translated, rotated or scaled (based on "
-"mask).\n"
-"Keys are only added to existing tracks, no new tracks will be created.\n"
-"Keys must be inserted manually for the first time."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Auto Insert Key"
-msgstr "Anim Bild einfügen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Animation Key and Pose Options"
-msgstr "Animationsbild eingefügt."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Insert Key (Existing Tracks)"
-msgstr "Bild in bestehende Ebene einfügen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Copy Pose"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Clear Pose"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Multiply grid step by 2"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Divide grid step by 2"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Pan View"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Add %s"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Adding %s..."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Cannot instantiate multiple nodes without root."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr "Node erstellen"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr "Fehler beim Instanzieren der %s Szene"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Change Default Type"
-msgstr "Typ ändern"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid ""
-"Drag & drop + Shift : Add node as sibling\n"
-"Drag & drop + Alt : Change node type"
-msgstr ""
-
-#: editor/plugins/collision_polygon_editor_plugin.cpp
-#, fuzzy
-msgid "Create Polygon3D"
-msgstr "Node erstellen"
-
-#: editor/plugins/collision_polygon_editor_plugin.cpp
-msgid "Edit Poly"
-msgstr ""
-
-#: editor/plugins/collision_polygon_editor_plugin.cpp
-msgid "Edit Poly (Remove Point)"
-msgstr ""
-
-#: editor/plugins/collision_shape_2d_editor_plugin.cpp
-msgid "Set Handle"
-msgstr ""
-
-#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
-msgstr "Emissions-Maske laden"
-
-#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
-#: editor/plugins/cpu_particles_editor_plugin.cpp
-#: editor/plugins/particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
-msgid "Restart"
-msgstr "Datei speichern"
-
-#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Clear Emission Mask"
-msgstr "Inhalt der Emissions-Masken löschen"
-
-#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "Particles"
-msgstr ""
-
-#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generated Point Count:"
-msgstr ""
-
-#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Emission Mask"
-msgstr "Emissions-Maske setzen"
-
-#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Solid Pixels"
-msgstr ""
-
-#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Border Pixels"
-msgstr ""
-
-#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Directed Border Pixels"
-msgstr ""
-
-#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Capture from Pixel"
-msgstr ""
-
-#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Emission Colors"
-msgstr "Emissions-Maske setzen"
-
-#: editor/plugins/cpu_particles_editor_plugin.cpp
-msgid "CPUParticles"
-msgstr ""
-
-#: editor/plugins/cpu_particles_editor_plugin.cpp
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "Create Emission Points From Mesh"
-msgstr ""
-
-#: editor/plugins/cpu_particles_editor_plugin.cpp
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "Create Emission Points From Node"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp
-msgid "Flat 0"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp
-msgid "Flat 1"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
-msgid "Ease In"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
-msgid "Ease Out"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp
-msgid "Smoothstep"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp
-msgid "Modify Curve Point"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp
-msgid "Modify Curve Tangent"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp
-msgid "Load Curve Preset"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
-msgid "Add Point"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
-msgid "Remove Point"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
-msgid "Left Linear"
-msgstr "Bild einfügen"
-
-#: editor/plugins/curve_editor_plugin.cpp
-msgid "Right Linear"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp
-msgid "Load Preset"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
-msgid "Remove Curve Point"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/curve_editor_plugin.cpp
-msgid "Toggle Curve Linear Tangent"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp
-msgid "Hold Shift to edit tangents individually"
-msgstr ""
-
-#: editor/plugins/curve_editor_plugin.cpp
-msgid "Right click to add point"
-msgstr ""
-
-#: editor/plugins/gi_probe_editor_plugin.cpp
-msgid "Bake GI Probe"
-msgstr ""
-
-#: editor/plugins/gradient_editor_plugin.cpp
-msgid "Gradient Edited"
-msgstr ""
-
-#: editor/plugins/item_list_editor_plugin.cpp
-msgid "Item %d"
-msgstr ""
-
-#: editor/plugins/item_list_editor_plugin.cpp
-msgid "Items"
-msgstr ""
-
-#: editor/plugins/item_list_editor_plugin.cpp
-msgid "Item List Editor"
-msgstr ""
-
-#: editor/plugins/light_occluder_2d_editor_plugin.cpp
-msgid "Create Occluder Polygon"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Mesh is empty!"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
-msgid "Couldn't create a Trimesh collision shape."
-msgstr "Node erstellen"
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Static Trimesh Body"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "This doesn't work on scene root!"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Trimesh Static Shape"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Can't create a single convex collision shape for the scene root."
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Couldn't create a single convex collision shape."
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
-msgid "Create Single Convex Shape"
-msgstr "Node erstellen"
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Can't create multiple convex collision shapes for the scene root."
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
-msgid "Couldn't create any collision shapes."
-msgstr "Node erstellen"
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
-msgid "Create Multiple Convex Shapes"
-msgstr "Node erstellen"
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Navigation Mesh"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Contained Mesh is not of type ArrayMesh."
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "UV Unwrap failed, mesh may not be manifold?"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "No mesh to debug."
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Model has no UV in this layer"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "MeshInstance lacks a Mesh!"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Mesh has not surface to create outlines from!"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Could not create outline!"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Outline"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Mesh"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Trimesh Static Body"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid ""
-"Creates a StaticBody and assigns a polygon-based collision shape to it "
-"automatically.\n"
-"This is the most accurate (but slowest) option for collision detection."
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Trimesh Collision Sibling"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid ""
-"Creates a polygon-based collision shape.\n"
-"This is the most accurate (but slowest) option for collision detection."
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
-msgid "Create Single Convex Collision Sibling"
-msgstr "Node erstellen"
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid ""
-"Creates a single convex collision shape.\n"
-"This is the fastest (but least accurate) option for collision detection."
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
-msgid "Create Multiple Convex Collision Siblings"
-msgstr "Node erstellen"
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid ""
-"Creates a polygon-based collision shape.\n"
-"This is a performance middle-ground between the two above options."
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Outline Mesh..."
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid ""
-"Creates a static outline mesh. The outline mesh will have its normals "
-"flipped automatically.\n"
-"This can be used instead of the SpatialMaterial Grow property when using "
-"that property isn't possible."
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
-msgid "View UV1"
-msgstr "Datei(en) öffnen"
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
-msgid "View UV2"
-msgstr "Datei(en) öffnen"
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Unwrap UV2 for Lightmap/AO"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Outline Mesh"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Outline Size:"
-msgstr ""
-
-#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "UV Channel Debug"
-msgstr ""
-
-#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Remove item %d?"
-msgstr ""
-
-#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid ""
-"Update from existing scene?:\n"
-"%s"
-msgstr ""
-
-#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Mesh Library"
-msgstr ""
-
-#: editor/plugins/mesh_library_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item"
-msgstr ""
-
-#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Remove Selected Item"
-msgstr ""
-
-#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
-msgstr ""
-
-#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Update from Scene"
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "No mesh source specified (and no MultiMesh set in node)."
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "No mesh source specified (and MultiMesh contains no Mesh)."
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Mesh source is invalid (invalid path)."
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Mesh source is invalid (not a MeshInstance)."
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Mesh source is invalid (contains no Mesh resource)."
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "No surface source specified."
-msgstr "Keine Oberflächen Quelle spezifiziert."
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Surface source is invalid (invalid path)."
-msgstr "Oberflächen Quelle is invalid (invalider Pfad)."
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Surface source is invalid (no geometry)."
-msgstr "Oberflächen Quelle is invalid (keine Form)."
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-#, fuzzy
-msgid "Surface source is invalid (no faces)."
-msgstr "Oberflächen Quelle is invalid (kein Face)"
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Select a Source Mesh:"
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Select a Target Surface:"
-msgstr "Wähle eine Ziel Oberfläche aus:"
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Populate Surface"
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Populate MultiMesh"
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Target Surface:"
-msgstr "Ziel Oberfläche:"
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Source Mesh:"
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "X-Axis"
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Y-Axis"
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Z-Axis"
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Mesh Up Axis:"
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Random Rotation:"
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Random Tilt:"
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Random Scale:"
-msgstr ""
-
-#: editor/plugins/multimesh_editor_plugin.cpp
-msgid "Populate"
-msgstr ""
-
-#: editor/plugins/navigation_polygon_editor_plugin.cpp
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Create Navigation Polygon"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
-msgid "Convert to CPUParticles"
-msgstr "Verbindung zu Node:"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generating Visibility Rect"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Can only set point into a ParticlesMaterial process material"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "Generation Time (sec):"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "The geometry's faces don't contain any area."
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
-msgid "The geometry doesn't contain any faces."
-msgstr "Node enthält keine Geometrie (Flächen)."
-
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "\"%s\" doesn't inherit from Spatial."
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
-msgid "\"%s\" doesn't contain geometry."
-msgstr "Node enthält keine Geometrie (Flächen)."
-
-#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
-msgid "\"%s\" doesn't contain face geometry."
-msgstr "Node enthält keine Geometrie (Flächen)."
-
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "Create Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
-msgid "Emission Points:"
-msgstr "Emissions-Maske setzen"
-
-#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
-msgid "Surface Points"
-msgstr "Oberfläche %d"
-
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "Surface Points+Normal (Directed)"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "Volume"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "Emission Source: "
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "A processor material of type 'ParticlesMaterial' is required."
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "Generating AABB"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "Generate Visibility AABB"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "Generate AABB"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-msgid "Remove Point from Curve"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-msgid "Remove Out-Control from Curve"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-msgid "Remove In-Control from Curve"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Add Point to Curve"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Split Curve"
-msgstr "Node Kurve editieren"
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-msgid "Move Point in Curve"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-msgid "Move In-Control in Curve"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-msgid "Move Out-Control in Curve"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Select Points"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Shift+Drag: Select Control Points"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Click: Add Point"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-msgid "Left Click: Split Segment (in curve)"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Right Click: Delete Point"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-msgid "Select Control Points (Shift+Drag)"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Add Point (in empty space)"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Delete Point"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Close Curve"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-#: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp
-msgid "Options"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Mirror Handle Angles"
-msgstr ""
-
-#: editor/plugins/path_2d_editor_plugin.cpp
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Mirror Handle Lengths"
-msgstr ""
-
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Curve Point #"
-msgstr ""
-
-#: editor/plugins/path_editor_plugin.cpp
-#, fuzzy
-msgid "Set Curve Point Position"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/path_editor_plugin.cpp
-#, fuzzy
-msgid "Set Curve In Position"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/path_editor_plugin.cpp
-#, fuzzy
-msgid "Set Curve Out Position"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Split Path"
-msgstr ""
-
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Remove Path Point"
-msgstr ""
-
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Remove Out-Control Point"
-msgstr ""
-
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Remove In-Control Point"
-msgstr ""
-
-#: editor/plugins/path_editor_plugin.cpp
-msgid "Split Segment (in curve)"
-msgstr ""
-
-#: editor/plugins/physical_bone_plugin.cpp
-#, fuzzy
-msgid "Move Joint"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid ""
-"The skeleton property of the Polygon2D does not point to a Skeleton2D node"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Sync Bones"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid ""
-"No texture in this polygon.\n"
-"Set a texture to be able to edit UV."
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Create UV Map"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid ""
-"Polygon 2D has internal vertices, so it can no longer be edited in the "
-"viewport."
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Create Polygon & UV"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Create Internal Vertex"
-msgstr "Neues Projekt erstellen"
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Remove Internal Vertex"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Invalid Polygon (need 3 different vertices)"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Add Custom Polygon"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Remove Custom Polygon"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Transform UV Map"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Transform Polygon"
-msgstr "Transformationstyp"
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Paint Bone Weights"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Open Polygon 2D UV editor."
-msgstr "Polygon 2D UV Editor"
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon 2D UV Editor"
-msgstr "Polygon 2D UV Editor"
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Points"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Polygons"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Bones"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Move Points"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Shift: Move All"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Shift+Ctrl: Scale"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Move Polygon"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Rotate Polygon"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Scale Polygon"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Create a custom polygon. Enables custom polygon rendering."
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid ""
-"Remove a custom polygon. If none remain, custom polygon rendering is "
-"disabled."
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Paint weights with specified intensity."
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Unpaint weights with specified intensity."
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Radius:"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Clear UV"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Grid Settings"
-msgstr "Projekteinstellungen"
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Snap"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Enable Snap"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Grid"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Show Grid"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Configure Grid:"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Grid Offset X:"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Grid Offset Y:"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Grid Step X:"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Grid Step Y:"
-msgstr ""
-
-#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Sync Bones to Polygon"
-msgstr ""
-
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "ERROR: Couldn't load resource!"
-msgstr ""
-
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Add Resource"
-msgstr ""
-
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Rename Resource"
-msgstr ""
-
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Delete Resource"
-msgstr ""
-
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Resource clipboard is empty!"
-msgstr ""
-
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Paste Resource"
-msgstr ""
-
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-#: editor/scene_tree_editor.cpp
-msgid "Instance:"
-msgstr ""
-
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
-#: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Type:"
-msgstr ""
-
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp
-msgid "Open in Editor"
-msgstr ""
-
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Load Resource"
-msgstr ""
-
-#: editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "ResourcePreloader"
-msgstr ""
-
-#: editor/plugins/root_motion_editor_plugin.cpp
-msgid "AnimationTree has no path set to an AnimationPlayer"
-msgstr ""
-
-#: editor/plugins/root_motion_editor_plugin.cpp
-msgid "Path to AnimationPlayer is invalid"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Clear Recent Files"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Close and save changes?"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Error writing TextFile:"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Could not load file at:"
-msgstr "Neues Projekt erstellen"
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Error saving file!"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Error while saving theme."
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Error Saving"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Error importing theme."
-msgstr "Fehler beim Exportieren des Projekts!"
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Error Importing"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "New Text File..."
-msgstr "Datei(en) öffnen"
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Open File"
-msgstr "Datei öffnen"
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Save File As..."
-msgstr "Datei speichern"
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Can't obtain the script for running."
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Script failed reloading, check console for errors."
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Script is not in tool mode, will not be able to run."
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid ""
-"To run this script, it must inherit EditorScript and be set to tool mode."
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Import Theme"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Error while saving theme"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Error saving"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Save Theme As..."
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "%s Class Reference"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-#: editor/plugins/script_text_editor.cpp
-msgid "Find Next"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-#: editor/plugins/script_text_editor.cpp
-msgid "Find Previous"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Filter scripts"
-msgstr "Node erstellen"
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Toggle alphabetical sorting of the method list."
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Filter methods"
-msgstr "Node erstellen"
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Sort"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
-#: modules/gdnative/gdnative_library_editor_plugin.cpp
-msgid "Move Up"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
-#: modules/gdnative/gdnative_library_editor_plugin.cpp
-msgid "Move Down"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Next script"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Previous script"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "File"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Open..."
-msgstr "Öffnen"
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Reopen Closed Script"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Save All"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Soft Reload Script"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Copy Script Path"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "History Previous"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "History Next"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Theme"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Import Theme..."
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Reload Theme"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Save Theme"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Close All"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Close Docs"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
-msgid "Run"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
-msgid "Step Into"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
-msgid "Step Over"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
-msgid "Break"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
-#: editor/script_editor_debugger.cpp
-msgid "Continue"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Keep Debugger Open"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Debug with External Editor"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Open Godot online documentation."
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Search the reference documentation."
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Go to previous edited document."
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Go to next edited document."
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid "Discard"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-msgid ""
-"The following files are newer on disk.\n"
-"What action should be taken?:"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-#: editor/plugins/shader_editor_plugin.cpp
-msgid "Reload"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-#: editor/plugins/shader_editor_plugin.cpp
-msgid "Resave"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
-msgid "Debugger"
-msgstr ""
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Search Results"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
-msgid "Clear Recent Scripts"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Connections to method:"
-msgstr "Verbindung zu Node:"
-
-#: editor/plugins/script_text_editor.cpp editor/script_editor_debugger.cpp
-msgid "Source"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Target"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid ""
-"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'."
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Go to Function"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Only resources from filesystem can be dropped."
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Can't drop nodes because script '%s' is not used in this scene."
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Lookup Symbol"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Pick Color"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
-msgid "Convert Case"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
-msgid "Uppercase"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
-msgid "Lowercase"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
-msgid "Capitalize"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
-msgid "Syntax Highlighter"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Breakpoints"
-msgstr "Bild einfügen"
-
-#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
-#: scene/gui/text_edit.cpp
-msgid "Cut"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
-#: scene/gui/text_edit.cpp
-msgid "Select All"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Delete Line"
-msgstr "Bild einfügen"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Indent Left"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Indent Right"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Toggle Comment"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Fold/Unfold Line"
-msgstr "Bild einfügen"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Fold All Lines"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold All Lines"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Clone Down"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Complete Symbol"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Evaluate Selection"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Trim Trailing Whitespace"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Convert Indent to Spaces"
-msgstr "Verbindung zu Node:"
-
-#: editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Convert Indent to Tabs"
-msgstr "Verbindung zu Node:"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Auto Indent"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Find in Files..."
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Contextual Help"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Toggle Bookmark"
-msgstr "Autoplay Umschalten"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Go to Next Bookmark"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Go to Previous Bookmark"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Remove All Bookmarks"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Go to Function..."
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Go to Line..."
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Toggle Breakpoint"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Remove All Breakpoints"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Go to Next Breakpoint"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Go to Previous Breakpoint"
-msgstr ""
-
-#: editor/plugins/shader_editor_plugin.cpp
-msgid ""
-"This shader has been modified on on disk.\n"
-"What action should be taken?"
-msgstr ""
-
-#: editor/plugins/shader_editor_plugin.cpp
-msgid "Shader"
-msgstr ""
-
-#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "This skeleton has no bones, create some children Bone2D nodes."
-msgstr ""
-
-#: editor/plugins/skeleton_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Create Rest Pose from Bones"
-msgstr "Spiele angepasste Szene"
-
-#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Rest Pose to Bones"
-msgstr ""
-
-#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Skeleton2D"
-msgstr ""
-
-#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
-
-#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
-
-#: editor/plugins/skeleton_editor_plugin.cpp
-msgid "Create physical bones"
-msgstr ""
-
-#: editor/plugins/skeleton_editor_plugin.cpp
-msgid "Skeleton"
-msgstr ""
-
-#: editor/plugins/skeleton_editor_plugin.cpp
-msgid "Create physical skeleton"
-msgstr ""
-
-#: editor/plugins/skeleton_ik_editor_plugin.cpp
-#, fuzzy
-msgid "Play IK"
-msgstr "Abspielen"
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Orthogonal"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Perspective"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform Aborted."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "X-Axis Transform."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Y-Axis Transform."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Z-Axis Transform."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "View Plane Transform."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Scaling: "
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
-msgid "Translating: "
-msgstr "Transition-Node"
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rotating %s degrees."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Keying is disabled (no key inserted)."
-msgstr "\"keying\" ist deaktiviert (Bild nicht hinzugefügt)."
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Animation Key Inserted."
-msgstr "Animationsbild eingefügt."
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Pitch"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Yaw"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Objects Drawn"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Material Changes"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
-msgid "Shader Changes"
-msgstr "Typ ändern"
-
-#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
-msgid "Surface Changes"
-msgstr "Oberfläche %d"
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Draw Calls"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Vertices"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Top View."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom View."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left View."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right View."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front View."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear View."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align Transform with View"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align Rotation with View"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr "Bitte nur ein Node selektieren."
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Auto Orthogonal Enabled"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Lock View Rotation"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Display Normal"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Display Wireframe"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Display Overdraw"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Display Unshaded"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "View Environment"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "View Gizmos"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "View Information"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
-msgid "View FPS"
-msgstr "Datei(en) öffnen"
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Half Resolution"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Audio Listener"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
-msgid "Enable Doppler"
-msgstr "Typ ändern"
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Cinematic Preview"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Freelook Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Freelook Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Freelook Forward"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Freelook Backwards"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Freelook Up"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Freelook Down"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Freelook Speed Modifier"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Freelook Slow Modifier"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "View Rotation Locked"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid ""
-"Note: The FPS value displayed is the editor's framerate.\n"
-"It cannot be used as a reliable indication of in-game performance."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "XForm Dialog"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Snap Nodes To Floor"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Couldn't find a solid floor to snap the selection to."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid ""
-"Drag: Rotate\n"
-"Alt+Drag: Move\n"
-"Alt+RMB: Depth list selection"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Use Local Space"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Use Snap"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom View"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Top View"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear View"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front View"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left View"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right View"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Switch Perspective/Orthogonal View"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
-msgid "Insert Animation Key"
-msgstr "Bild einfügen"
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Focus Origin"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Focus Selection"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Toggle Freelook"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Transform"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Snap Object to Floor"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform Dialog..."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "1 Viewport"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "2 Viewports"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "2 Viewports (Alt)"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "3 Viewports"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "3 Viewports (Alt)"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "4 Viewports"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Gizmos"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "View Origin"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "View Grid"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
-msgid "Settings..."
-msgstr "Projekteinstellungen"
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Snap Settings"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Translate Snap:"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rotate Snap (deg.):"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Scale Snap (%):"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Viewport Settings"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Perspective FOV (deg.):"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "View Z-Near:"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "View Z-Far:"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform Change"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Translate:"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rotate (deg.):"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Scale (ratio):"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform Type"
-msgstr "Transformationstyp"
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Pre"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Post"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
-msgid "Create Mesh2D"
-msgstr "Node erstellen"
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Mesh2D Preview"
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
-msgid "Create Polygon2D"
-msgstr "Node erstellen"
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Polygon2D Preview"
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
-msgid "Create CollisionPolygon2D"
-msgstr "Node erstellen"
-
-#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
-msgid "CollisionPolygon2D Preview"
-msgstr "Node erstellen"
-
-#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
-msgid "Create LightOccluder2D"
-msgstr "Node erstellen"
-
-#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
-msgid "LightOccluder2D Preview"
-msgstr "Node erstellen"
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Sprite is empty!"
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Can't convert a sprite using animation frames to mesh."
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Invalid geometry, can't replace by mesh."
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
-msgid "Convert to Mesh2D"
-msgstr "Verbindung zu Node:"
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Invalid geometry, can't create polygon."
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
-msgid "Convert to Polygon2D"
-msgstr "Verbindung zu Node:"
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Invalid geometry, can't create collision polygon."
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
-msgid "Create CollisionPolygon2D Sibling"
-msgstr "Node erstellen"
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Invalid geometry, can't create light occluder."
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Create LightOccluder2D Sibling"
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Sprite"
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Simplification: "
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Shrink (Pixels): "
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Grow (Pixels): "
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-msgid "Update Preview"
-msgstr ""
-
-#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
-msgid "Settings:"
-msgstr "Projekteinstellungen"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
-msgid "No Frames Selected"
-msgstr "Verbindung zu Node:"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Add %d Frame(s)"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Add Frame"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
-msgid "Unable to load images"
-msgstr "Selektiere Node(s) zum Importieren aus"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "ERROR: Couldn't load frame resource!"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Resource clipboard is empty or not a texture!"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Paste Frame"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Add Empty"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation FPS"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "(empty)"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
-msgid "Move Frame"
-msgstr "Bild bewegen/einfügen"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
-msgid "Animations:"
-msgstr "Animations-Node"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
-msgid "New Animation"
-msgstr "Bild einfügen"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
-msgid "Animation Frames:"
-msgstr "Animations-Node"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
-msgid "Add a Texture from File"
-msgstr "Node von Szene"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Add Frames from a Sprite Sheet"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Insert Empty (Before)"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Insert Empty (After)"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
-msgid "Move (Before)"
-msgstr "Node(s) entfernen"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Move (After)"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
-msgid "Select Frames"
-msgstr "Node(s) löschen"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Horizontal:"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Vertical:"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Select/Clear All Frames"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Create Frames from Sprite Sheet"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "SpriteFrames"
-msgstr ""
-
-#: editor/plugins/texture_region_editor_plugin.cpp
-msgid "Set Region Rect"
-msgstr ""
-
-#: editor/plugins/texture_region_editor_plugin.cpp
-msgid "Set Margin"
-msgstr ""
-
-#: editor/plugins/texture_region_editor_plugin.cpp
-msgid "Snap Mode:"
-msgstr ""
-
-#: editor/plugins/texture_region_editor_plugin.cpp
-#: scene/resources/visual_shader.cpp
-msgid "None"
-msgstr ""
-
-#: editor/plugins/texture_region_editor_plugin.cpp
-msgid "Pixel Snap"
-msgstr ""
-
-#: editor/plugins/texture_region_editor_plugin.cpp
-msgid "Grid Snap"
-msgstr ""
-
-#: editor/plugins/texture_region_editor_plugin.cpp
-msgid "Auto Slice"
-msgstr ""
-
-#: editor/plugins/texture_region_editor_plugin.cpp
-msgid "Offset:"
-msgstr ""
-
-#: editor/plugins/texture_region_editor_plugin.cpp
-msgid "Step:"
-msgstr ""
-
-#: editor/plugins/texture_region_editor_plugin.cpp
-msgid "Sep.:"
-msgstr ""
-
-#: editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
-msgid "TextureRegion"
-msgstr "2D-Textur"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add All Items"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add All"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Remove All Items"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
-#, fuzzy
-msgid "Remove All"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Edit Theme"
-msgstr "Node Filter editieren"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Theme editing menu."
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Class Items"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Remove Class Items"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Create Empty Template"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Create Empty Editor Template"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Create From Current Editor Theme"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Toggle Button"
-msgstr "Autoplay Umschalten"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Disabled Button"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Item"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Disabled Item"
-msgstr "Node(s) löschen"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Check Item"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Checked Item"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Radio Item"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Checked Radio Item"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Named Sep."
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Submenu"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Subitem 1"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Subitem 2"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Has"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Many"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Disabled LineEdit"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Tab 1"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Tab 2"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Tab 3"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Editable Item"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Subtree"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Has,Many,Options"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Data Type:"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Icon"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
-msgid "Style"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Font"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Color"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Theme File"
-msgstr "Datei öffnen"
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Erase Selection"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Fix Invalid Tiles"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
-msgid "Cut Selection"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Paint TileMap"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Line Draw"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Rectangle Paint"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Bucket Fill"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Erase TileMap"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Find Tile"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Transpose"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Disable Autotile"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
-msgid "Enable Priority"
-msgstr "Node Filter editieren"
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
-msgid "Filter tiles"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Give a TileSet resource to this TileMap to use its tiles."
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Paint Tile"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid ""
-"Shift+LMB: Line Draw\n"
-"Shift+Ctrl+LMB: Rectangle Paint"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Pick Tile"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
-msgid "Rotate Left"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
-msgid "Rotate Right"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Flip Horizontally"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-msgid "Flip Vertically"
-msgstr ""
-
-#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
-msgid "Clear Transform"
-msgstr "Transformationstyp"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Add Texture(s) to TileSet."
-msgstr "Node von Szene"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Remove selected Texture from TileSet."
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Create from Scene"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Merge from Scene"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "New Single Tile"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "New Autotile"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "New Atlas"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Next Coordinate"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Select the next shape, subtile, or Tile."
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Previous Coordinate"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Select the previous shape, subtile, or Tile."
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Region"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Collision"
-msgstr "Animations-Node"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Occlusion"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Navigation"
-msgstr "Animations-Node"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Bitmask"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Priority"
-msgstr "Projekt exportieren"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Z Index"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Region Mode"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Collision Mode"
-msgstr "Animations-Node"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Occlusion Mode"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Navigation Mode"
-msgstr "Animations-Node"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Bitmask Mode"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Priority Mode"
-msgstr "Projekt exportieren"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Icon Mode"
-msgstr "Bild bewegen/einfügen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Z Index Mode"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Copy bitmask."
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Paste bitmask."
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Erase bitmask."
-msgstr "Oberfläche %d"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Create a new rectangle."
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Create a new polygon."
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Keep polygon inside region Rect."
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Enable snap and show grid (configurable via the Inspector)."
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Display Tile Names (Hold Alt Key)"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid ""
-"Add or select a texture on the left panel to edit the tiles bound to it."
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Remove selected texture? This will remove all tiles which use it."
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "You haven't selected a texture to remove."
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Create from scene? This will overwrite all current tiles."
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Merge from scene?"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Remove Texture"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "%s file(s) were not added because was already on the list."
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid ""
-"Drag handles to edit Rect.\n"
-"Click on another Tile to edit it."
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Delete selected Rect."
-msgstr "Node(s) löschen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid ""
-"Select current edited sub-tile.\n"
-"Click on another Tile to edit it."
-msgstr "Node(s) löschen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Delete polygon."
-msgstr "Bild einfügen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid ""
-"LMB: Set bit on.\n"
-"RMB: Set bit off.\n"
-"Shift+LMB: Set wildcard bit.\n"
-"Click on another Tile to edit it."
-msgstr "Node(s) löschen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid ""
-"Select sub-tile to use as icon, this will be also used on invalid autotile "
-"bindings.\n"
-"Click on another Tile to edit it."
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid ""
-"Select sub-tile to change its priority.\n"
-"Click on another Tile to edit it."
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid ""
-"Select sub-tile to change its z index.\n"
-"Click on another Tile to edit it."
-msgstr "Node(s) löschen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Set Tile Region"
-msgstr "2D-Textur"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Create Tile"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Set Tile Icon"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Edit Tile Bitmask"
-msgstr "Node Filter editieren"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Edit Collision Polygon"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Edit Occlusion Polygon"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Edit Navigation Polygon"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Paste Tile Bitmask"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Clear Tile Bitmask"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Make Polygon Concave"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Make Polygon Convex"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Remove Tile"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Remove Collision Polygon"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Remove Occlusion Polygon"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Remove Navigation Polygon"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Edit Tile Priority"
-msgstr "Node Filter editieren"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-msgid "Edit Tile Z Index"
-msgstr ""
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Make Convex"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Make Concave"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Create Collision Polygon"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "Create Occlusion Polygon"
-msgstr "Node erstellen"
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "This property can't be changed."
-msgstr "Ohne eine Szene kann das nicht funktionieren."
-
-#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
-msgid "TileSet"
-msgstr "Datei(en) öffnen"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "No VCS addons are available."
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "Error"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "No commit message was provided"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "No files added to stage"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "Commit"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "VCS Addon is not initialized"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "Version Control System"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "Initialize"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "Staging area"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
-msgid "Detect new changes"
-msgstr "Node erstellen"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
-msgid "Changes"
-msgstr "Typ ändern"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "Modified"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
-msgid "Renamed"
-msgstr "Node"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
-msgid "Deleted"
-msgstr "Node(s) löschen"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
-msgid "Typechange"
-msgstr "Typ ändern"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
-msgid "Stage Selected"
-msgstr "Verbindung zu Node:"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "Stage All"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "Add a commit message"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
-msgid "Commit Changes"
-msgstr "Typ ändern"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-#: modules/gdnative/gdnative_library_singleton_editor.cpp
-msgid "Status"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "View file diffs before committing them to the latest version"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "No file diff is active"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "Detect changes in file diff"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "(GLES3 only)"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Add Output"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Scalar"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Vector"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Boolean"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Sampler"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Add input port"
-msgstr "Script hinzufügen"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Add output port"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Change input port type"
-msgstr "Typ ändern"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Change output port type"
-msgstr "Typ ändern"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Change input port name"
-msgstr "Typ ändern"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Change output port name"
-msgstr "Typ ändern"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Remove input port"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Remove output port"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Set expression"
-msgstr "Typ ändern"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Resize VisualShader node"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Set Uniform Name"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Set Input Default Port"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Add Node to Visual Shader"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Duplicate Nodes"
-msgstr "Node(s) duplizieren"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Paste Nodes"
-msgstr "Node erstellen"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Delete Nodes"
-msgstr "Node(s) löschen"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Visual Shader Input Type Changed"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Light"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Show resulted shader code."
-msgstr "Node erstellen"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Create Shader Node"
-msgstr "Node erstellen"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Color function."
-msgstr "Script hinzufügen"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Color operator."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Grayscale function."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Converts HSV vector to RGB equivalent."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Converts RGB vector to HSV equivalent."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Sepia function."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Burn operator."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Darken operator."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Difference operator."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Dodge operator."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "HardLight operator."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Lighten operator."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Overlay operator."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Screen operator."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "SoftLight operator."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Color constant."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Color uniform."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the boolean result of the %s comparison between two parameters."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Equal (==)"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Greater Than (>)"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Greater Than or Equal (>=)"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Returns an associated vector if the provided scalars are equal, greater or "
-"less."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Returns the boolean result of the comparison between INF and a scalar "
-"parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Returns the boolean result of the comparison between NaN and a scalar "
-"parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Less Than (<)"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Less Than or Equal (<=)"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Not Equal (!=)"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Returns an associated vector if the provided boolean value is true or false."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Returns an associated scalar if the provided boolean value is true or false."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the boolean result of the comparison between two parameters."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Returns the boolean result of the comparison between INF (or NaN) and a "
-"scalar parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Boolean constant."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Boolean uniform."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "'%s' input parameter for all shader modes."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Input parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "'%s' input parameter for vertex and fragment shader modes."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "'%s' input parameter for fragment and light shader modes."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "'%s' input parameter for fragment shader mode."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "'%s' input parameter for light shader mode."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "'%s' input parameter for vertex shader mode."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "'%s' input parameter for vertex and fragment shader mode."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Scalar function."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Scalar operator."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "E constant (2.718282). Represents the base of the natural logarithm."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Epsilon constant (0.00001). Smallest possible scalar number."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Phi constant (1.618034). Golden ratio."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Pi/4 constant (0.785398) or 45 degrees."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Pi/2 constant (1.570796) or 90 degrees."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Pi constant (3.141593) or 180 degrees."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Tau constant (6.283185) or 360 degrees."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Sqrt2 constant (1.414214). Square root of 2."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the absolute value of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the arc-cosine of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the inverse hyperbolic cosine of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the arc-sine of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the inverse hyperbolic sine of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the arc-tangent of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the arc-tangent of the parameters."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the inverse hyperbolic tangent of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Finds the nearest integer that is greater than or equal to the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Constrains a value to lie between two further values."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the cosine of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the hyperbolic cosine of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Converts a quantity in radians to degrees."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Base-e Exponential."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Base-2 Exponential."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Finds the nearest integer less than or equal to the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Computes the fractional part of the argument."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the inverse of the square root of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Natural logarithm."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Base-2 logarithm."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the greater of two values."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the lesser of two values."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Linear interpolation between two scalars."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the opposite value of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "1.0 - scalar"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Returns the value of the first parameter raised to the power of the second."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Converts a quantity in degrees to radians."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "1.0 / scalar"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Finds the nearest integer to the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Finds the nearest even integer to the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Clamps the value between 0.0 and 1.0."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Extracts the sign of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the sine of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the hyperbolic sine of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the square root of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n"
-"\n"
-"Returns 0.0 if 'x' is smaller than 'edge0' and 1.0 if x is larger than "
-"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
-"using Hermite polynomials."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Step function( scalar(edge), scalar(x) ).\n"
-"\n"
-"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the tangent of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the hyperbolic tangent of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Finds the truncated value of the parameter."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Adds scalar to scalar."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Divides scalar by scalar."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Multiplies scalar by scalar."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the remainder of the two scalars."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Subtracts scalar from scalar."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Scalar constant."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Scalar uniform."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Perform the cubic texture lookup."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Perform the texture lookup."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Cubic texture uniform lookup."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "2D texture uniform lookup."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "2D texture uniform lookup with triplanar."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Transform function."
-msgstr "Transformationstyp"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Calculate the outer product of a pair of vectors.\n"
-"\n"
-"OuterProduct treats the first parameter 'c' as a column vector (matrix with "
-"one column) and the second parameter 'r' as a row vector (matrix with one "
-"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix "
-"whose number of rows is the number of components in 'c' and whose number of "
-"columns is the number of components in 'r'."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Composes transform from four vectors."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Decomposes transform to four vectors."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Calculates the determinant of a transform."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Calculates the inverse of a transform."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Calculates the transpose of a transform."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Multiplies transform by transform."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Multiplies vector by transform."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Transform constant."
-msgstr "Transformationstyp"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Transform uniform."
-msgstr "Transformationstyp"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Vector function."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Vector operator."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Composes vector from three scalars."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Decomposes vector to three scalars."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Calculates the cross product of two vectors."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the distance between two points."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Calculates the dot product of two vectors."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Returns the vector that points in the same direction as a reference vector. "
-"The function has three vector parameters : N, the vector to orient, I, the "
-"incident vector, and Nref, the reference vector. If the dot product of I and "
-"Nref is smaller than zero the return value is N. Otherwise -N is returned."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Calculates the length of a vector."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Linear interpolation between two vectors."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Linear interpolation between two vectors using scalar."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Calculates the normalize product of vector."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "1.0 - vector"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "1.0 / vector"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Returns the vector that points in the direction of reflection ( a : incident "
-"vector, b : normal vector )."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the vector that points in the direction of refraction."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n"
-"\n"
-"Returns 0.0 if 'x' is smaller than 'edge0' and 1.0 if 'x' is larger than "
-"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
-"using Hermite polynomials."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n"
-"\n"
-"Returns 0.0 if 'x' is smaller than 'edge0' and 1.0 if 'x' is larger than "
-"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
-"using Hermite polynomials."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Step function( vector(edge), vector(x) ).\n"
-"\n"
-"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Step function( scalar(edge), vector(x) ).\n"
-"\n"
-"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Adds vector to vector."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Divides vector by vector."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Multiplies vector by vector."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Returns the remainder of the two vectors."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Subtracts vector from vector."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Vector constant."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "Vector uniform."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Custom Godot Shader Language expression, with custom amount of input and "
-"output ports. This is a direct injection of code into the vertex/fragment/"
-"light function, do not use it to write the function declarations inside."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Returns falloff based on the dot product of surface normal and view "
-"direction of camera (pass associated inputs to it)."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"Custom Godot Shader Language expression, which is placed on top of the "
-"resulted shader. You can place various function definitions inside and call "
-"it later in the Expressions. You can also declare varyings, uniforms and "
-"constants."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "(Fragment/Light mode only) Scalar derivative function."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "(Fragment/Light mode only) Vector derivative function."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"(Fragment/Light mode only) (Vector) Derivative in 'x' using local "
-"differencing."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"(Fragment/Light mode only) (Scalar) Derivative in 'x' using local "
-"differencing."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"(Fragment/Light mode only) (Vector) Derivative in 'y' using local "
-"differencing."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"(Fragment/Light mode only) (Scalar) Derivative in 'y' using local "
-"differencing."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and "
-"'y'."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid ""
-"(Fragment/Light mode only) (Scalar) Sum of absolute derivative in 'x' and "
-"'y'."
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-msgid "VisualShader"
-msgstr ""
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Edit Visual Property"
-msgstr "Node Filter editieren"
-
-#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
-msgid "Visual Shader Mode Changed"
-msgstr "Typ ändern"
-
-#: editor/project_export.cpp
-msgid "Runnable"
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Script hinzufügen"
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Delete preset '%s'?"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid ""
-"Failed to export the project for platform '%s'.\n"
-"Export templates seem to be missing or invalid."
-msgstr ""
-
-#: editor/project_export.cpp
-msgid ""
-"Failed to export the project for platform '%s'.\n"
-"This might be due to a configuration issue in the export preset or your "
-"export settings."
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Release"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Exporting All"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "The given export path doesn't exist:"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Presets"
-msgstr ""
-
-#: editor/project_export.cpp editor/project_settings_editor.cpp
-msgid "Add..."
-msgstr ""
-
-#: editor/project_export.cpp
-msgid ""
-"If checked, the preset will be available for use in one-click deploy.\n"
-"Only one preset per platform may be marked as runnable."
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Export Path"
-msgstr "Projekt exportieren"
-
-#: editor/project_export.cpp
-msgid "Resources"
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Export all resources in the project"
-msgstr "Exportiere alle Resources des Projekts."
-
-#: editor/project_export.cpp
-msgid "Export selected scenes (and dependencies)"
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Export selected resources (and dependencies)"
-msgstr "Exportiere alle Resources des Projekts."
-
-#: editor/project_export.cpp
-msgid "Export Mode:"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Resources to export:"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid ""
-"Filters to export non-resource files/folders\n"
-"(comma-separated, e.g: *.json, *.txt, docs/*)"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid ""
-"Filters to exclude files/folders from project\n"
-"(comma-separated, e.g: *.json, *.txt, docs/*)"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Pack File"
-msgstr "Datei(en) öffnen"
-
-#: editor/project_export.cpp
-msgid "Features"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Custom (comma-separated):"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Feature List:"
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Script"
-msgstr "Script hinzufügen"
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Script Export Mode:"
-msgstr "Projekt exportieren"
-
-#: editor/project_export.cpp
-msgid "Text"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Compiled"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Encrypted (Provide Key Below)"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Invalid Encryption Key (must be 64 characters long)"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Script Encryption Key (256-bits as hex):"
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Export PCK/Zip"
-msgstr "Exportiere das Projekt PCK"
-
-#: editor/project_export.cpp
-msgid "Export Project"
-msgstr "Projekt exportieren"
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Export mode?"
-msgstr "Projekt exportieren"
-
-#: editor/project_export.cpp
-msgid "Export All"
-msgstr ""
-
-#: editor/project_export.cpp editor/project_manager.cpp
-#, fuzzy
-msgid "ZIP File"
-msgstr "Datei(en) öffnen"
-
-#: editor/project_export.cpp
-msgid "Godot Game Pack"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Export templates for this platform are missing:"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Manage Export Templates"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Export With Debug"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "The path specified doesn't exist."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Error opening package file (it's not in ZIP format)."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file."
-msgstr ""
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Please choose an empty folder."
-msgstr "Bitte ausserhalb des Projekt Verzeichnis exportieren!"
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Please choose a \"project.godot\" or \".zip\" file."
-msgstr "Bitte ausserhalb des Projekt Verzeichnis exportieren!"
-
-#: editor/project_manager.cpp
-msgid "This directory already contains a Godot project."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "New Game Project"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Imported Project"
-msgstr "Importierte Projekte"
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Invalid Project Name."
-msgstr "Projektname:"
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Couldn't create folder."
-msgstr "Node erstellen"
-
-#: editor/project_manager.cpp
-msgid "There is already a folder in this path with the specified name."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "It would be a good idea to name your project."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Invalid project path (changed anything?)."
-msgstr "Ungültiger Projektpfad, (wurde was geändert?)!"
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid ""
-"Couldn't load project.godot in project path (error %d). It may be missing or "
-"corrupted."
-msgstr "Die engine.cfg kann im Projektverzeichnis nicht erstellt werden."
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Couldn't edit project.godot in project path."
-msgstr "Die engine.cfg kann im Projektverzeichnis nicht erstellt werden."
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Couldn't create project.godot in project path."
-msgstr "Die engine.cfg kann im Projektverzeichnis nicht erstellt werden."
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Rename Project"
-msgstr "Neues Projekt erstellen"
-
-#: editor/project_manager.cpp
-msgid "Import Existing Project"
-msgstr "Existierendes Projekt importieren"
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Import & Edit"
-msgstr "Importiere von folgendem Node:"
-
-#: editor/project_manager.cpp
-msgid "Create New Project"
-msgstr "Neues Projekt erstellen"
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Create & Edit"
-msgstr "Node erstellen"
-
-#: editor/project_manager.cpp
-msgid "Install Project:"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Install & Edit"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Project Name:"
-msgstr "Projektname:"
-
-#: editor/project_manager.cpp
-msgid "Project Path:"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Project Installation Path:"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Renderer:"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "OpenGL ES 3.0"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"Higher visual quality\n"
-"All features available\n"
-"Incompatible with older hardware\n"
-"Not recommended for web games"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "OpenGL ES 2.0"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"Lower visual quality\n"
-"Some features not available\n"
-"Works on most hardware\n"
-"Recommended for web games"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Renderer can be changed later, but scenes may need to be adjusted."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Unnamed Project"
-msgstr ""
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Missing Project"
-msgstr "Existierendes Projekt importieren"
-
-#: editor/project_manager.cpp
-msgid "Error: Project is missing on the filesystem."
-msgstr ""
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Can't open project at '%s'."
-msgstr "Neues Projekt erstellen"
-
-#: editor/project_manager.cpp
-msgid "Are you sure to open more than one project?"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"The following project settings file does not specify the version of Godot "
-"through which it was created.\n"
-"\n"
-"%s\n"
-"\n"
-"If you proceed with opening it, it will be converted to Godot's current "
-"configuration file format.\n"
-"Warning: You won't be able to open the project with previous versions of the "
-"engine anymore."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"The following project settings file was generated by an older engine "
-"version, and needs to be converted for this version:\n"
-"\n"
-"%s\n"
-"\n"
-"Do you want to convert it?\n"
-"Warning: You won't be able to open the project with previous versions of the "
-"engine anymore."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"The project settings were created by a newer engine version, whose settings "
-"are not compatible with this version."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"Can't run project: no main scene defined.\n"
-"Please edit the project and set the main scene in the Project Settings under "
-"the \"Application\" category."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"Can't run project: Assets need to be imported.\n"
-"Please edit the project to trigger the initial import."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Are you sure to run %d projects at once?"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"Remove %d projects from the list?\n"
-"The project folders' contents won't be modified."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"Remove this project from the list?\n"
-"The project folder's contents won't be modified."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"Remove all missing projects from the list?\n"
-"The project folders' contents won't be modified."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"Language changed.\n"
-"The interface will update after restarting the editor or project manager."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"Are you sure to scan %s folders for existing Godot projects?\n"
-"This could take a while."
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Project Manager"
-msgstr ""
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Projects"
-msgstr "Projektname:"
-
-#: editor/project_manager.cpp
-msgid "Last Modified"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Scan"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "Select a Folder to Scan"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid "New Project"
-msgstr ""
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Remove Missing"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Templates"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/project_manager.cpp
-msgid "Restart Now"
-msgstr ""
-
-#: editor/project_manager.cpp
-#, fuzzy
-msgid "Can't run project"
-msgstr "Neues Projekt erstellen"
-
-#: editor/project_manager.cpp
-msgid ""
-"You currently don't have any projects.\n"
-"Would you like to explore official example projects in the Asset Library?"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid ""
-"The search box filters projects by name and last path component.\n"
-"To filter projects by name and full path, the query must contain at least "
-"one `/` character."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Key "
-msgstr "Taste "
-
-#: editor/project_settings_editor.cpp
-msgid "Joy Button"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Joy Axis"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Mouse Button"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid ""
-"Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or "
-"'\"'"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "An action with the name '%s' already exists."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Rename Input Action Event"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-#, fuzzy
-msgid "Change Action deadzone"
-msgstr "Typ ändern"
-
-#: editor/project_settings_editor.cpp
-msgid "Add Input Action Event"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "All Devices"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Device"
-msgstr ""
-
-#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
-msgid "Press a Key..."
-msgstr "Taste drücken..."
-
-#: editor/project_settings_editor.cpp
-msgid "Mouse Button Index:"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Left Button"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Right Button"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Middle Button"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Wheel Up Button"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Wheel Down Button"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Wheel Left Button"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Wheel Right Button"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "X Button 1"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "X Button 2"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Joypad Axis Index:"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Axis"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Joypad Button Index:"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Erase Input Action"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Erase Input Action Event"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Add Event"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Button"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Left Button."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Right Button."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Middle Button."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Wheel Up."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Wheel Down."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Add Global Property"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Select a setting item first!"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "No property '%s' exists."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Setting '%s' is internal, and it can't be deleted."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-#, fuzzy
-msgid "Delete Item"
-msgstr "Node(s) löschen"
-
-#: editor/project_settings_editor.cpp
-msgid ""
-"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or "
-"'\"'."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Error saving settings."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Settings saved OK."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Moved Input Action Event"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Override for Feature"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Add Translation"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Remove Translation"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Add Remapped Path"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Resource Remap Add Remap"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Change Resource Remap Language"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Remove Resource Remap"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Remove Resource Remap Option"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-#, fuzzy
-msgid "Changed Locale Filter"
-msgstr "Typ ändern"
-
-#: editor/project_settings_editor.cpp
-msgid "Changed Locale Filter Mode"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-#, fuzzy
-msgid "Project Settings (project.godot)"
-msgstr "Projekteinstellungen"
-
-#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
-msgid "General"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Override For..."
-msgstr ""
-
-#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
-msgid "The editor must be restarted for changes to take effect."
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Input Map"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Action:"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-#, fuzzy
-msgid "Action"
-msgstr "Script hinzufügen"
-
-#: editor/project_settings_editor.cpp
-msgid "Deadzone"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Device:"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Index:"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Localization"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Translations"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Translations:"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Remaps"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Resources:"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Remaps by Locale:"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Locale"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Locales Filter"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Show All Locales"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Show Selected Locales Only"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-#, fuzzy
-msgid "Filter mode:"
-msgstr "Node erstellen"
-
-#: editor/project_settings_editor.cpp
-msgid "Locales:"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "AutoLoad"
-msgstr ""
-
-#: editor/project_settings_editor.cpp
-msgid "Plugins"
-msgstr ""
-
-#: editor/property_editor.cpp
-msgid "Preset..."
-msgstr ""
-
-#: editor/property_editor.cpp
-msgid "Zero"
-msgstr ""
-
-#: editor/property_editor.cpp
-msgid "Easing In-Out"
-msgstr ""
-
-#: editor/property_editor.cpp
-msgid "Easing Out-In"
-msgstr ""
-
-#: editor/property_editor.cpp
-msgid "File..."
-msgstr ""
-
-#: editor/property_editor.cpp
-msgid "Dir..."
-msgstr ""
-
-#: editor/property_editor.cpp
-msgid "Assign"
-msgstr ""
-
-#: editor/property_editor.cpp
-#, fuzzy
-msgid "Select Node"
-msgstr "Node(s) löschen"
-
-#: editor/property_editor.cpp
-msgid "Error loading file: Not a resource!"
-msgstr ""
-
-#: editor/property_editor.cpp
-#, fuzzy
-msgid "Pick a Node"
-msgstr "TimeScale-Node"
-
-#: editor/property_editor.cpp
-msgid "Bit %d, val %d."
-msgstr ""
-
-#: editor/property_selector.cpp
-msgid "Select Property"
-msgstr ""
-
-#: editor/property_selector.cpp
-msgid "Select Virtual Method"
-msgstr ""
-
-#: editor/property_selector.cpp
-msgid "Select Method"
-msgstr ""
-
-#: editor/rename_dialog.cpp editor/scene_tree_dock.cpp
-msgid "Batch Rename"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Prefix"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Suffix"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Use Regular Expressions"
-msgstr "Typ ändern"
-
-#: editor/rename_dialog.cpp
-msgid "Advanced Options"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Substitute"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Node name"
-msgstr "Node"
-
-#: editor/rename_dialog.cpp
-msgid "Node's parent name, if available"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Node type"
-msgstr "Node"
-
-#: editor/rename_dialog.cpp
-msgid "Current scene name"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Root node name"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid ""
-"Sequential integer counter.\n"
-"Compare counter options."
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Per-level Counter"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Initial value for the counter"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Step"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Amount by which counter is incremented for each node"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Padding"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid ""
-"Minimum number of digits for the counter.\n"
-"Missing digits are padded with leading zeros."
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Post-Process"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Keep"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "PascalCase to snake_case"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "snake_case to PascalCase"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Case"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "To Lowercase"
-msgstr "Verbindung zu Node:"
-
-#: editor/rename_dialog.cpp
-msgid "To Uppercase"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-msgid "Reset"
-msgstr ""
-
-#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Regular Expression Error"
-msgstr "Typ ändern"
-
-#: editor/rename_dialog.cpp
-msgid "At character %s"
-msgstr ""
-
-#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
-msgid "Reparent Node"
-msgstr ""
-
-#: editor/reparent_dialog.cpp
-msgid "Reparent Location (Select new Parent):"
-msgstr ""
-
-#: editor/reparent_dialog.cpp
-msgid "Keep Global Transform"
-msgstr ""
-
-#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
-msgid "Reparent"
-msgstr ""
-
-#: editor/run_settings_dialog.cpp
-msgid "Run Mode:"
-msgstr ""
-
-#: editor/run_settings_dialog.cpp
-msgid "Current Scene"
-msgstr ""
-
-#: editor/run_settings_dialog.cpp
-msgid "Main Scene"
-msgstr ""
-
-#: editor/run_settings_dialog.cpp
-msgid "Main Scene Arguments:"
-msgstr ""
-
-#: editor/run_settings_dialog.cpp
-msgid "Scene Run Settings"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "No parent to instance the scenes at."
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Error loading scene from %s"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid ""
-"Cannot instance the scene '%s' because the current scene exists within one "
-"of its nodes."
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Instance Scene(s)"
-msgstr "Instanziere Szene(n)"
-
-#: editor/scene_tree_dock.cpp
-msgid "Replace with Branch Scene"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Instance Child Scene"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Clear Script"
-msgstr "Script hinzufügen"
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "This operation can't be done on the tree root."
-msgstr "Das funktioniert nicht beim obersten Node. (tree root)"
-
-#: editor/scene_tree_dock.cpp
-msgid "Move Node In Parent"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Move Nodes In Parent"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Duplicate Node(s)"
-msgstr "Node(s) duplizieren"
-
-#: editor/scene_tree_dock.cpp
-msgid "Can't reparent nodes in inherited scenes, order of nodes can't change."
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Node must belong to the edited scene to become root."
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Instantiated scenes can't become root"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Make node as Root"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Delete %d nodes?"
-msgstr "Node(s) löschen"
-
-#: editor/scene_tree_dock.cpp
-msgid "Delete the root node \"%s\"?"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Delete node \"%s\" and its children?"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Delete node \"%s\"?"
-msgstr "Node(s) löschen"
-
-#: editor/scene_tree_dock.cpp
-msgid "Can not perform with the root node."
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "This operation can't be done on instanced scenes."
-msgstr "Das funktioniert nicht bei einer instanzierten Szene."
-
-#: editor/scene_tree_dock.cpp
-msgid "Save New Scene As..."
-msgstr "Neue Szene speichern als..."
-
-#: editor/scene_tree_dock.cpp
-msgid ""
-"Disabling \"editable_instance\" will cause all properties of the node to be "
-"reverted to their default."
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid ""
-"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and "
-"cause all properties of the node to be reverted to their default."
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Make Local"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Create Root Node:"
-msgstr "Node erstellen"
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "2D Scene"
-msgstr "Szene starten"
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "3D Scene"
-msgstr "Szene starten"
-
-#: editor/scene_tree_dock.cpp
-msgid "User Interface"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Other Node"
-msgstr "Node(s) löschen"
-
-#: editor/scene_tree_dock.cpp
-msgid "Can't operate on nodes from a foreign scene!"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Can't operate on nodes the current scene inherits from!"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Attach Script"
-msgstr "Script hinzufügen"
-
-#: editor/scene_tree_dock.cpp
-msgid "Remove Node(s)"
-msgstr "Node(s) entfernen"
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Change type of node(s)"
-msgstr "Typ ändern"
-
-#: editor/scene_tree_dock.cpp
-msgid ""
-"Couldn't save new scene. Likely dependencies (instances) couldn't be "
-"satisfied."
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Error saving scene."
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/scene_tree_dock.cpp
-msgid "Error duplicating scene to save it."
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Sub-Resources"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Clear Inheritance"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Editable Children"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Load As Placeholder"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Open Documentation"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Add Child Node"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Expand/Collapse All"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Change Type"
-msgstr "Typ ändern"
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Reparent to New Node"
-msgstr "Node erstellen"
-
-#: editor/scene_tree_dock.cpp
-msgid "Make Scene Root"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Merge From Scene"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
-msgid "Save Branch as Scene"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
-msgid "Copy Node Path"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Delete (No Confirm)"
-msgstr "Bitte bestätigen..."
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Add/Create a New Node."
-msgstr "Node erstellen"
-
-#: editor/scene_tree_dock.cpp
-msgid ""
-"Instance a scene file as a Node. Creates an inherited scene if no root node "
-"exists."
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Remote"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/scene_tree_dock.cpp
-msgid "Local"
-msgstr ""
-
-#: editor/scene_tree_dock.cpp
-msgid "Clear Inheritance? (No Undo!)"
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-msgid "Toggle Visible"
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-#, fuzzy
-msgid "Unlock Node"
-msgstr "Node(s) löschen"
-
-#: editor/scene_tree_editor.cpp
-msgid "Button Group"
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-#, fuzzy
-msgid "(Connecting From)"
-msgstr "Connections editieren"
-
-#: editor/scene_tree_editor.cpp
-msgid "Node configuration warning:"
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-msgid ""
-"Node has %s connection(s) and %s group(s).\n"
-"Click to show signals dock."
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-msgid ""
-"Node has %s connection(s).\n"
-"Click to show signals dock."
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-msgid ""
-"Node is in %s group(s).\n"
-"Click to show groups dock."
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-#, fuzzy
-msgid "Open Script:"
-msgstr "Script hinzufügen"
-
-#: editor/scene_tree_editor.cpp
-msgid ""
-"Node is locked.\n"
-"Click to unlock it."
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-msgid ""
-"Children are not selectable.\n"
-"Click to make selectable."
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-msgid "Toggle Visibility"
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-msgid ""
-"AnimationPlayer is pinned.\n"
-"Click to unpin."
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-msgid "Invalid node name, the following characters are not allowed:"
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-msgid "Rename Node"
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-msgid "Scene Tree (Nodes):"
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-msgid "Node Configuration Warning!"
-msgstr ""
-
-#: editor/scene_tree_editor.cpp
-msgid "Select a Node"
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-msgid "Path is empty."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-msgid "Filename is empty."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-msgid "Path is not local."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid base path."
-msgstr "Projektname:"
-
-#: editor/script_create_dialog.cpp
-msgid "A directory with the same name exists."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid extension."
-msgstr "Projektname:"
-
-#: editor/script_create_dialog.cpp
-msgid "Wrong extension chosen."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Error loading template '%s'"
-msgstr "Fehler beim Instanzieren der %s Szene"
-
-#: editor/script_create_dialog.cpp
-msgid "Error - Could not create script in filesystem."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Error loading script from %s"
-msgstr "Fehler beim Instanzieren der %s Szene"
-
-#: editor/script_create_dialog.cpp
-msgid "Overrides"
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-msgid "N/A"
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-msgid "Open Script / Choose Location"
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Open Script"
-msgstr "Script hinzufügen"
-
-#: editor/script_create_dialog.cpp
-#, fuzzy
-msgid "File exists, it will be reused."
-msgstr "Datei existiert, Ãœberschreiben?"
-
-#: editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid class name."
-msgstr "Projektname:"
-
-#: editor/script_create_dialog.cpp
-msgid "Invalid inherited parent name or path."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-msgid "Script path/name is valid."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-msgid "Allowed: a-z, A-Z, 0-9, _ and ."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-msgid "Built-in script (into scene file)."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Will create a new script file."
-msgstr "Neues Projekt erstellen"
-
-#: editor/script_create_dialog.cpp
-msgid "Will load an existing script file."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-msgid "Script file already exists."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-msgid ""
-"Note: Built-in scripts have some limitations and can't be edited using an "
-"external editor."
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-msgid "Class Name:"
-msgstr ""
-
-#: editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Template:"
-msgstr "Ungültige Bilder löschen"
-
-#: editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Built-in Script:"
-msgstr "Script hinzufügen"
-
-#: editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Attach Node Script"
-msgstr "Script hinzufügen"
-
-#: editor/script_editor_debugger.cpp
-#, fuzzy
-msgid "Remote "
-msgstr "Ungültige Bilder löschen"
-
-#: editor/script_editor_debugger.cpp
-msgid "Bytes:"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Warning:"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-#, fuzzy
-msgid "Error:"
-msgstr "Szene kann nicht gespeichert werden."
-
-#: editor/script_editor_debugger.cpp
-#, fuzzy
-msgid "C++ Error"
-msgstr "Connections editieren"
-
-#: editor/script_editor_debugger.cpp
-#, fuzzy
-msgid "C++ Error:"
-msgstr "Connections editieren"
-
-#: editor/script_editor_debugger.cpp
-msgid "C++ Source"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Source:"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "C++ Source:"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Stack Trace"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Errors"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-#, fuzzy
-msgid "Child process connected."
-msgstr "Verbindung zu Node:"
-
-#: editor/script_editor_debugger.cpp
-#, fuzzy
-msgid "Copy Error"
-msgstr "Connections editieren"
-
-#: editor/script_editor_debugger.cpp
-msgid "Video RAM"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-#, fuzzy
-msgid "Skip Breakpoints"
-msgstr "Bild einfügen"
-
-#: editor/script_editor_debugger.cpp
-msgid "Inspect Previous Instance"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Inspect Next Instance"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Stack Frames"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Profiler"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-#, fuzzy
-msgid "Network Profiler"
-msgstr "Projekt exportieren"
-
-#: editor/script_editor_debugger.cpp
-msgid "Monitor"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Value"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Monitors"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Pick one or more items from the list to display the graph."
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "List of Video Memory Usage by Resource:"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Total:"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-#, fuzzy
-msgid "Export list to a CSV file"
-msgstr "Projekt exportieren"
-
-#: editor/script_editor_debugger.cpp
-msgid "Resource Path"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Type"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Format"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Usage"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Misc"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Clicked Control:"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Clicked Control Type:"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Live Edit Root:"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Set From Tree"
-msgstr ""
-
-#: editor/script_editor_debugger.cpp
-msgid "Export measures as CSV"
-msgstr ""
-
-#: editor/settings_config_dialog.cpp
-msgid "Erase Shortcut"
-msgstr ""
-
-#: editor/settings_config_dialog.cpp
-msgid "Restore Shortcut"
-msgstr ""
-
-#: editor/settings_config_dialog.cpp
-msgid "Change Shortcut"
-msgstr ""
-
-#: editor/settings_config_dialog.cpp
-msgid "Editor Settings"
-msgstr ""
-
-#: editor/settings_config_dialog.cpp
-msgid "Shortcuts"
-msgstr ""
-
-#: editor/settings_config_dialog.cpp
-msgid "Binding"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp
-msgid "Change Light Radius"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp
-msgid "Change AudioStreamPlayer3D Emission Angle"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp
-msgid "Change Camera FOV"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp
-msgid "Change Camera Size"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp
-msgid "Change Notifier AABB"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp
-msgid "Change Particles AABB"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp
-msgid "Change Probe Extents"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp
-msgid "Change Sphere Shape Radius"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp
-msgid "Change Box Shape Extents"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp
-msgid "Change Capsule Shape Radius"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp
-msgid "Change Capsule Shape Height"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp
-msgid "Change Cylinder Shape Radius"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp
-msgid "Change Cylinder Shape Height"
-msgstr ""
-
-#: editor/spatial_editor_gizmos.cpp
-msgid "Change Ray Shape Length"
-msgstr ""
-
-#: modules/csg/csg_gizmos.cpp
-msgid "Change Cylinder Radius"
-msgstr ""
-
-#: modules/csg/csg_gizmos.cpp
-msgid "Change Cylinder Height"
-msgstr ""
-
-#: modules/csg/csg_gizmos.cpp
-msgid "Change Torus Inner Radius"
-msgstr ""
-
-#: modules/csg/csg_gizmos.cpp
-msgid "Change Torus Outer Radius"
-msgstr ""
-
-#: modules/gdnative/gdnative_library_editor_plugin.cpp
-msgid "Select the dynamic library for this entry"
-msgstr ""
-
-#: modules/gdnative/gdnative_library_editor_plugin.cpp
-msgid "Select dependencies of the library for this entry"
-msgstr ""
-
-#: modules/gdnative/gdnative_library_editor_plugin.cpp
-#, fuzzy
-msgid "Remove current entry"
-msgstr "Ungültige Bilder löschen"
-
-#: modules/gdnative/gdnative_library_editor_plugin.cpp
-msgid "Double click to create a new entry"
-msgstr ""
-
-#: modules/gdnative/gdnative_library_editor_plugin.cpp
-msgid "Platform:"
-msgstr ""
-
-#: modules/gdnative/gdnative_library_editor_plugin.cpp
-msgid "Platform"
-msgstr ""
-
-#: modules/gdnative/gdnative_library_editor_plugin.cpp
-msgid "Dynamic Library"
-msgstr ""
-
-#: modules/gdnative/gdnative_library_editor_plugin.cpp
-msgid "Add an architecture entry"
-msgstr ""
-
-#: modules/gdnative/gdnative_library_editor_plugin.cpp
-msgid "GDNativeLibrary"
-msgstr ""
-
-#: modules/gdnative/gdnative_library_singleton_editor.cpp
-msgid "Enabled GDNative Singleton"
-msgstr ""
-
-#: modules/gdnative/gdnative_library_singleton_editor.cpp
-msgid "Disabled GDNative Singleton"
-msgstr ""
-
-#: modules/gdnative/gdnative_library_singleton_editor.cpp
-msgid "Library"
-msgstr ""
-
-#: modules/gdnative/gdnative_library_singleton_editor.cpp
-msgid "Libraries: "
-msgstr ""
-
-#: modules/gdnative/register_types.cpp
-msgid "GDNative"
-msgstr ""
-
-#: modules/gdscript/gdscript_functions.cpp
-msgid "Step argument is zero!"
-msgstr ""
-
-#: modules/gdscript/gdscript_functions.cpp
-msgid "Not a script with an instance"
-msgstr ""
-
-#: modules/gdscript/gdscript_functions.cpp
-msgid "Not based on a script"
-msgstr ""
-
-#: modules/gdscript/gdscript_functions.cpp
-msgid "Not based on a resource file"
-msgstr ""
-
-#: modules/gdscript/gdscript_functions.cpp
-msgid "Invalid instance dictionary format (missing @path)"
-msgstr ""
-
-#: modules/gdscript/gdscript_functions.cpp
-msgid "Invalid instance dictionary format (can't load script at @path)"
-msgstr ""
-
-#: modules/gdscript/gdscript_functions.cpp
-msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr ""
-
-#: modules/gdscript/gdscript_functions.cpp
-msgid "Invalid instance dictionary (invalid subclasses)"
-msgstr ""
-
-#: modules/gdscript/gdscript_functions.cpp
-msgid "Object can't provide a length."
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Next Plane"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Previous Plane"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Plane:"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Next Floor"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Previous Floor"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Floor:"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "GridMap Delete Selection"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
-msgid "GridMap Fill Selection"
-msgstr "Projekteinstellungen"
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
-msgid "GridMap Paste Selection"
-msgstr "Projekteinstellungen"
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
-msgid "GridMap Paint"
-msgstr "Projekteinstellungen"
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Grid Map"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Snap View"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Clip Disabled"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Clip Above"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Clip Below"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Edit X Axis"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Edit Y Axis"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Edit Z Axis"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Cursor Rotate X"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Cursor Rotate Y"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Cursor Rotate Z"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Cursor Back Rotate X"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Cursor Back Rotate Y"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Cursor Back Rotate Z"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Cursor Clear Rotation"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
-msgid "Paste Selects"
-msgstr "Projekteinstellungen"
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
-msgid "Clear Selection"
-msgstr "Script hinzufügen"
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
-msgid "Fill Selection"
-msgstr "Script hinzufügen"
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
-msgid "GridMap Settings"
-msgstr "Projekteinstellungen"
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Pick Distance:"
-msgstr ""
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
-msgid "Filter meshes"
-msgstr "Node erstellen"
-
-#: modules/gridmap/grid_map_editor_plugin.cpp
-msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
-msgstr ""
-
-#: modules/mono/csharp_script.cpp
-msgid "Class name can't be a reserved keyword"
-msgstr ""
-
-#: modules/mono/mono_gd/gd_mono_utils.cpp
-msgid "End of inner exception stack trace"
-msgstr ""
-
-#: modules/recast/navigation_mesh_editor_plugin.cpp
-msgid "Bake NavMesh"
-msgstr ""
-
-#: modules/recast/navigation_mesh_editor_plugin.cpp
-msgid "Clear the navigation mesh."
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Setting up Configuration..."
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Calculating grid size..."
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Creating heightfield..."
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Marking walkable triangles..."
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Constructing compact heightfield..."
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Eroding walkable area..."
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Partitioning..."
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Creating contours..."
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Creating polymesh..."
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Converting to native navigation mesh..."
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Navigation Mesh Generator Setup:"
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Parsing Geometry..."
-msgstr ""
-
-#: modules/recast/navigation_mesh_generator.cpp
-msgid "Done!"
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid ""
-"A node yielded without working memory, please read the docs on how to yield "
-"properly!"
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid ""
-"Node yielded, but did not return a function state in the first working "
-"memory."
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid ""
-"Return value must be assigned to first element of node working memory! Fix "
-"your node please."
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid "Node returned an invalid sequence output: "
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid "Found sequence bit but not the node in the stack, report bug!"
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid "Stack overflow with stack depth: "
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Change Signal Arguments"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Change Argument Type"
-msgstr "Typ ändern"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Change Argument name"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Set Variable Default Value"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Set Variable Type"
-msgstr "Ungültige Bilder löschen"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Add Input Port"
-msgstr "Script hinzufügen"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Add Output Port"
-msgstr "Script hinzufügen"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Override an existing built-in function."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Create a new function."
-msgstr "Node erstellen"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Variables:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Create a new variable."
-msgstr "Node erstellen"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Signals:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Create a new signal."
-msgstr "Node erstellen"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Name is not a valid identifier:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Name already in use by another func/var/signal:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Rename Function"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Rename Variable"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Rename Signal"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Function"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Delete input port"
-msgstr "Ungültige Bilder löschen"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Variable"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Add Signal"
-msgstr "Script hinzufügen"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Remove Input Port"
-msgstr "Ungültige Bilder löschen"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Remove Output Port"
-msgstr "Ungültige Bilder löschen"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Change Expression"
-msgstr "Typ ändern"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Remove VisualScript Nodes"
-msgstr "Ungültige Bilder löschen"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Duplicate VisualScript Nodes"
-msgstr "Node(s) duplizieren"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold %s to drop a simple reference to the node."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Ctrl to drop a simple reference to the node."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold %s to drop a Variable Setter."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Ctrl to drop a Variable Setter."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Add Preload Node"
-msgstr "Node"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Add Node(s) From Tree"
-msgstr "Node von Szene"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid ""
-"Can't drop properties because script '%s' is not used in this scene.\n"
-"Drop holding 'Shift' to just copy the signature."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Getter Property"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Setter Property"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Change Base Type"
-msgstr "Typ ändern"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Move Node(s)"
-msgstr "Node(s) entfernen"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Remove VisualScript Node"
-msgstr "Ungültige Bilder löschen"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Connect Nodes"
-msgstr "Verbindung zu Node:"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Disconnect Nodes"
-msgstr "Verbindung zu Node:"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Connect Node Data"
-msgstr "Verbindung zu Node:"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Connect Node Sequence"
-msgstr "Verbindung zu Node:"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Script already has function '%s'"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Change Input Value"
-msgstr "Typ ändern"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Resize Comment"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Can't copy the function node."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Clipboard is empty!"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Paste VisualScript Nodes"
-msgstr "Node erstellen"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Can't create function with a function node."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Can't create function of nodes from nodes of multiple functions."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Select at least one node with sequence port."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Try to only have one sequence input in selection."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Create Function"
-msgstr "Node erstellen"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Remove Function"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Remove Variable"
-msgstr "Ungültige Bilder löschen"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Editing Variable:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Remove Signal"
-msgstr "Ungültige Bilder löschen"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Editing Signal:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Make Tool:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Members:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Change Base Type:"
-msgstr "Typ ändern"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Add Nodes..."
-msgstr "Node"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Add Function..."
-msgstr "Node erstellen"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "function_name"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Select or create a function to edit its graph."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Delete Selected"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Find Node Type"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Copy Nodes"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Cut Nodes"
-msgstr "Node erstellen"
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Make Function"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Refresh Graph"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Edit Member"
-msgstr "Node Filter editieren"
-
-#: modules/visual_script/visual_script_flow_control.cpp
-msgid "Input type not iterable: "
-msgstr ""
-
-#: modules/visual_script/visual_script_flow_control.cpp
-msgid "Iterator became invalid"
-msgstr ""
-
-#: modules/visual_script/visual_script_flow_control.cpp
-msgid "Iterator became invalid: "
-msgstr ""
-
-#: modules/visual_script/visual_script_func_nodes.cpp
-msgid "Invalid index property name."
-msgstr ""
-
-#: modules/visual_script/visual_script_func_nodes.cpp
-msgid "Base object is not a Node!"
-msgstr ""
-
-#: modules/visual_script/visual_script_func_nodes.cpp
-msgid "Path does not lead Node!"
-msgstr ""
-
-#: modules/visual_script/visual_script_func_nodes.cpp
-msgid "Invalid index property name '%s' in node %s."
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid ": Invalid argument of type: "
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid ": Invalid arguments: "
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "VariableGet not found in script: "
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "VariableSet not found in script: "
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "Custom node has no _step() method, can't process graph."
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid ""
-"Invalid return value from _step(), must be integer (seq out), or string "
-"(error)."
-msgstr ""
-
-#: modules/visual_script/visual_script_property_selector.cpp
-#, fuzzy
-msgid "Search VisualScript"
-msgstr "Ungültige Bilder löschen"
-
-#: modules/visual_script/visual_script_property_selector.cpp
-msgid "Get %s"
-msgstr ""
-
-#: modules/visual_script/visual_script_property_selector.cpp
-msgid "Set %s"
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "Package name is missing."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "Package segments must be of non-zero length."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "The character '%s' is not allowed in Android application package names."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "A digit cannot be the first character in a package segment."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "The character '%s' cannot be the first character in a package segment."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "The package must have at least one '.' separator."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "Select device from the list"
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "ADB executable not configured in the Editor Settings."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "OpenJDK jarsigner not configured in the Editor Settings."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "Debug keystore not configured in the Editor Settings nor in the preset."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "Custom build requires a valid Android SDK path in Editor Settings."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "Invalid Android SDK path for custom build in Editor Settings."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid ""
-"Android build template not installed in the project. Install it from the "
-"Project menu."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "Invalid public key for APK expansion."
-msgstr ""
-
-#: platform/android/export/export.cpp
-#, fuzzy
-msgid "Invalid package name:"
-msgstr "Projektname:"
-
-#: platform/android/export/export.cpp
-msgid ""
-"Trying to build from a custom built template, but no version info for it "
-"exists. Please reinstall from the 'Project' menu."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid ""
-"Android build version mismatch:\n"
-" Template installed: %s\n"
-" Godot Version: %s\n"
-"Please reinstall Android build template from 'Project' menu."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "Building Android Project (gradle)"
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid ""
-"Building of Android project failed, check output for the error.\n"
-"Alternatively visit docs.godotengine.org for Android build documentation."
-msgstr ""
-
-#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr ""
-
-#: platform/iphone/export/export.cpp
-msgid "Identifier is missing."
-msgstr ""
-
-#: platform/iphone/export/export.cpp
-msgid "The character '%s' is not allowed in Identifier."
-msgstr ""
-
-#: platform/iphone/export/export.cpp
-msgid "App Store Team ID not specified - cannot configure the project."
-msgstr ""
-
-#: platform/iphone/export/export.cpp
-msgid "Invalid Identifier:"
-msgstr ""
-
-#: platform/iphone/export/export.cpp
-msgid "Required icon is not specified in the preset."
-msgstr ""
-
-#: platform/javascript/export/export.cpp
-msgid "Stop HTTP Server"
-msgstr ""
-
-#: platform/javascript/export/export.cpp
-msgid "Run in Browser"
-msgstr ""
-
-#: platform/javascript/export/export.cpp
-msgid "Run exported HTML in the system's default browser."
-msgstr ""
-
-#: platform/javascript/export/export.cpp
-#, fuzzy
-msgid "Could not write file:"
-msgstr "Neues Projekt erstellen"
-
-#: platform/javascript/export/export.cpp
-msgid "Could not open template for export:"
-msgstr ""
-
-#: platform/javascript/export/export.cpp
-msgid "Invalid export template:"
-msgstr ""
-
-#: platform/javascript/export/export.cpp
-msgid "Could not read custom HTML shell:"
-msgstr ""
-
-#: platform/javascript/export/export.cpp
-msgid "Could not read boot splash image file:"
-msgstr ""
-
-#: platform/javascript/export/export.cpp
-msgid "Using default boot splash image."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-#, fuzzy
-msgid "Invalid package short name."
-msgstr "Projektname:"
-
-#: platform/uwp/export/export.cpp
-#, fuzzy
-msgid "Invalid package unique name."
-msgstr "Projektname:"
-
-#: platform/uwp/export/export.cpp
-#, fuzzy
-msgid "Invalid package publisher display name."
-msgstr "Projektname:"
-
-#: platform/uwp/export/export.cpp
-#, fuzzy
-msgid "Invalid product GUID."
-msgstr "Projektname:"
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid publisher GUID."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-#, fuzzy
-msgid "Invalid background color."
-msgstr "Projektname:"
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr ""
-
-#: scene/2d/animated_sprite.cpp
-#, fuzzy
-msgid ""
-"A SpriteFrames resource must be created or set in the \"Frames\" property in "
-"order for AnimatedSprite to display frames."
-msgstr ""
-"Damit AnimatedSprite Frames anzeigen kann, muss eine SpriteFrame Resource "
-"unter der 'Frames' Property erstellt oder gesetzt sein."
-
-#: scene/2d/canvas_modulate.cpp
-msgid ""
-"Only one visible CanvasModulate is allowed per scene (or set of instanced "
-"scenes). The first created one will work, while the rest will be ignored."
-msgstr ""
-"Nur ein sichtbares CanvasModulate ist pro Szene (oder ein Satz von "
-"instanzierten Szenen) erlaubt. Das erste erstellte gewinnt der Rest wird "
-"ignoriert."
-
-#: scene/2d/collision_object_2d.cpp
-msgid ""
-"This node has no shape, so it can't collide or interact with other objects.\n"
-"Consider adding a CollisionShape2D or CollisionPolygon2D as a child to "
-"define its shape."
-msgstr ""
-
-#: scene/2d/collision_polygon_2d.cpp
-msgid ""
-"CollisionPolygon2D only serves to provide a collision shape to a "
-"CollisionObject2D derived node. Please only use it as a child of Area2D, "
-"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
-msgstr ""
-
-#: scene/2d/collision_polygon_2d.cpp
-msgid "An empty CollisionPolygon2D has no effect on collision."
-msgstr "Ein leeres CollisionPolygon2D hat keinen Einfluss au die Kollision."
-
-#: scene/2d/collision_shape_2d.cpp
-msgid ""
-"CollisionShape2D only serves to provide a collision shape to a "
-"CollisionObject2D derived node. Please only use it as a child of Area2D, "
-"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
-msgstr ""
-
-#: scene/2d/collision_shape_2d.cpp
-msgid ""
-"A shape must be provided for CollisionShape2D to function. Please create a "
-"shape resource for it!"
-msgstr ""
-
-#: scene/2d/cpu_particles_2d.cpp
-msgid ""
-"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
-"\"Particles Animation\" enabled."
-msgstr ""
-
-#: scene/2d/light_2d.cpp
-msgid ""
-"A texture with the shape of the light must be supplied to the \"Texture\" "
-"property."
-msgstr ""
-
-#: scene/2d/light_occluder_2d.cpp
-msgid ""
-"An occluder polygon must be set (or drawn) for this occluder to take effect."
-msgstr ""
-"Ein Okkluder Polygon muss gesetzt oder gezeichnet werden, damit dieser "
-"Okkluder funktioniert."
-
-#: scene/2d/light_occluder_2d.cpp
-#, fuzzy
-msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
-msgstr ""
-"Das Okkluder Polygon für diesen Okkluder ist leer. Bitte zeichne ein Polygon!"
-
-#: scene/2d/navigation_polygon.cpp
-#, fuzzy
-msgid ""
-"A NavigationPolygon resource must be set or created for this node to work. "
-"Please set a property or draw a polygon."
-msgstr ""
-"Eine NavigationPolygon Ressource muss für diesen Node gesetzt oder erstellt "
-"werden, damit er funktioniert. Bitte setze eine Variable oder zeichne ein "
-"Polygon."
-
-#: scene/2d/navigation_polygon.cpp
-msgid ""
-"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
-"node. It only provides navigation data."
-msgstr ""
-"NavigationPolygonInstance muss ein Kind oder Grosskind vom Navigation2D Node "
-"sein. Es liefert nur Navigationsdaten."
-
-#: scene/2d/parallax_layer.cpp
-msgid ""
-"ParallaxLayer node only works when set as child of a ParallaxBackground node."
-msgstr ""
-
-#: scene/2d/particles_2d.cpp
-msgid ""
-"GPU-based particles are not supported by the GLES2 video driver.\n"
-"Use the CPUParticles2D node instead. You can use the \"Convert to "
-"CPUParticles\" option for this purpose."
-msgstr ""
-
-#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
-msgid ""
-"A material to process the particles is not assigned, so no behavior is "
-"imprinted."
-msgstr ""
-
-#: scene/2d/particles_2d.cpp
-msgid ""
-"Particles2D animation requires the usage of a CanvasItemMaterial with "
-"\"Particles Animation\" enabled."
-msgstr ""
-
-#: scene/2d/path_2d.cpp
-msgid "PathFollow2D only works when set as a child of a Path2D node."
-msgstr ""
-"PathFollow2D funktioniert nur, wenn sie als Unterobjekt eines Path2D Nodes "
-"gesetzt wird."
-
-#: scene/2d/physics_body_2d.cpp
-msgid ""
-"Size changes to RigidBody2D (in character or rigid modes) will be overridden "
-"by the physics engine when running.\n"
-"Change the size in children collision shapes instead."
-msgstr ""
-
-#: scene/2d/remote_transform_2d.cpp
-msgid "Path property must point to a valid Node2D node to work."
-msgstr ""
-"Die Pfad-Variable muss auf einen gültigen Node2D Node zeigen um zu "
-"funktionieren."
-
-#: scene/2d/skeleton_2d.cpp
-msgid "This Bone2D chain should end at a Skeleton2D node."
-msgstr ""
-
-#: scene/2d/skeleton_2d.cpp
-msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node."
-msgstr ""
-
-#: scene/2d/skeleton_2d.cpp
-msgid ""
-"This bone lacks a proper REST pose. Go to the Skeleton2D node and set one."
-msgstr ""
-
-#: scene/2d/tile_map.cpp
-msgid ""
-"TileMap with Use Parent on needs a parent CollisionObject2D to give shapes "
-"to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, "
-"KinematicBody2D, etc. to give them a shape."
-msgstr ""
-
-#: scene/2d/visibility_notifier_2d.cpp
-#, fuzzy
-msgid ""
-"VisibilityEnabler2D works best when used with the edited scene root directly "
-"as parent."
-msgstr ""
-"VisibilityEnable2D funktioniert am besten, wenn es ein Unterobjekt erster "
-"Ordnung der bearbeiteten Hauptszene ist."
-
-#: scene/3d/arvr_nodes.cpp
-msgid "ARVRCamera must have an ARVROrigin node as its parent."
-msgstr ""
-
-#: scene/3d/arvr_nodes.cpp
-msgid "ARVRController must have an ARVROrigin node as its parent."
-msgstr ""
-
-#: scene/3d/arvr_nodes.cpp
-msgid ""
-"The controller ID must not be 0 or this controller won't be bound to an "
-"actual controller."
-msgstr ""
-
-#: scene/3d/arvr_nodes.cpp
-msgid "ARVRAnchor must have an ARVROrigin node as its parent."
-msgstr ""
-
-#: scene/3d/arvr_nodes.cpp
-msgid ""
-"The anchor ID must not be 0 or this anchor won't be bound to an actual "
-"anchor."
-msgstr ""
-
-#: scene/3d/arvr_nodes.cpp
-msgid "ARVROrigin requires an ARVRCamera child node."
-msgstr ""
-
-#: scene/3d/baked_lightmap.cpp
-msgid "%d%%"
-msgstr ""
-
-#: scene/3d/baked_lightmap.cpp
-msgid "(Time Left: %d:%02d s)"
-msgstr ""
-
-#: scene/3d/baked_lightmap.cpp
-msgid "Plotting Meshes: "
-msgstr ""
-
-#: scene/3d/baked_lightmap.cpp
-msgid "Plotting Lights:"
-msgstr ""
-
-#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
-#: scene/3d/baked_lightmap.cpp
-msgid "Lighting Meshes: "
-msgstr ""
-
-#: scene/3d/collision_object.cpp
-msgid ""
-"This node has no shape, so it can't collide or interact with other objects.\n"
-"Consider adding a CollisionShape or CollisionPolygon as a child to define "
-"its shape."
-msgstr ""
-
-#: scene/3d/collision_polygon.cpp
-msgid ""
-"CollisionPolygon only serves to provide a collision shape to a "
-"CollisionObject derived node. Please only use it as a child of Area, "
-"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
-msgstr ""
-
-#: scene/3d/collision_polygon.cpp
-msgid "An empty CollisionPolygon has no effect on collision."
-msgstr ""
-
-#: scene/3d/collision_shape.cpp
-msgid ""
-"CollisionShape only serves to provide a collision shape to a CollisionObject "
-"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
-"KinematicBody, etc. to give them a shape."
-msgstr ""
-
-#: scene/3d/collision_shape.cpp
-msgid ""
-"A shape must be provided for CollisionShape to function. Please create a "
-"shape resource for it."
-msgstr ""
-
-#: scene/3d/collision_shape.cpp
-msgid ""
-"Plane shapes don't work well and will be removed in future versions. Please "
-"don't use them."
-msgstr ""
-
-#: scene/3d/collision_shape.cpp
-msgid ""
-"ConcavePolygonShape doesn't support RigidBody in another mode than static."
-msgstr ""
-
-#: scene/3d/cpu_particles.cpp
-msgid "Nothing is visible because no mesh has been assigned."
-msgstr ""
-
-#: scene/3d/cpu_particles.cpp
-msgid ""
-"CPUParticles animation requires the usage of a SpatialMaterial whose "
-"Billboard Mode is set to \"Particle Billboard\"."
-msgstr ""
-
-#: scene/3d/gi_probe.cpp
-msgid "Plotting Meshes"
-msgstr ""
-
-#: scene/3d/gi_probe.cpp
-msgid ""
-"GIProbes are not supported by the GLES2 video driver.\n"
-"Use a BakedLightmap instead."
-msgstr ""
-
-#: scene/3d/light.cpp
-msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
-msgstr ""
-
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr ""
-
-#: scene/3d/navigation_mesh.cpp
-msgid ""
-"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
-"It only provides navigation data."
-msgstr ""
-
-#: scene/3d/particles.cpp
-msgid ""
-"GPU-based particles are not supported by the GLES2 video driver.\n"
-"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles"
-"\" option for this purpose."
-msgstr ""
-
-#: scene/3d/particles.cpp
-msgid ""
-"Nothing is visible because meshes have not been assigned to draw passes."
-msgstr ""
-
-#: scene/3d/particles.cpp
-msgid ""
-"Particles animation requires the usage of a SpatialMaterial whose Billboard "
-"Mode is set to \"Particle Billboard\"."
-msgstr ""
-
-#: scene/3d/path.cpp
-#, fuzzy
-msgid "PathFollow only works when set as a child of a Path node."
-msgstr ""
-"PathFollow2D funktioniert nur, wenn sie als Unterobjekt eines Path2D Nodes "
-"gesetzt wird."
-
-#: scene/3d/path.cpp
-msgid ""
-"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its "
-"parent Path's Curve resource."
-msgstr ""
-
-#: scene/3d/physics_body.cpp
-msgid ""
-"Size changes to RigidBody (in character or rigid modes) will be overridden "
-"by the physics engine when running.\n"
-"Change the size in children collision shapes instead."
-msgstr ""
-
-#: scene/3d/remote_transform.cpp
-#, fuzzy
-msgid ""
-"The \"Remote Path\" property must point to a valid Spatial or Spatial-"
-"derived node to work."
-msgstr "Die Pfad-Variable muss auf einen gültigen Particles2D Node verweisen."
-
-#: scene/3d/soft_body.cpp
-msgid "This body will be ignored until you set a mesh."
-msgstr ""
-
-#: scene/3d/soft_body.cpp
-msgid ""
-"Size changes to SoftBody will be overridden by the physics engine when "
-"running.\n"
-"Change the size in children collision shapes instead."
-msgstr ""
-
-#: scene/3d/sprite_3d.cpp
-#, fuzzy
-msgid ""
-"A SpriteFrames resource must be created or set in the \"Frames\" property in "
-"order for AnimatedSprite3D to display frames."
-msgstr ""
-"Damit AnimatedSprite Frames anzeigen kann, muss eine SpriteFrame Resource "
-"unter der 'Frames' Property erstellt oder gesetzt sein."
-
-#: scene/3d/vehicle_body.cpp
-msgid ""
-"VehicleWheel serves to provide a wheel system to a VehicleBody. Please use "
-"it as a child of a VehicleBody."
-msgstr ""
-
-#: scene/3d/world_environment.cpp
-msgid ""
-"WorldEnvironment requires its \"Environment\" property to contain an "
-"Environment to have a visible effect."
-msgstr ""
-
-#: scene/3d/world_environment.cpp
-msgid ""
-"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
-msgstr ""
-
-#: scene/3d/world_environment.cpp
-msgid ""
-"This WorldEnvironment is ignored. Either add a Camera (for 3D scenes) or set "
-"this environment's Background Mode to Canvas (for 2D scenes)."
-msgstr ""
-
-#: scene/animation/animation_blend_tree.cpp
-msgid "On BlendTree node '%s', animation not found: '%s'"
-msgstr ""
-
-#: scene/animation/animation_blend_tree.cpp
-#, fuzzy
-msgid "Animation not found: '%s'"
-msgstr "Animations-Node"
-
-#: scene/animation/animation_tree.cpp
-msgid "In node '%s', invalid animation: '%s'."
-msgstr ""
-
-#: scene/animation/animation_tree.cpp
-msgid "Invalid animation: '%s'."
-msgstr ""
-
-#: scene/animation/animation_tree.cpp
-msgid "Nothing connected to input '%s' of node '%s'."
-msgstr ""
-
-#: scene/animation/animation_tree.cpp
-msgid "No root AnimationNode for the graph is set."
-msgstr ""
-
-#: scene/animation/animation_tree.cpp
-msgid "Path to an AnimationPlayer node containing animations is not set."
-msgstr ""
-
-#: scene/animation/animation_tree.cpp
-msgid "Path set for AnimationPlayer does not lead to an AnimationPlayer node."
-msgstr ""
-
-#: scene/animation/animation_tree.cpp
-msgid "The AnimationPlayer root node is not a valid node."
-msgstr ""
-
-#: scene/animation/animation_tree_player.cpp
-msgid "This node has been deprecated. Use AnimationTree instead."
-msgstr ""
-
-#: scene/gui/color_picker.cpp
-msgid ""
-"Color: #%s\n"
-"LMB: Set color\n"
-"RMB: Remove preset"
-msgstr ""
-
-#: scene/gui/color_picker.cpp
-msgid "Pick a color from the editor window."
-msgstr ""
-
-#: scene/gui/color_picker.cpp
-msgid "HSV"
-msgstr ""
-
-#: scene/gui/color_picker.cpp
-msgid "Raw"
-msgstr ""
-
-#: scene/gui/color_picker.cpp
-msgid "Switch between hexadecimal and code values."
-msgstr ""
-
-#: scene/gui/color_picker.cpp
-msgid "Add current color as a preset."
-msgstr ""
-
-#: scene/gui/container.cpp
-msgid ""
-"Container by itself serves no purpose unless a script configures its "
-"children placement behavior.\n"
-"If you don't intend to add a script, use a plain Control node instead."
-msgstr ""
-
-#: scene/gui/control.cpp
-msgid ""
-"The Hint Tooltip won't be displayed as the control's Mouse Filter is set to "
-"\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"."
-msgstr ""
-
-#: scene/gui/dialogs.cpp
-msgid "Alert!"
-msgstr "Alert!"
-
-#: scene/gui/dialogs.cpp
-msgid "Please Confirm..."
-msgstr "Bitte bestätigen..."
-
-#: scene/gui/popup.cpp
-msgid ""
-"Popups will hide by default unless you call popup() or any of the popup*() "
-"functions. Making them visible for editing is fine, but they will hide upon "
-"running."
-msgstr ""
-
-#: scene/gui/range.cpp
-msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0."
-msgstr ""
-
-#: scene/gui/scroll_container.cpp
-msgid ""
-"ScrollContainer is intended to work with a single child control.\n"
-"Use a container as child (VBox, HBox, etc.), or a Control and set the custom "
-"minimum size manually."
-msgstr ""
-
-#: scene/gui/tree.cpp
-msgid "(Other)"
-msgstr ""
-
-#: scene/main/scene_tree.cpp
-msgid ""
-"Default Environment as specified in Project Settings (Rendering -> "
-"Environment -> Default Environment) could not be loaded."
-msgstr ""
-
-#: scene/main/viewport.cpp
-msgid ""
-"This viewport is not set as render target. If you intend for it to display "
-"its contents directly to the screen, make it a child of a Control so it can "
-"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
-"texture to some node for display."
-msgstr ""
-
-#: scene/main/viewport.cpp
-msgid "Viewport size must be greater than 0 to render anything."
-msgstr ""
-
-#: scene/resources/visual_shader_nodes.cpp
-msgid "Invalid source for preview."
-msgstr ""
-
-#: scene/resources/visual_shader_nodes.cpp
-msgid "Invalid source for shader."
-msgstr ""
-
-#: scene/resources/visual_shader_nodes.cpp
-msgid "Invalid comparison function for that type."
-msgstr ""
-
-#: servers/visual/shader_language.cpp
-msgid "Assignment to function."
-msgstr ""
-
-#: servers/visual/shader_language.cpp
-msgid "Assignment to uniform."
-msgstr ""
-
-#: servers/visual/shader_language.cpp
-msgid "Varyings can only be assigned in vertex function."
-msgstr ""
-
-#: servers/visual/shader_language.cpp
-msgid "Constants cannot be modified."
-msgstr ""
-
-#, fuzzy
-#~ msgid "Class Description"
-#~ msgstr "Script hinzufügen"
-
-#, fuzzy
-#~ msgid "Base Type:"
-#~ msgstr "Typ ändern"
-
-#, fuzzy
-#~ msgid "Available Nodes:"
-#~ msgstr "TimeScale-Node"
-
-#, fuzzy
-#~ msgid "Theme Properties:"
-#~ msgstr "Node erstellen"
-
-#, fuzzy
-#~ msgid "Class Description:"
-#~ msgstr "Script hinzufügen"
-
-#, fuzzy
-#~ msgid "Property Descriptions:"
-#~ msgstr "Script hinzufügen"
-
-#, fuzzy
-#~ msgid "Method Descriptions:"
-#~ msgstr "Script hinzufügen"
-
-#~ msgid "Delete Node(s)?"
-#~ msgstr "Node(s) löschen?"
-
-#~ msgid "Faces contain no area!"
-#~ msgstr "Flächen enthalten keinen Bereich!"
-
-#~ msgid "No faces!"
-#~ msgstr "Keine Flächen!"
-
-#, fuzzy
-#~ msgid "Select Mode (Q)"
-#~ msgstr "Selektiere Node(s) zum Importieren aus"
-
-#, fuzzy
-#~ msgid "Snap Mode (%s)"
-#~ msgstr "Selektiere Node(s) zum Importieren aus"
-
-#, fuzzy
-#~ msgid "Error initializing FreeType."
-#~ msgstr "Fehler bei der FreeType Inizialisierung."
-
-#, fuzzy
-#~ msgid "Previous Folder"
-#~ msgstr "Node(s) löschen"
-
-#, fuzzy
-#~ msgid "Next Folder"
-#~ msgstr "Node erstellen"
-
-#, fuzzy
-#~ msgid "Build Project"
-#~ msgstr "Projektname:"
-
-#, fuzzy
-#~ msgid "View log"
-#~ msgstr "Datei(en) öffnen"
-
-#~ msgid "Path to Node:"
-#~ msgstr "Pfad zum Node:"
-
-#, fuzzy
-#~ msgid "Create folder"
-#~ msgstr "Node erstellen"
-
-#, fuzzy
-#~ msgid "Custom Node"
-#~ msgstr "Node erstellen"
-
-#, fuzzy
-#~ msgid "Create Area"
-#~ msgstr "Node erstellen"
-
-#, fuzzy
-#~ msgid "Create Exterior Connector"
-#~ msgstr "Neues Projekt erstellen"
-
-#, fuzzy
-#~ msgid "Insert keys."
-#~ msgstr "Bild einfügen"
-
-#, fuzzy
-#~ msgid "OrientedPathFollow only works when set as a child of a Path node."
-#~ msgstr ""
-#~ "PathFollow2D funktioniert nur, wenn sie als Unterobjekt eines Path2D "
-#~ "Nodes gesetzt wird."
-
-#, fuzzy
-#~ msgid "Add Split"
-#~ msgstr "Script hinzufügen"
-
-#, fuzzy
-#~ msgid "Remove Split"
-#~ msgstr "Ungültige Bilder löschen"
-
-#, fuzzy
-#~ msgid "Add Node.."
-#~ msgstr "Node"
-
-#, fuzzy
-#~ msgid "Show current scene file."
-#~ msgstr "Node(s) löschen"
-
-#~ msgid "Ok"
-#~ msgstr "Okay"
-
-#, fuzzy
-#~ msgid "Convert To Lowercase"
-#~ msgstr "Verbindung zu Node:"
-
-#~ msgid "Anim Add Key"
-#~ msgstr "Anim Bild hinzufügen"
-
-#~ msgid "Enable editing of individual keys by clicking them."
-#~ msgstr "Aktivieren des Bildeditors mit einem click auf die jenigen."
-
-#~ msgid "Key"
-#~ msgstr "Bild"
-
-#~ msgid "Call Functions in Which Node?"
-#~ msgstr "Im welchem Node soll die Funktion aufgerufen werden?"
-
-#~ msgid "Create new animation in player."
-#~ msgstr "Neue Animation erstellen."
-
-#, fuzzy
-#~ msgid "Set pivot at mouse position"
-#~ msgstr "Ungültige Bilder löschen"
-
-#~ msgid "OK :("
-#~ msgstr "Okay :("
-
-#, fuzzy
-#~ msgid "Can't contain '/' or ':'"
-#~ msgstr "Verbindung zu Node:"
-
-#, fuzzy
-#~ msgid "Can't write file."
-#~ msgstr "Neues Projekt erstellen"
-
-#, fuzzy
-#~ msgid "Couldn't get project.godot in project path."
-#~ msgstr "Die engine.cfg kann im Projektverzeichnis nicht erstellt werden."
-
-#, fuzzy
-#~ msgid "Couldn't get project.godot in the project path."
-#~ msgstr "Die engine.cfg kann im Projektverzeichnis nicht erstellt werden."
-
-#~ msgid "Move Add Key"
-#~ msgstr "Bild bewegen/einfügen"
-
-#~ msgid "Set Emission Mask"
-#~ msgstr "Emissions-Maske setzen"
-
-#~ msgid "Surface %d"
-#~ msgstr "Oberfläche %d"
-
-#~ msgid "Import Textures for Atlas (2D)"
-#~ msgstr "Importiere Texturen für Atlas (2D)"
-
-#~ msgid "Import Large Textures (2D)"
-#~ msgstr "Importiere Große Texturen (2D)"
-
-#~ msgid "Import Textures for 2D"
-#~ msgstr "Importiere Texturen für 2D"
-
-#, fuzzy
-#~ msgid ""
-#~ "NOTICE: Importing 2D textures is not mandatory. Just copy png/jpg files "
-#~ "to the project."
-#~ msgstr ""
-#~ "MERKE: Das importieren von 2D Texturen ist nicht zwingend notwendig. "
-#~ "Kopiere einfach png/jpg Dateien in das Projekt."
-
-#, fuzzy
-#~ msgid "Add to Project (project.godot)"
-#~ msgstr "Zum Projekt hinzufügen (engine.cfg)"
-
-#~ msgid "Invalid project path, the path must exist!"
-#~ msgstr "Ungültiger Projektpfad, Pfad existiert nicht!"
-
-#, fuzzy
-#~ msgid "Invalid project path, project.godot must not exist."
-#~ msgstr "Ungültiger Projektpfad, engine.cfg vorhanden!"
-
-#, fuzzy
-#~ msgid "Invalid project path, project.godot must exist."
-#~ msgstr "Ungültiger Projektpfad, engine.cfg nicht vorhanden!"
-
-#~ msgid "Project Path (Must Exist):"
-#~ msgstr "Projektpfad (muss existieren):"
-
-#~ msgid "Node From Scene"
-#~ msgstr "Node von Szene"
-
-#~ msgid "Import assets to the project."
-#~ msgstr "Assets zum Projekt importieren."
-
-#~ msgid "Export the project to many platforms."
-#~ msgstr "Exportiere das Projekt für viele Plattformen."
-
-#~ msgid "Path property must point to a valid Particles2D node to work."
-#~ msgstr ""
-#~ "Die Pfad-Variable muss auf einen gültigen Particles2D Node verweisen."
-
-#~ msgid "Surface"
-#~ msgstr "Oberfläche"
-
-#~ msgid ""
-#~ "A SampleLibrary resource must be created or set in the 'samples' property "
-#~ "in order for SamplePlayer to play sound."
-#~ msgstr ""
-#~ "Damit SamplePlayer einen Sound abspielen kann, muss eine SampleLibrary "
-#~ "Ressource in der 'samples' Property erzeugt oder definiert werden."
-
-#~ msgid ""
-#~ "A SampleLibrary resource must be created or set in the 'samples' property "
-#~ "in order for SpatialSamplePlayer to play sound."
-#~ msgstr ""
-#~ "Damit SpatialSamplePlayer einen Sound abspielen kann, muss eine "
-#~ "SampleLibrary Ressource in der 'samples' Eigenschaft erzeugt oder "
-#~ "definiert werden."
-
-#~ msgid "Error writing the project PCK!"
-#~ msgstr "Fehler beim Schreiben des Projekts PCK!"
-
-#~ msgid "Project Export Settings"
-#~ msgstr "Projektexport Einstellungen"
-
-#~ msgid "Export all files in the project directory."
-#~ msgstr "Exportiere alle Dateien in das Projektverzeichnis."
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index 1302e33e47..4dca7e4c5f 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -809,7 +809,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1409,16 +1408,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2338,11 +2329,13 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
+msgid "Reload Saved Scene"
msgstr ""
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2608,10 +2601,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3217,6 +3206,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3801,6 +3794,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6672,11 +6669,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7146,6 +7143,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10063,7 +10069,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10221,6 +10227,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10267,11 +10280,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10391,6 +10404,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10431,6 +10448,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11455,6 +11476,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11478,6 +11503,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/el.po b/editor/translations/el.po
index b01976c477..127da8ec1f 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -11,8 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-04-20 05:51+0000\n"
-"Last-Translator: George Tsiamasiotis <gtsiam@windowslive.com>\n"
+"PO-Revision-Date: 2020-05-10 12:37+0000\n"
+"Last-Translator: Overloaded @ Orama Interactive http://orama-interactive."
+"com/ <manoschool@yahoo.gr>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/"
"el/>\n"
"Language: el\n"
@@ -20,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.0.2-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -845,7 +846,6 @@ msgstr "ΑδÏνατη η σÏνδεση σήματος"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1459,17 +1459,9 @@ msgstr "ΕνεÏγοποίηση"
msgid "Rearrange Autoloads"
msgstr "Αναδιάταξη των AutoLoad"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "ΆκυÏη διαδÏομή."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Το αÏχείο δεν υπάÏχει."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Δεν υπάÏχει στην διαδÏομή πόÏων."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2431,14 +2423,15 @@ msgstr ""
"Δεν είναι δυνατό να φοÏτώσετε εκ νέου μια σκηνή που δεν αποθηκεÏτηκε ποτέ."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "ΕπαναφοÏά"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "ΑποθηκεÏσετε σκηνής"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
-"Αυτή η ενέÏγεια δεν μποÏεί να αναιÏεθεί. Θέλετε να συνεχίσετε με την "
-"επαναφοÏά;"
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2733,10 +2726,6 @@ msgid "Redo"
msgstr "ΑκÏÏωση αναίÏεσης"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "ΕπαναφοÏά σκηνής"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Λοιπά έÏγα ή εÏγαλεία για όλη τη σκηνή."
@@ -2944,7 +2933,7 @@ msgstr "Αναζήτηση"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/plugins/shader_editor_plugin.cpp
msgid "Online Docs"
-msgstr "ΗλεκτÏονική τεκμηÏίωση"
+msgstr "ΗλεκτÏονική τεκμηÏίωση"
#: editor/editor_node.cpp
msgid "Q&A"
@@ -3388,6 +3377,13 @@ msgstr "Αδυναμία εκτέλεσης δέσμης ενεÏγειών:"
msgid "Did you forget the '_run' method?"
msgstr "Μήπως ξεχάσατε τη μέθοδο '_run';"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Πατήστε παÏατεταμένα το Ctrl για να Ï€Ïοσθέσετε έναν Getter. Πατήστε "
+"παÏατεταμένα το Shift για να Ï€Ïοσθέσετε μία γενική υπογÏαφή."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Επιλέξτε κόμβους για εισαγωγή"
@@ -3989,6 +3985,10 @@ msgid "Error running post-import script:"
msgstr "Σφάλμα κατά την εκτέλεση της δέσμης ενεÏγειών μετεισαγωγής:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Αποθήκευση..."
@@ -6957,12 +6957,13 @@ msgstr ""
"κόμβο «%s»."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "ΓÏαμμή"
+#, fuzzy
+msgid "[Ignore]"
+msgstr "(ΠαÏάβλεψη)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ΠαÏάβλεψη)"
+msgid "Line"
+msgstr "ΓÏαμμή"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7441,6 +7442,15 @@ msgid "XForm Dialog"
msgstr "Διάλογος XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "ΚοÏμπωμα Κόμβων στο Δάπεδο"
@@ -10527,8 +10537,9 @@ msgid "Instance Child Scene"
msgstr "ΑÏχικοποίηση σκηνής ως παιδί"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "ΕκκαθάÏιση Δέσμης ΕνεÏγειών"
+#, fuzzy
+msgid "Detach Script"
+msgstr "ΣÏνδεση Δέσμης ΕνεÏγειών"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10699,6 +10710,13 @@ msgid "Open Documentation"
msgstr "Άνοιγμα ΤεκμηÏίωσης"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "ΠÏοσθήκη κόμβου ως παιδί"
@@ -10747,11 +10765,13 @@ msgstr ""
"υπάÏχει πηγαίος κόμβος."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "ΣÏνδεση νέας ή υπαÏκτής δέσμης ενεÏγειών για τον επιλεγμένο κόμβο."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "ΕκκαθάÏιση δέσμης ενεÏγειών για τον επιλεγμένο κόμβο."
#: editor/scene_tree_dock.cpp
@@ -10883,6 +10903,10 @@ msgid "A directory with the same name exists."
msgstr "ΥπαÏκτός ομώνυμος κατάλογος."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Το αÏχείο δεν υπάÏχει."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "ΆκυÏη επέκταση."
@@ -10923,6 +10947,10 @@ msgid "File exists, it will be reused."
msgstr "ΥπαÏκτό αÏχείο, θα επαναχÏησιμοποιηθεί."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "ΆκυÏη διαδÏομή."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "ΆκυÏο όνομα κλάσης."
@@ -11983,6 +12011,13 @@ msgstr ""
"διαμόÏφωση."
#: platform/android/export/export.cpp
+#, fuzzy
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"Το «debug keystore» δεν έχει καθοÏιστεί στις Ρυθμίσεις ΕπεξεÏγαστή ή την "
+"διαμόÏφωση."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"Η Ï€ÏοσαÏμοσμένη δόμηση απαιτεί μια έγκυÏη διαδÏομή για το Android SDK στις "
@@ -12012,6 +12047,32 @@ msgstr "ΆκυÏο όνομα πακέτου:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12804,6 +12865,23 @@ msgstr "Τα «varying» μποÏοÏν να ανατεθοÏν μόνο στηÎ
msgid "Constants cannot be modified."
msgstr "Οι σταθεÏές δεν μποÏοÏν να Ï„ÏοποποιηθοÏν."
+#~ msgid "Not in resource path."
+#~ msgstr "Δεν υπάÏχει στην διαδÏομή πόÏων."
+
+#~ msgid "Revert"
+#~ msgstr "ΕπαναφοÏά"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr ""
+#~ "Αυτή η ενέÏγεια δεν μποÏεί να αναιÏεθεί. Θέλετε να συνεχίσετε με την "
+#~ "επαναφοÏά;"
+
+#~ msgid "Revert Scene"
+#~ msgstr "ΕπαναφοÏά σκηνής"
+
+#~ msgid "Clear Script"
+#~ msgstr "ΕκκαθάÏιση Δέσμης ΕνεÏγειών"
+
#~ msgid "Issue Tracker"
#~ msgstr "ΔιαχείÏιση Ï€Ïοβλημάτων"
diff --git a/editor/translations/eo.po b/editor/translations/eo.po
index d75cb88920..3addde45ce 100644
--- a/editor/translations/eo.po
+++ b/editor/translations/eo.po
@@ -8,18 +8,19 @@
# Brandon Dyer <brandondyer64@gmail.com>, 2019.
# Alejandro Sánchez Medina <alejandrosanchzmedina@gmail.com>, 2019.
# Sr Half <flavio05@outlook.com>, 2020.
+# Cristian Yepez <cristianyepez@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2020-05-01 11:43+0000\n"
-"Last-Translator: Sr Half <flavio05@outlook.com>\n"
+"PO-Revision-Date: 2020-05-22 21:01+0000\n"
+"Last-Translator: Cristian Yepez <cristianyepez@gmail.com>\n"
"Language-Team: Esperanto <https://hosted.weblate.org/projects/godot-engine/"
"godot/eo/>\n"
"Language: eo\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.0.2\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -640,9 +641,8 @@ msgid "Scale Ratio:"
msgstr "Skali RejÅo:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select Tracks to Copy"
-msgstr "Elekti vojetojn por duplikati:"
+msgstr "Elekti vojetojn por duplikati"
#: editor/animation_track_editor.cpp editor/editor_log.cpp
#: editor/editor_properties.cpp
@@ -847,7 +847,6 @@ msgstr "Ne povas konekti signalo"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1342,12 +1341,13 @@ msgid "Open Audio Bus Layout"
msgstr ""
#: editor/editor_audio_buses.cpp
+#, fuzzy
msgid "There is no '%s' file."
-msgstr ""
+msgstr "Neniu '%s' dosiero."
#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp
msgid "Layout"
-msgstr ""
+msgstr "AranÄo"
#: editor/editor_audio_buses.cpp
msgid "Invalid file, not an audio bus layout."
@@ -1360,7 +1360,7 @@ msgstr "Eraro dum Åargante tiparon."
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
-msgstr ""
+msgstr "Aldoni Buso"
#: editor/editor_audio_buses.cpp
msgid "Add a new Audio Bus to this layout."
@@ -1370,7 +1370,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Load"
-msgstr ""
+msgstr "ÅœarÄi"
#: editor/editor_audio_buses.cpp
msgid "Load an existing Bus Layout."
@@ -1448,16 +1448,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Nevalida dosierindiko."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2405,12 +2397,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Ne povas reÅarÄi scenon, kiu konservis neniam."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Malfari"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Konservi scenon"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Tiun ĉi agon ne povos malfari. Certe daŭrigi?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2678,10 +2673,6 @@ msgid "Redo"
msgstr "Refari"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Malfari scenon"
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Miscellaneous project or scene-wide tools."
msgstr "Diversa projekto aÅ­ sceno-abundaj iloj."
@@ -3313,6 +3304,10 @@ msgstr "Ne povis ruli skripto:"
msgid "Did you forget the '_run' method?"
msgstr "Ĉu vi forgesis la '_run' metodo?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
#, fuzzy
msgid "Select Node(s) to Import"
@@ -3905,6 +3900,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6794,11 +6793,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7269,6 +7268,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10210,8 +10218,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Krei skripton"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10370,6 +10379,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10416,11 +10432,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10540,6 +10556,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Nevalida kromprogramo."
@@ -10580,6 +10600,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Nevalida dosierindiko."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11622,6 +11646,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11645,6 +11673,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12288,6 +12342,15 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstantoj ne povas esti modifitaj."
+#~ msgid "Revert"
+#~ msgstr "Malfari"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Tiun ĉi agon ne povos malfari. Certe daŭrigi?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Malfari scenon"
+
#, fuzzy
#~ msgid "Help improve the Godot documentation by giving feedback."
#~ msgstr "Helpi plibonigi la Godotan dokumentadon per doni reagon."
diff --git a/editor/translations/es.po b/editor/translations/es.po
index 8446ed2415..f8c4134d07 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -12,7 +12,7 @@
# David Couto <davidcouto@gmail.com>, 2017.
# Dharkael <izhe@hotmail.es>, 2017, 2019.
# Diego López <diegodario21@gmail.com>, 2017.
-# eon-s <emanuel.segretin@gmail.com>, 2018, 2019.
+# eon-s <emanuel.segretin@gmail.com>, 2018, 2019, 2020.
# Gustavo Leon <gleondiaz@gmail.com>, 2017-2018.
# Javier Ocampos <xavier.ocampos@gmail.com>, 2018, 2019, 2020.
# Jose Maria Martinez <josemar1992@hotmail.com>, 2018.
@@ -46,12 +46,15 @@
# Victor S. <victorstancioiu@gmail.com>, 2020.
# henry rujano herrera <rujhen@gmail.com>, 2020.
# Megamega53 <Christopher.Morales21@myhunter.cuny.edu>, 2020.
+# Serk Lintur <serk.lintur@gmail.com>, 2020.
+# Pedro J. Estébanez <pedrojrulez@gmail.com>, 2020.
+# paco <pacosoftfree@protonmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-04 15:11+0000\n"
-"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
+"Last-Translator: paco <pacosoftfree@protonmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/"
"godot/es/>\n"
"Language: es\n"
@@ -886,7 +889,6 @@ msgstr "No se puede conectar la señal"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1500,17 +1502,9 @@ msgstr "Activar"
msgid "Rearrange Autoloads"
msgstr "Reordenar Autoloads"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Ruta inválida."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "El archivo no existe."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "No está en la ruta de recursos."
+msgid "Can't add autoload:"
+msgstr "No se puede añadir un autoload:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2028,7 +2022,7 @@ msgstr "Constantes"
#: editor/editor_help.cpp
msgid "Property Descriptions"
-msgstr "Descripción de Propiedades"
+msgstr "Descripciones de Propiedad"
#: editor/editor_help.cpp
msgid "(value)"
@@ -2051,11 +2045,8 @@ msgid ""
"There is currently no description for this method. Please help us by [color="
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"Actualmente no hay una descripción para este método. Por favor, ¡ayúdanos "
-"[color=$color][url=$url]aportando una[/url][/color]!\n"
-"\n"
-"Actualmente no existe descripción para este método. Por favor ¡ayúdanos "
-"[color=$color][url=$url]contribuyendo una[/url][/color]!"
+"Actualmente no existe descripción para este método. Por favor ¡ayúdanos con "
+"[color=$color][url=$url] contribuyendo con una[ /url][/color]!"
#: editor/editor_help_search.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -2477,12 +2468,17 @@ msgid "Can't reload a scene that was never saved."
msgstr "No se puede volver a cargar una escena que nunca se guardó."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Revertir"
+msgid "Reload Saved Scene"
+msgstr "Recargar Escena Guardada"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Esta acción no se puede deshacer. ¿Revertir de todos modos?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
+"La escena actual tiene cambios sin guardar.\n"
+"¿Quieres recargar la escena guardada igualmente? Esta acción no puede "
+"deshacerse."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2777,10 +2773,6 @@ msgid "Redo"
msgstr "Rehacer"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Revertir Escena"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Herramientas variadas de proyecto o escena."
@@ -3110,12 +3102,14 @@ msgid ""
"the \"Use Custom Build\" option should be enabled in the Android export "
"preset."
msgstr ""
-"Una vez hecho ésto puedes aplicar modificaciones y generar tu propio APK "
-"personalizado al exportar (agregar módulos, cambiar el AndroidManifest.xml, "
-"etc.).\n"
-"Ten en cuenta que para generar builds personalizados en vez de usar los APKs "
-"pregenerados, la opción \"Usar Build Personalizado\" debería estar activada "
-"en el preset de exportación de Android."
+"Esto configurará tu proyecto para las compilaciones personalizadas de "
+"Android instalando la plantilla base en \"res://android/build\".\n"
+"Luego podrás aplicar las modificaciones y compilar tu propio APK "
+"personalizado al exportarlo (agregando módulos, cambiando el AndroidManifest."
+"xml, etc.).\n"
+"Ten en cuenta que para realizar compilaciones personalizadas en lugar de "
+"usar APKs predefinidos, la opción \"Use Custom Build\" debería estar "
+"habilitada en la configuración de exportación de Android."
#: editor/editor_node.cpp
msgid ""
@@ -3431,6 +3425,12 @@ msgstr "No se pudo ejecutar el script:"
msgid "Did you forget the '_run' method?"
msgstr "Te olvidaste del método '_run'?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Mantén pulsado Ctrl para redondear a enteros. Mantén pulsado Shift para "
+"cambios más precisos."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Selecciona nodo(s) a importar"
@@ -4031,6 +4031,10 @@ msgid "Error running post-import script:"
msgstr "Error ejecutando el script de posimportacion:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr "¿Devolviste un objeto derivado de Node en el método `post_import()`?"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Guardando..."
@@ -6994,12 +6998,12 @@ msgstr ""
"'%s'."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Línea"
+msgid "[Ignore]"
+msgstr "[Ignorar]"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ignorar)"
+msgid "Line"
+msgstr "Línea"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7473,6 +7477,21 @@ msgid "XForm Dialog"
msgstr "Diálogo XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+"Haz clic para alternar entre los estados de visibilidad.\n"
+"\n"
+"Ojo abierto: El gizmo es visible.\n"
+"Ojo cerrado: El gizmo está oculto.\n"
+"Ojo medio abierto: El gizmo también es visible a través de superficies "
+"opacas (\"x-ray\")."
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Ajustar Nodos al Suelo"
@@ -9373,7 +9392,7 @@ msgid ""
msgstr ""
"Los retornos decrecen en función del producto punto de la superficie normal "
"y de la dirección de visión de la cámara (pasando las entradas asociadas a "
-"esta)."
+"este)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -10568,8 +10587,8 @@ msgid "Instance Child Scene"
msgstr "Instanciar Escena Hija"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Eliminar Script"
+msgid "Detach Script"
+msgstr "Sustraer Script"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10735,6 +10754,16 @@ msgid "Open Documentation"
msgstr "Abrir Documentación"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+"No se puede adjuntar el script: no hay ningún lenguaje registrado.\n"
+"Esto es probablemente porque este editor fue construido con todos los "
+"módulos de lenguaje desactivados."
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Añadir Nodo Hijo"
@@ -10783,12 +10812,12 @@ msgstr ""
"existe ningún nodo raíz."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
-msgstr "Añadir un script nuevo o existente al nodo seleccionado."
+msgid "Attach a new or existing script to the selected node."
+msgstr "Añadir un nuevo script o ya existente al nodo seleccionado."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr "Borrar el script del nodo seleccionado."
+msgid "Detach the script from the selected node."
+msgstr "Sustraer script del nodo seleccionado."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10827,7 +10856,7 @@ msgid ""
"Node has %s connection(s) and %s group(s).\n"
"Click to show signals dock."
msgstr ""
-"El nodo tiene %s conexión(es) y %(s) grupo(s).\n"
+"El nodo tiene %s conexión(es) y %s grupo(s).\n"
"Clic para mostrar el panel de señales."
#: editor/scene_tree_editor.cpp
@@ -10920,6 +10949,10 @@ msgid "A directory with the same name exists."
msgstr "Ya existe un directorio con el mismo nombre."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "El archivo no existe."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Extensión inválida."
@@ -10960,6 +10993,10 @@ msgid "File exists, it will be reused."
msgstr "El archivo ya existe, será reutilizado."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Ruta inválida."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Nombre de clase inválido."
@@ -12015,6 +12052,12 @@ msgstr ""
"Debug keystore no configurada en Configuración del Editor ni en el preset."
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"Release keystore no está configurado correctamente en el preset de "
+"exportación."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"La compilación personalizada requiere una ruta de Android SDK válida en "
@@ -12044,6 +12087,39 @@ msgstr "Nombre de paquete inválido:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+"El módulo \"GodotPaymentV3\" incluido en los ajustes del proyecto \"android/"
+"modules\" es inválido (cambiado en Godot 3.2.2).\n"
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr "\"Use Custom Build\" debe estar activado para usar los plugins."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+"\"Degrees Of Freedom\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile "
+"VR\"."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"\"Hand Tracking\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile VR\"."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"\"Focus Awareness\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile VR"
+"\"."
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12846,6 +12922,21 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
msgid "Constants cannot be modified."
msgstr "Las constantes no pueden modificarse."
+#~ msgid "Not in resource path."
+#~ msgstr "No está en la ruta de recursos."
+
+#~ msgid "Revert"
+#~ msgstr "Revertir"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Esta acción no se puede deshacer. ¿Revertir de todos modos?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Revertir Escena"
+
+#~ msgid "Clear Script"
+#~ msgstr "Eliminar Script"
+
#~ msgid "Issue Tracker"
#~ msgstr "Registro de problemas"
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index 9136ac11c3..46cb219e14 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -14,12 +14,13 @@
# roger <616steam@gmail.com>, 2019, 2020.
# Francisco José Carllinni <panchopepe@protonmail.com>, 2019.
# Nicolas Zirulnik <nicolaszirulnik@gmail.com>, 2020.
+# Cristian Yepez <cristianyepez@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-02 01:48+0000\n"
-"Last-Translator: Anonymous <noreply@weblate.org>\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
+"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n"
"Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/"
"godot-engine/godot/es_AR/>\n"
"Language: es_AR\n"
@@ -852,7 +853,6 @@ msgstr "No se puede conectar la señal"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1465,17 +1465,9 @@ msgstr "Activar"
msgid "Rearrange Autoloads"
msgstr "Reordenar Autoloads"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Ruta inválida."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "El archivo existe."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "No está en la ruta de recursos."
+msgid "Can't add autoload:"
+msgstr "No se puede agregar autoload:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2438,12 +2430,17 @@ msgid "Can't reload a scene that was never saved."
msgstr "No se puede volver a cargar una escena que nunca se guardó."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Revertir"
+msgid "Reload Saved Scene"
+msgstr "Recargar Escena Guardada"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Esta acción no se puede deshacer. ¿Revertir de todos modos?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
+"La escena actual tiene cambios sin guardar.\n"
+"Querés recargar la escena guardada igualmente? Esta acción no se puede "
+"deshacer."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2738,10 +2735,6 @@ msgid "Redo"
msgstr "Rehacer"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Revertir Escena"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Herramientas misceláneas a nivel proyecto o escena."
@@ -2822,7 +2815,7 @@ msgid ""
msgstr ""
"Cuando esta opción está activa, exportar o hacer deploy producirá un "
"ejecutable mínimo.\n"
-"El sistema de archivos sera proveido desde el proyecto por el editor sobre "
+"El sistema de archivos sera proveído desde el proyecto por el editor sobre "
"la red.\n"
"En Android, deploy usará el cable USB para mejor performance. Esta opción "
"acelera el testeo para juegos con footprint grande."
@@ -3392,6 +3385,12 @@ msgstr "No se pudo ejecutar el script:"
msgid "Did you forget the '_run' method?"
msgstr "Te olvidaste del método '_run'?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Mantené pulsado Ctrl para redondear a enteros. Mantené pulsado Shift para "
+"cambios más precisos."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Seleccionar Nodo(s) para Importar"
@@ -3991,6 +3990,10 @@ msgid "Error running post-import script:"
msgstr "Error ejecutando el script de post-importacion:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr "¿Devolviste un objeto derivado de Node en el método `post_import()`?"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Guardando..."
@@ -5887,7 +5890,7 @@ msgstr "No se pudo crear una forma de colisión Trimesh."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
-msgstr "Crear Static Trimesh Body"
+msgstr "Crear Static Trimesh Body"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "This doesn't work on scene root!"
@@ -6950,12 +6953,12 @@ msgstr ""
"nodo '%s'."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Línea"
+msgid "[Ignore]"
+msgstr "[Ignorar]"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ignorar)"
+msgid "Line"
+msgstr "Línea"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7429,6 +7432,21 @@ msgid "XForm Dialog"
msgstr "Dialogo XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+"Hacé clic para alternar entre los estados de visibilidad.\n"
+"\n"
+"Ojo abierto: El gizmo es visible.\n"
+"Ojo cerrado: El gizmo está oculto.\n"
+"Ojo medio abierto: El gizmo también es visible a través de superficies "
+"opacas (\"x-ray\")."
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Ajustar Nodos al Suelo"
@@ -10523,8 +10541,8 @@ msgid "Instance Child Scene"
msgstr "Instanciar Escena Hija"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Quitar Script"
+msgid "Detach Script"
+msgstr "Desasignar Script"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10691,6 +10709,16 @@ msgid "Open Documentation"
msgstr "Abrir Documentación"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+"No se puede asignar el script: no hay ningún lenguaje registrado.\n"
+"Esto es probablemente porque este editor fue compilado con todos los módulos "
+"de lenguaje desactivados."
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Agregar Nodo Hijo"
@@ -10739,12 +10767,12 @@ msgstr ""
"existe ningún nodo raíz."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
-msgstr "Adjuntar un script nuevo o existente para el nodo seleccionado."
+msgid "Attach a new or existing script to the selected node."
+msgstr "Asignar un script nuevo o existente al nodo seleccionado."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr "Restablecer un script para el nodo seleccionado."
+msgid "Detach the script from the selected node."
+msgstr "Desasignar el script del nodo seleccionado."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10876,6 +10904,10 @@ msgid "A directory with the same name exists."
msgstr "Existe un directorio con el mismo nombre."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "El archivo existe."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Extensión inválida."
@@ -10916,6 +10948,10 @@ msgid "File exists, it will be reused."
msgstr "El archivo existe, será reutilizado."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Ruta inválida."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Nombre de clase inválido."
@@ -11879,7 +11915,7 @@ msgstr "La ruta no apunta a un Nodo!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr "Nombre de propiedad índice '%s' inválido en nodo %s."
+msgstr "Nombre de propiedad índice '%s' inválido en nodo %s."
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
@@ -11968,6 +12004,12 @@ msgstr ""
"Keystore debug no configurada en Configuración del Editor ni en el preset."
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"Release keystore no está configurado correctamente en el preset de "
+"exportación."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"La compilación personalizada requiere una ruta de Android SDK válida en "
@@ -11997,6 +12039,39 @@ msgstr "Nombre de paquete inválido:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+"El módulo \"GodotPaymentV3\" incluido en el ajuste de proyecto \"android/"
+"modules\" es inválido (cambiado en Godot 3.2.2).\n"
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr "\"Use Custom Build\" debe estar activado para usar los plugins."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+"\"Degrees Of Freedom\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile "
+"VR\"."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"\"Hand Tracking\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile VR\"."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"\"Focus Awareness\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile VR"
+"\"."
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12791,6 +12866,21 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
msgid "Constants cannot be modified."
msgstr "Las constantes no pueden modificarse."
+#~ msgid "Not in resource path."
+#~ msgstr "No está en la ruta de recursos."
+
+#~ msgid "Revert"
+#~ msgstr "Revertir"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Esta acción no se puede deshacer. ¿Revertir de todos modos?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Revertir Escena"
+
+#~ msgid "Clear Script"
+#~ msgstr "Quitar Script"
+
#~ msgid "Issue Tracker"
#~ msgstr "Registro de problemas"
diff --git a/editor/translations/et.po b/editor/translations/et.po
index 2ed8f83317..7be6996d69 100644
--- a/editor/translations/et.po
+++ b/editor/translations/et.po
@@ -4,18 +4,20 @@
# This file is distributed under the same license as the Godot source code.
# Jens <arrkiin@gmail.com>, 2019.
# Mattias Aabmets <mattias.aabmets@gmail.com>, 2019.
+# StReef <streef.gtx@gmail.com>, 2020.
+# René <renepiik@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2019-07-19 13:41+0000\n"
-"Last-Translator: Mattias Aabmets <mattias.aabmets@gmail.com>\n"
+"PO-Revision-Date: 2020-05-31 12:39+0000\n"
+"Last-Translator: René <renepiik@gmail.com>\n"
"Language-Team: Estonian <https://hosted.weblate.org/projects/godot-engine/"
"godot/et/>\n"
"Language: et\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.8-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -25,7 +27,7 @@ msgstr ""
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "Eeldati sõne pikkusega 1 (trükimärk)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -63,31 +65,31 @@ msgstr "'%' kutsudes:"
#: core/ustring.cpp
msgid "B"
-msgstr ""
+msgstr "B"
#: core/ustring.cpp
msgid "KiB"
-msgstr ""
+msgstr "KiB"
#: core/ustring.cpp
msgid "MiB"
-msgstr ""
+msgstr "MiB"
#: core/ustring.cpp
msgid "GiB"
-msgstr ""
+msgstr "GiB"
#: core/ustring.cpp
msgid "TiB"
-msgstr ""
+msgstr "TiB"
#: core/ustring.cpp
msgid "PiB"
-msgstr ""
+msgstr "PiB"
#: core/ustring.cpp
msgid "EiB"
-msgstr ""
+msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
@@ -111,23 +113,23 @@ msgstr "Väärtus:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr "Sisesta Võti Siia"
+msgstr "Sisesta võti siia"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
-msgstr "Kopeeri Valitud Võti (Võtmed)"
+msgstr "Paljunda valitud võti (võtmed)"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr "Kustuta Valitud Võti (Võtmed)"
+msgstr "Kustuta valitud võti (võtmed)"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
-msgstr "Lisa Bezieri Punkt"
+msgstr "Lisa Bezieri punkt"
#: editor/animation_bezier_editor.cpp
msgid "Move Bezier Points"
-msgstr "Liiguta Bezieri Punkte"
+msgstr "Liiguta Bezieri punkte"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
@@ -179,20 +181,20 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
-msgstr "Muuda Animatsiooni Pikkust"
+msgstr "Muuda animatsiooni pikkust"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr "Muuda Animatsiooni Silmust"
+msgstr "Muuda animatsiooni silmust"
#: editor/animation_track_editor.cpp
msgid "Property Track"
-msgstr ""
+msgstr "Atribuudi rada"
#: editor/animation_track_editor.cpp
msgid "3D Transform Track"
-msgstr ""
+msgstr "3D muundus rada"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
@@ -200,31 +202,31 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
-msgstr ""
+msgstr "Bezieri kurvi rada"
#: editor/animation_track_editor.cpp
msgid "Audio Playback Track"
-msgstr ""
+msgstr "Heli taasesituse rada"
#: editor/animation_track_editor.cpp
msgid "Animation Playback Track"
-msgstr ""
+msgstr "Animatsiooni taasesituse rada"
#: editor/animation_track_editor.cpp
msgid "Animation length (frames)"
-msgstr ""
+msgstr "Animatsiooni pikkus (kaadrid)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
-msgstr ""
+msgstr "Animatsiooni pikkus (sekundid)"
#: editor/animation_track_editor.cpp
msgid "Add Track"
-msgstr ""
+msgstr "Lisa rada"
#: editor/animation_track_editor.cpp
msgid "Animation Looping"
-msgstr ""
+msgstr "Animatsiooni kordus"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -237,39 +239,39 @@ msgstr "Heliklipid:"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
-msgstr "Animatsiooni Klipid:"
+msgstr "Animatsiooni klipid:"
#: editor/animation_track_editor.cpp
msgid "Change Track Path"
-msgstr ""
+msgstr "Muuda raja teed"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
-msgstr ""
+msgstr "Lülita see rada sisse/välja."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr ""
+msgstr "Uuendusrežiim (kuidas see omadus on seatud)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
-msgstr ""
+msgstr "Interpolatsiooni režiim"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr ""
+msgstr "Korduse mähise režiim (nterpoleeri lõpp silmuse alguses)"
#: editor/animation_track_editor.cpp
msgid "Remove this track."
-msgstr ""
+msgstr "Eemalda see rada."
#: editor/animation_track_editor.cpp
msgid "Time (s): "
-msgstr "Aeg (Ajad): "
+msgstr "Aeg (sek): "
#: editor/animation_track_editor.cpp
msgid "Toggle Track Enabled"
-msgstr ""
+msgstr "Lülita rada sisse"
#: editor/animation_track_editor.cpp
msgid "Continuous"
@@ -285,7 +287,7 @@ msgstr "Päästik"
#: editor/animation_track_editor.cpp
msgid "Capture"
-msgstr ""
+msgstr "Jäädvusta"
#: editor/animation_track_editor.cpp
msgid "Nearest"
@@ -311,35 +313,35 @@ msgstr ""
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr "Sisesta Võti"
+msgstr "Sisesta võti"
#: editor/animation_track_editor.cpp
msgid "Duplicate Key(s)"
-msgstr "Kopeeri Võti (Võtmed)"
+msgstr "Paljunda võti (võtmed)"
#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
-msgstr "Kustuta Võti (Võtmed)"
+msgstr "Kustuta võti (võtmed)"
#: editor/animation_track_editor.cpp
msgid "Change Animation Update Mode"
-msgstr "Muuda Animatsiooni Uuendamise Töörežiimi"
+msgstr "Muuda animatsiooni uuendamise režiimi"
#: editor/animation_track_editor.cpp
msgid "Change Animation Interpolation Mode"
-msgstr "Muuda Animatsiooni Interpolatsiooni Töörežiimi"
+msgstr "Muuda animatsiooni interpolatsiooni režiimi"
#: editor/animation_track_editor.cpp
msgid "Change Animation Loop Mode"
-msgstr "Muuda Animatsiooni Silmuse Töörežiimi"
+msgstr "Muuda animatsiooni silmuse režiimi"
#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
-msgstr ""
+msgstr "Eemalda animatsiooni rada"
#: editor/animation_track_editor.cpp
msgid "Create NEW track for %s and insert key?"
-msgstr ""
+msgstr "Loo uus rada %s-le ja sisesta võti?"
#: editor/animation_track_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
@@ -359,19 +361,19 @@ msgstr "Loo"
#: editor/animation_track_editor.cpp
msgid "Anim Insert"
-msgstr ""
+msgstr "Animatsiooni sisestus"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
-msgstr ""
+msgstr "AnimationPlayer ei saa ennast animeerida, ainult teise mänijaid."
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
-msgstr ""
+msgstr "Loo ja sisesta animatsioon"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr ""
+msgstr "Sisesta animatsiooni rada ja võti"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Key"
@@ -379,15 +381,15 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Change Animation Step"
-msgstr "Muuda Animatsiooni Sammu"
+msgstr "Muuda animatsiooni sammu"
#: editor/animation_track_editor.cpp
msgid "Rearrange Tracks"
-msgstr ""
+msgstr "Paiguta rajad ümber"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr ""
+msgstr "Radade muundamine rakendub ainult ruumilisele sõlmedele."
#: editor/animation_track_editor.cpp
msgid ""
@@ -396,6 +398,10 @@ msgid ""
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
msgstr ""
+"Helirajad võivad osutada ainult järgmistele sõlmetüüpidele:\n"
+"-AudioSteamPlayer\n"
+"-AudioStreamPlayer2D\n"
+"-AudioStreamPlayer3D"
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
@@ -416,7 +422,7 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Add Bezier Track"
-msgstr "Lisa Bezieri Rada"
+msgstr "Lisa Bezieri rada"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
@@ -424,15 +430,15 @@ msgstr "Raja tee on kehtetu, mistõttu ei sa lisada võtit."
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
-msgstr ""
+msgstr "Rada pole Spatial tüüpi, ei saa sisestada võtit"
#: editor/animation_track_editor.cpp
msgid "Add Transform Track Key"
-msgstr ""
+msgstr "Lisa muunda raja võtit"
#: editor/animation_track_editor.cpp
msgid "Add Track Key"
-msgstr "Lisa Raja Võti"
+msgstr "Lisa raja võti"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
@@ -440,7 +446,7 @@ msgstr "Raja tee on kehtetu, mistõttu ei saa lisada meetodi võtit."
#: editor/animation_track_editor.cpp
msgid "Add Method Track Key"
-msgstr "Lisa Meetodi Raja Võti"
+msgstr "Lisa meetodi raja võti"
#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
@@ -456,7 +462,7 @@ msgstr "Lõikelaud on tühi"
#: editor/animation_track_editor.cpp
msgid "Paste Tracks"
-msgstr "Kleebi Rajad"
+msgstr "Kleebi rajad"
#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
@@ -817,7 +823,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1309,73 +1314,73 @@ msgstr ""
#: editor/editor_audio_buses.cpp
msgid "Open Audio Bus Layout"
-msgstr ""
+msgstr "Ava heliliinide paigutus"
#: editor/editor_audio_buses.cpp
msgid "There is no '%s' file."
-msgstr ""
+msgstr "Faili '%s' ei ole eksisteeri."
#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp
msgid "Layout"
-msgstr ""
+msgstr "Paigutus"
#: editor/editor_audio_buses.cpp
msgid "Invalid file, not an audio bus layout."
-msgstr ""
+msgstr "Vigane fial, ei ole heliliini paigutus."
#: editor/editor_audio_buses.cpp
msgid "Error saving file: %s"
-msgstr ""
+msgstr "Tõrge faili '%s' salvestamisel"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
-msgstr ""
+msgstr "Lisa siin"
#: editor/editor_audio_buses.cpp
msgid "Add a new Audio Bus to this layout."
-msgstr ""
+msgstr "Lisa uus helisiin sellele paigutusele."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Load"
-msgstr ""
+msgstr "Lae"
#: editor/editor_audio_buses.cpp
msgid "Load an existing Bus Layout."
-msgstr ""
+msgstr "Lae olemasolev siini paigutus."
#: editor/editor_audio_buses.cpp
msgid "Save As"
-msgstr ""
+msgstr "Salvesta kui…"
#: editor/editor_audio_buses.cpp
msgid "Save this Bus Layout to a file."
-msgstr ""
+msgstr "Salvesta see siini paigutus faili."
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
-msgstr ""
+msgstr "Laadi vaikimisi"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr ""
+msgstr "Lae vaikimise siini paigutus."
#: editor/editor_audio_buses.cpp
msgid "Create a new Bus Layout."
-msgstr ""
+msgstr "Loo uus siini paigutus."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
-msgstr ""
+msgstr "Vigane nimi."
#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
-msgstr ""
+msgstr "Kehtivad märgid:"
#: editor/editor_autoload_settings.cpp
msgid "Must not collide with an existing engine class name."
-msgstr ""
+msgstr "Ei tohi kokkupõrkuda mängumootori juba olemasoleva klassi nimega."
#: editor/editor_autoload_settings.cpp
msgid "Must not collide with an existing built-in type name."
@@ -1387,7 +1392,7 @@ msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Keyword cannot be used as an autoload name."
-msgstr ""
+msgstr "Võtmesõnu ei saa kasutada automaatsete nimedena."
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
@@ -1411,22 +1416,14 @@ msgstr ""
#: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp
msgid "Enable"
-msgstr ""
+msgstr "Luba"
#: editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -1438,17 +1435,17 @@ msgstr ""
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp
msgid "Path:"
-msgstr ""
+msgstr "Tee:"
#: editor/editor_autoload_settings.cpp
msgid "Node Name:"
-msgstr ""
+msgstr "Sõlme nimi:"
#: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp
#: editor/editor_profiler.cpp editor/project_manager.cpp
#: editor/settings_config_dialog.cpp
msgid "Name"
-msgstr ""
+msgstr "Nimi"
#: editor/editor_autoload_settings.cpp
msgid "Singleton"
@@ -1456,81 +1453,86 @@ msgstr ""
#: editor/editor_data.cpp editor/inspector_dock.cpp
msgid "Paste Params"
-msgstr ""
+msgstr "Kleebi parameetrid"
#: editor/editor_data.cpp
msgid "Updating Scene"
-msgstr ""
+msgstr "Värskendan stseeni"
#: editor/editor_data.cpp
msgid "Storing local changes..."
-msgstr ""
+msgstr "Salvestan kohalikud muudatused..."
#: editor/editor_data.cpp
msgid "Updating scene..."
-msgstr ""
+msgstr "Värskendan stseeni..."
#: editor/editor_data.cpp editor/editor_properties.cpp
msgid "[empty]"
-msgstr ""
+msgstr "[tühi]"
#: editor/editor_data.cpp
msgid "[unsaved]"
-msgstr ""
+msgstr "[salvestamata]"
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first."
-msgstr ""
+msgstr "Palun valige kõigepealt baaskataloog."
#: editor/editor_dir_dialog.cpp
msgid "Choose a Directory"
-msgstr ""
+msgstr "Vali kataloog"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp editor/project_manager.cpp
#: scene/gui/file_dialog.cpp
msgid "Create Folder"
-msgstr ""
+msgstr "Loo kaust"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
-msgstr ""
+msgstr "Nimi:"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Could not create folder."
-msgstr ""
+msgstr "Ei saanud luua kausta."
#: editor/editor_dir_dialog.cpp
msgid "Choose"
-msgstr ""
+msgstr "Vali"
#: editor/editor_export.cpp
+#, fuzzy
msgid "Storing File:"
-msgstr ""
+msgstr "Salvestan faili:"
#: editor/editor_export.cpp
msgid "No export template found at the expected path:"
-msgstr ""
+msgstr "Eeldataval teekonnal ei leitud ühtegi ekspordimalli:"
#: editor/editor_export.cpp
msgid "Packing"
-msgstr ""
+msgstr "Pakin"
#: editor/editor_export.cpp
msgid ""
"Target platform requires 'ETC' texture compression for GLES2. Enable 'Import "
"Etc' in Project Settings."
msgstr ""
+"Sihtplatvorm nõuab GLES2 jaoks 'ETC' tekstuuri tihendamist. Projekti "
+"seadetes lubage „Impordi ETCâ€."
#: editor/editor_export.cpp
msgid ""
"Target platform requires 'ETC2' texture compression for GLES3. Enable "
"'Import Etc 2' in Project Settings."
msgstr ""
+"Sihtplatvorm nõuab GLES3 jaoks 'ETC2' tekstuuri tihendamist. Projekti "
+"seadetes lubage „Impordi ETC2â€."
#: editor/editor_export.cpp
msgid ""
@@ -1539,6 +1541,9 @@ msgid ""
"Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback "
"Enabled'."
msgstr ""
+"Sihtplatvorm nõuab juhi varundamiseks GLES2-ga 'ETC' tekstuuri tihendamist.\n"
+"Lülitage projekti sätetes sisse „Impordi ETC†või keelake „Draiveri "
+"tagasilangemine lubatudâ€."
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
@@ -1554,7 +1559,7 @@ msgstr ""
#: editor/editor_export.cpp platform/javascript/export/export.cpp
msgid "Template file not found:"
-msgstr ""
+msgstr "Mallifaili ei leitud:"
#: editor/editor_export.cpp
msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
@@ -1562,11 +1567,11 @@ msgstr ""
#: editor/editor_feature_profile.cpp
msgid "3D Editor"
-msgstr ""
+msgstr "3D-redigeerija"
#: editor/editor_feature_profile.cpp
msgid "Script Editor"
-msgstr ""
+msgstr "Skriptiredaktor"
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
@@ -1574,7 +1579,7 @@ msgstr ""
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
-msgstr ""
+msgstr "Stseenipuu redigeerimine"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -1595,26 +1600,27 @@ msgstr ""
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
msgstr ""
+"Profiil peab olema kehtiv failinimi ja see ei tohi sisaldada '.' (punkti)"
#: editor/editor_feature_profile.cpp
msgid "Profile with this name already exists."
-msgstr ""
+msgstr "Selle nimega profiil on juba olemas."
#: editor/editor_feature_profile.cpp
msgid "(Editor Disabled, Properties Disabled)"
-msgstr ""
+msgstr "(Redaktor keelatud, atribuudid keelatud)"
#: editor/editor_feature_profile.cpp
msgid "(Properties Disabled)"
-msgstr ""
+msgstr "(Atribuudid keelatud)"
#: editor/editor_feature_profile.cpp
msgid "(Editor Disabled)"
-msgstr ""
+msgstr "(Redaktor keelatud)"
#: editor/editor_feature_profile.cpp
msgid "Class Options:"
-msgstr ""
+msgstr "Klassi valikud:"
#: editor/editor_feature_profile.cpp
msgid "Enable Contextual Editor"
@@ -1622,29 +1628,31 @@ msgstr ""
#: editor/editor_feature_profile.cpp
msgid "Enabled Properties:"
-msgstr ""
+msgstr "Lubatud atribuudid:"
#: editor/editor_feature_profile.cpp
msgid "Enabled Features:"
-msgstr ""
+msgstr "Lubatud funktsioonid:"
#: editor/editor_feature_profile.cpp
msgid "Enabled Classes:"
-msgstr ""
+msgstr "Lubatud klassid:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
-msgstr ""
+msgstr "Faili '% s' vorming on vale, import katkestati."
#: editor/editor_feature_profile.cpp
msgid ""
"Profile '%s' already exists. Remove it first before importing, import "
"aborted."
msgstr ""
+"Profiil '% s' on juba olemas. Enne importimist eemaldage see, import "
+"katkestati."
#: editor/editor_feature_profile.cpp
msgid "Error saving profile to path: '%s'."
-msgstr ""
+msgstr "Viga profiili salvestamisel teele: '% s'."
#: editor/editor_feature_profile.cpp
msgid "Unset"
@@ -1652,7 +1660,7 @@ msgstr ""
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
-msgstr ""
+msgstr "Praegune profiil:"
#: editor/editor_feature_profile.cpp
msgid "Make Current"
@@ -1662,82 +1670,82 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/version_control_editor_plugin.cpp
msgid "New"
-msgstr ""
+msgstr "Uus"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/project_manager.cpp
msgid "Import"
-msgstr ""
+msgstr "Impordi"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
-msgstr ""
+msgstr "Ekspordi"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
-msgstr ""
+msgstr "Saadaolevad profiilid:"
#: editor/editor_feature_profile.cpp
msgid "Class Options"
-msgstr ""
+msgstr "Klassi valikud"
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
-msgstr ""
+msgstr "Uus profiilinimi:"
#: editor/editor_feature_profile.cpp
msgid "Erase Profile"
-msgstr ""
+msgstr "Kustuta profiil"
#: editor/editor_feature_profile.cpp
msgid "Godot Feature Profile"
-msgstr ""
+msgstr "Godoti funktsiooniprofiil"
#: editor/editor_feature_profile.cpp
msgid "Import Profile(s)"
-msgstr ""
+msgstr "Impordi profiil(id)"
#: editor/editor_feature_profile.cpp
msgid "Export Profile"
-msgstr ""
+msgstr "Ekspordi profiil"
#: editor/editor_feature_profile.cpp
msgid "Manage Editor Feature Profiles"
-msgstr ""
+msgstr "Halda redigeerija funktsioonide profiile"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select Current Folder"
-msgstr ""
+msgstr "Valige praegune kaust"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File Exists, Overwrite?"
-msgstr ""
+msgstr "Fail on olemas, kirjutate üle?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
-msgstr ""
+msgstr "Vali see kaust"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Copy Path"
-msgstr ""
+msgstr "Kopeeri tee"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Open in File Manager"
-msgstr ""
+msgstr "Ava failihalduris"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/filesystem_dock.cpp editor/project_manager.cpp
msgid "Show in File Manager"
-msgstr ""
+msgstr "Kuva failihalduris"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "New Folder..."
-msgstr ""
+msgstr "Uus kaust..."
#: editor/editor_file_dialog.cpp editor/find_in_files.cpp
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Refresh"
-msgstr ""
+msgstr "Värskenda"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1745,50 +1753,50 @@ msgstr ""
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Files (*)"
-msgstr ""
+msgstr "Kõik failid (*)"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File"
-msgstr ""
+msgstr "Ava fail"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open File(s)"
-msgstr ""
+msgstr "Ava fail(id)"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a Directory"
-msgstr ""
+msgstr "Ava kataloog"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File or Directory"
-msgstr ""
+msgstr "Ava kaust või kataloog"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/editor_properties.cpp editor/inspector_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp scene/gui/file_dialog.cpp
msgid "Save"
-msgstr ""
+msgstr "Salvesta"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Save a File"
-msgstr ""
+msgstr "Salvesta fail"
#: editor/editor_file_dialog.cpp
msgid "Go Back"
-msgstr ""
+msgstr "Mine tagasi"
#: editor/editor_file_dialog.cpp
msgid "Go Forward"
-msgstr ""
+msgstr "Mine edasi"
#: editor/editor_file_dialog.cpp
msgid "Go Up"
-msgstr ""
+msgstr "Mine üles"
#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr ""
+msgstr "Lülita varjatud failid sisse/välja"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
@@ -1800,15 +1808,15 @@ msgstr ""
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr ""
+msgstr "Fookuse tee"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr ""
+msgstr "Liiguta lemmikud üles"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr ""
+msgstr "Liiguta lemmikud alla"
#: editor/editor_file_dialog.cpp
#, fuzzy
@@ -1822,11 +1830,11 @@ msgstr "Mine Järgmisele Sammule"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Go to parent folder."
-msgstr ""
+msgstr "Mine vanema kausta."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Refresh files."
-msgstr ""
+msgstr "Värskenda faile."
#: editor/editor_file_dialog.cpp
msgid "(Un)favorite current folder."
@@ -1838,29 +1846,29 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails."
-msgstr ""
+msgstr "Kuva üksusi pisipiltide ruudustikuna."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a list."
-msgstr ""
+msgstr "Kuva üksused loendina."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
-msgstr ""
+msgstr "Kataloogid ja failid:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Preview:"
-msgstr ""
+msgstr "Eelvaade:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File:"
-msgstr ""
+msgstr "Fail:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Must use a valid extension."
-msgstr ""
+msgstr "Peab kasutama kehtivat laiendit."
#: editor/editor_file_system.cpp
msgid "ScanSources"
@@ -1871,39 +1879,42 @@ msgid ""
"There are multiple importers for different types pointing to file %s, import "
"aborted"
msgstr ""
+"Erinevat tüüpi importijaid on mitu, mis osutavad failile % s, import "
+"katkestati"
#: editor/editor_file_system.cpp
+#, fuzzy
msgid "(Re)Importing Assets"
-msgstr ""
+msgstr "(Taas)impordin varasid"
#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
msgid "Top"
-msgstr ""
+msgstr "Ãœlaosa"
#: editor/editor_help.cpp
msgid "Class:"
-msgstr ""
+msgstr "Klass:"
#: editor/editor_help.cpp editor/scene_tree_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Inherits:"
-msgstr ""
+msgstr "Pärib:"
#: editor/editor_help.cpp
msgid "Inherited by:"
-msgstr ""
+msgstr "Päritud %s poolt"
#: editor/editor_help.cpp
msgid "Description"
-msgstr ""
+msgstr "Kirjeldus"
#: editor/editor_help.cpp
msgid "Online Tutorials"
-msgstr ""
+msgstr "Veebijuhendid"
#: editor/editor_help.cpp
msgid "Properties"
-msgstr ""
+msgstr "Atribuudid"
#: editor/editor_help.cpp
msgid "override:"
@@ -1911,32 +1922,31 @@ msgstr ""
#: editor/editor_help.cpp
msgid "default:"
-msgstr ""
+msgstr "vaikimisi:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr ""
+msgstr "Meetodid"
#: editor/editor_help.cpp
msgid "Theme Properties"
-msgstr ""
+msgstr "Teema atribuudid"
#: editor/editor_help.cpp
msgid "Enumerations"
-msgstr ""
+msgstr "Loetelu"
#: editor/editor_help.cpp
msgid "Constants"
-msgstr ""
+msgstr "Konstandid"
#: editor/editor_help.cpp
msgid "Property Descriptions"
-msgstr ""
+msgstr "Atribuutide kirjeldused"
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "Väärtus:"
+msgstr "(väärtus)"
#: editor/editor_help.cpp
msgid ""
@@ -1946,7 +1956,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Method Descriptions"
-msgstr ""
+msgstr "Meetodi kirjeldused"
#: editor/editor_help.cpp
msgid ""
@@ -1957,43 +1967,43 @@ msgstr ""
#: editor/editor_help_search.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
msgid "Search Help"
-msgstr ""
+msgstr "Otsimise abi"
#: editor/editor_help_search.cpp
msgid "Case Sensitive"
-msgstr ""
+msgstr "Tõstutundlik"
#: editor/editor_help_search.cpp
msgid "Show Hierarchy"
-msgstr ""
+msgstr "Kuva hierarhia"
#: editor/editor_help_search.cpp
msgid "Display All"
-msgstr ""
+msgstr "Kuva kõik"
#: editor/editor_help_search.cpp
msgid "Classes Only"
-msgstr ""
+msgstr "Ainult klassid"
#: editor/editor_help_search.cpp
msgid "Methods Only"
-msgstr ""
+msgstr "Ainult meetodid"
#: editor/editor_help_search.cpp
msgid "Signals Only"
-msgstr ""
+msgstr "Ainult signaalid"
#: editor/editor_help_search.cpp
msgid "Constants Only"
-msgstr ""
+msgstr "Ainult konstandid"
#: editor/editor_help_search.cpp
msgid "Properties Only"
-msgstr ""
+msgstr "Ainult atribuudid"
#: editor/editor_help_search.cpp
msgid "Theme Properties Only"
-msgstr ""
+msgstr "Ainult teema atribuudid"
#: editor/editor_help_search.cpp
msgid "Member Type"
@@ -2001,47 +2011,47 @@ msgstr ""
#: editor/editor_help_search.cpp
msgid "Class"
-msgstr ""
+msgstr "Klass"
#: editor/editor_help_search.cpp
msgid "Method"
-msgstr ""
+msgstr "Meetod"
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
msgid "Signal"
-msgstr ""
+msgstr "Signaal"
#: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constant"
-msgstr ""
+msgstr "Konstant"
#: editor/editor_help_search.cpp
msgid "Property"
-msgstr ""
+msgstr "Atribuut"
#: editor/editor_help_search.cpp
msgid "Theme Property"
-msgstr ""
+msgstr "Teema atribuut"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
-msgstr ""
+msgstr "Atribuut:"
#: editor/editor_inspector.cpp
msgid "Set"
-msgstr ""
+msgstr "Sea"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
-msgstr ""
+msgstr "Sea mitu:"
#: editor/editor_log.cpp
msgid "Output:"
-msgstr ""
+msgstr "Väljund:"
#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp
msgid "Copy Selection"
-msgstr ""
+msgstr "Kopeeri valik"
#: editor/editor_log.cpp editor/editor_network_profiler.cpp
#: editor/editor_profiler.cpp editor/editor_properties.cpp
@@ -2051,21 +2061,23 @@ msgstr ""
#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Clear"
-msgstr ""
+msgstr "Puhasta"
#: editor/editor_log.cpp
msgid "Clear Output"
-msgstr ""
+msgstr "Puhasta väljund"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
#: editor/editor_profiler.cpp
+#, fuzzy
msgid "Stop"
-msgstr ""
+msgstr "Peatu/Stopp"
#: editor/editor_network_profiler.cpp editor/editor_profiler.cpp
#: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp
+#, fuzzy
msgid "Start"
-msgstr ""
+msgstr "Start/Käivita"
#: editor/editor_network_profiler.cpp
msgid "%s/s"
@@ -2073,15 +2085,15 @@ msgstr ""
#: editor/editor_network_profiler.cpp
msgid "Down"
-msgstr ""
+msgstr "Alla"
#: editor/editor_network_profiler.cpp
msgid "Up"
-msgstr ""
+msgstr "Ãœles"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
msgid "Node"
-msgstr ""
+msgstr "Sõlm"
#: editor/editor_network_profiler.cpp
msgid "Incoming RPC"
@@ -2101,11 +2113,11 @@ msgstr ""
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "New Window"
-msgstr ""
+msgstr "Uus aken"
#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
-msgstr ""
+msgstr "Imporditud ressursse ei saa salvestada."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: scene/gui/dialogs.cpp
@@ -2114,21 +2126,23 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
-msgstr ""
+msgstr "Viga ressursi salvestamisel!"
#: editor/editor_node.cpp
msgid ""
"This resource can't be saved because it does not belong to the edited scene. "
"Make it unique first."
msgstr ""
+"Seda ressurssi ei saa salvestada, kuna see ei kuulu muudetud stseeni. Esmalt "
+"tehke see ainulaadseks."
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As..."
-msgstr ""
+msgstr "Salvesta ressurss kui..."
#: editor/editor_node.cpp
msgid "Can't open file for writing:"
-msgstr ""
+msgstr "Faili ei saa kirjutamiseks avada:"
#: editor/editor_node.cpp
msgid "Requested file format unknown:"
@@ -2136,11 +2150,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Error while saving."
-msgstr ""
+msgstr "Viga salvestamisel."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Can't open '%s'. The file could have been moved or deleted."
-msgstr ""
+msgstr "'%si' ei saa avada. Faili võib olla teisaldatud või kustutatud."
#: editor/editor_node.cpp
msgid "Error while parsing '%s'."
@@ -2148,37 +2162,39 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Unexpected end of file '%s'."
-msgstr ""
+msgstr "Faili '%s' ootamatu lõpp."
#: editor/editor_node.cpp
msgid "Missing '%s' or its dependencies."
-msgstr ""
+msgstr "Puudub '%s' või selle sõltuvuspaketid."
#: editor/editor_node.cpp
msgid "Error while loading '%s'."
-msgstr ""
+msgstr "Viga faili '%s' laadimisel."
#: editor/editor_node.cpp
msgid "Saving Scene"
-msgstr ""
+msgstr "Stseeni salvestamine"
#: editor/editor_node.cpp
msgid "Analyzing"
-msgstr ""
+msgstr "Analüüsin"
#: editor/editor_node.cpp
msgid "Creating Thumbnail"
-msgstr ""
+msgstr "Loon pisipilti"
#: editor/editor_node.cpp
msgid "This operation can't be done without a tree root."
-msgstr ""
+msgstr "Seda toimingut ei saa teha ilma puu juureta."
#: editor/editor_node.cpp
msgid ""
"This scene can't be saved because there is a cyclic instancing inclusion.\n"
"Please resolve it and then attempt to save again."
msgstr ""
+"Seda stseeni ei saa salvestada, kuna toimub tsükliline sisestus.\n"
+"Lahenda see ja proovige siis uuesti salvestada."
#: editor/editor_node.cpp
msgid ""
@@ -2188,27 +2204,27 @@ msgstr ""
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "Can't overwrite scene that is still open!"
-msgstr ""
+msgstr "Avatud stseeni ei saa üle kirjutada!"
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
-msgstr ""
+msgstr "MeshLibrary ei saa ühendamiseks laadida!"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr ""
+msgstr "Viga MeshLibrary salvestamisel!"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
-msgstr ""
+msgstr "TileSeti ei saa ühendamiseks laadida!"
#: editor/editor_node.cpp
msgid "Error saving TileSet!"
-msgstr ""
+msgstr "Viga TileSeti salvestamisel!"
#: editor/editor_node.cpp
msgid "Error trying to save layout!"
-msgstr ""
+msgstr "Viga paigutuse salvestamisel!"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
@@ -2216,11 +2232,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Layout name not found!"
-msgstr ""
+msgstr "Paigutuse nime ei leitud!"
#: editor/editor_node.cpp
msgid "Restored default layout to base settings."
-msgstr ""
+msgstr "Taastati vaikepaigutus baasseadetesse."
#: editor/editor_node.cpp
msgid ""
@@ -2349,11 +2365,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Stseeni salvestamine"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2620,10 +2639,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3229,6 +3244,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3814,6 +3833,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6691,11 +6714,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7166,6 +7189,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10086,7 +10118,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10246,6 +10278,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10292,11 +10331,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10416,6 +10455,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Faili ei ole olemas."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10456,6 +10499,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Kehtetu tee."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11486,6 +11533,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11509,6 +11560,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12119,23 +12196,23 @@ msgstr ""
#: scene/main/viewport.cpp
msgid "Viewport size must be greater than 0 to render anything."
-msgstr ""
+msgstr "Vaateakne suurus peab olema suurem kui 0, et kuvada."
#: scene/resources/visual_shader_nodes.cpp
msgid "Invalid source for preview."
-msgstr ""
+msgstr "Vigane eelvaate lähe."
#: scene/resources/visual_shader_nodes.cpp
msgid "Invalid source for shader."
-msgstr ""
+msgstr "Vigane varjutaja lähe."
#: scene/resources/visual_shader_nodes.cpp
msgid "Invalid comparison function for that type."
-msgstr ""
+msgstr "Vigane võrdlusfinktsioon selle tüübi jaoks."
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
-msgstr ""
+msgstr "Funktsiooni määramine."
#: servers/visual/shader_language.cpp
msgid "Assignment to uniform."
@@ -12147,4 +12224,7 @@ msgstr ""
#: servers/visual/shader_language.cpp
msgid "Constants cannot be modified."
-msgstr ""
+msgstr "Konstante ei saa muuta."
+
+#~ msgid "Not in resource path."
+#~ msgstr "Ei ole ressursiteel."
diff --git a/editor/translations/eu.po b/editor/translations/eu.po
index f633f1c298..b47056d82b 100644
--- a/editor/translations/eu.po
+++ b/editor/translations/eu.po
@@ -3,11 +3,11 @@
# Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Julen Irazoki <rktzbkr.julen@gmail.com>, 2019.
-# Osoitz <oelkoro@gmail.com>, 2019.
+# Osoitz <oelkoro@gmail.com>, 2019, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2019-12-03 14:05+0000\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
"Last-Translator: Osoitz <oelkoro@gmail.com>\n"
"Language-Team: Basque <https://hosted.weblate.org/projects/godot-engine/"
"godot/eu/>\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -24,7 +24,7 @@ msgstr ""
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "1 luzerako kate bat espero zen (karaktere bat)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -54,79 +54,79 @@ msgstr ""
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr ""
+msgstr "'%s' eraikitzeko argumentu baliogabeak"
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr ""
+msgstr "'%s' deitzean:"
#: core/ustring.cpp
msgid "B"
-msgstr ""
+msgstr "B"
#: core/ustring.cpp
msgid "KiB"
-msgstr ""
+msgstr "KiB"
#: core/ustring.cpp
msgid "MiB"
-msgstr ""
+msgstr "MiB"
#: core/ustring.cpp
msgid "GiB"
-msgstr ""
+msgstr "GiB"
#: core/ustring.cpp
msgid "TiB"
-msgstr ""
+msgstr "TiB"
#: core/ustring.cpp
msgid "PiB"
-msgstr ""
+msgstr "PiB"
#: core/ustring.cpp
msgid "EiB"
-msgstr ""
+msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
-msgstr ""
+msgstr "Libre"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
-msgstr ""
+msgstr "Orekatua"
#: editor/animation_bezier_editor.cpp
msgid "Mirror"
-msgstr ""
+msgstr "Ispilua"
#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
msgid "Time:"
-msgstr ""
+msgstr "Denbora:"
#: editor/animation_bezier_editor.cpp
msgid "Value:"
-msgstr ""
+msgstr "Balioa:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr ""
+msgstr "Txertatu gakoa hemen"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
-msgstr ""
+msgstr "Bikoiztu hautatutako gakoa(k)"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr ""
+msgstr "Ezabatu hautatutako gakoak"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
-msgstr ""
+msgstr "Gehitu Bezier puntua"
#: editor/animation_bezier_editor.cpp
msgid "Move Bezier Points"
-msgstr ""
+msgstr "Mugitu Bezier puntuak"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
@@ -178,12 +178,12 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
-msgstr ""
+msgstr "Aldatu animazioaren iraupena"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "Aldatu animazioaren begizta"
#: editor/animation_track_editor.cpp
msgid "Property Track"
@@ -211,11 +211,11 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Animation length (frames)"
-msgstr ""
+msgstr "Animazioaren iraupena (fotogramak)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
-msgstr ""
+msgstr "Animazioaren iraupena (segundoak)"
#: editor/animation_track_editor.cpp
msgid "Add Track"
@@ -496,7 +496,7 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Snap:"
-msgstr ""
+msgstr "Atxikitzea:"
#: editor/animation_track_editor.cpp
msgid "Animation step value."
@@ -814,7 +814,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -950,32 +949,32 @@ msgstr ""
#: editor/dependency_editor.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
-msgstr ""
+msgstr "Mendekotasunak"
#: editor/dependency_editor.cpp
msgid "Resource"
-msgstr ""
+msgstr "Baliabidea"
#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp
#: editor/project_manager.cpp editor/project_settings_editor.cpp
msgid "Path"
-msgstr ""
+msgstr "Bidea"
#: editor/dependency_editor.cpp
msgid "Dependencies:"
-msgstr ""
+msgstr "Mendekotasunak:"
#: editor/dependency_editor.cpp
msgid "Fix Broken"
-msgstr ""
+msgstr "Konpondu hautsitakoa"
#: editor/dependency_editor.cpp
msgid "Dependency Editor"
-msgstr ""
+msgstr "Mendekotasun-editorea"
#: editor/dependency_editor.cpp
msgid "Search Replacement Resource:"
-msgstr ""
+msgstr "Bilatu ordezko baliabidea:"
#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp
#: editor/editor_help_search.cpp editor/editor_node.cpp
@@ -985,15 +984,16 @@ msgstr ""
#: modules/visual_script/visual_script_property_selector.cpp
#: scene/gui/file_dialog.cpp
msgid "Open"
-msgstr ""
+msgstr "Ireki"
#: editor/dependency_editor.cpp
msgid "Owners Of:"
-msgstr ""
+msgstr "Hauen jabeak:"
#: editor/dependency_editor.cpp
msgid "Remove selected files from the project? (Can't be restored)"
msgstr ""
+"Kendu hautatutako fitxategiak proiektutik? (Ezin izango da berreskuratu)"
#: editor/dependency_editor.cpp
msgid ""
@@ -1001,46 +1001,49 @@ msgid ""
"work.\n"
"Remove them anyway? (no undo)"
msgstr ""
+"Kendu beharreko fitxategiak beste baliabide batzuek behar dituzte funtziona "
+"dezaten.\n"
+"Kendu, hala ere? (Ezin da desegin)"
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
-msgstr ""
+msgstr "Ezin kendu:"
#: editor/dependency_editor.cpp
msgid "Error loading:"
-msgstr ""
+msgstr "Errorea kargatzean:"
#: editor/dependency_editor.cpp
msgid "Load failed due to missing dependencies:"
-msgstr ""
+msgstr "Kargak huts egin du mendekotasunak falta direlako:"
#: editor/dependency_editor.cpp editor/editor_node.cpp
msgid "Open Anyway"
-msgstr ""
+msgstr "Ireki dena den"
#: editor/dependency_editor.cpp
msgid "Which action should be taken?"
-msgstr ""
+msgstr "Zein ekintza egin behar da?"
#: editor/dependency_editor.cpp
msgid "Fix Dependencies"
-msgstr ""
+msgstr "Konpondu mendekotasunak"
#: editor/dependency_editor.cpp
msgid "Errors loading!"
-msgstr ""
+msgstr "Erroreak kargatzean!"
#: editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr ""
+msgstr "%d elementu behin betiko ezabatu nahi duzu? (Ezin da desegin!)"
#: editor/dependency_editor.cpp
msgid "Show Dependencies"
-msgstr ""
+msgstr "Erakutsi mendekotasunak"
#: editor/dependency_editor.cpp
msgid "Orphan Resource Explorer"
-msgstr ""
+msgstr "Baliabide umezurtzen arakatzailea"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
@@ -1048,27 +1051,28 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp
#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
msgid "Delete"
-msgstr ""
+msgstr "Ezabatu"
#: editor/dependency_editor.cpp
msgid "Owns"
-msgstr ""
+msgstr "Jabea"
#: editor/dependency_editor.cpp
msgid "Resources Without Explicit Ownership:"
-msgstr ""
+msgstr "Jabetza esplizitu gabeko baliabideak:"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Key"
-msgstr ""
+msgstr "Aldatu hiztegiaren gakoa"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Value"
-msgstr ""
+msgstr "Aldatu hiztegiaren balioa"
#: editor/editor_about.cpp
+#, fuzzy
msgid "Thanks from the Godot community!"
-msgstr ""
+msgstr "Eskerrik asko Godot komunitatearen partetik!"
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
@@ -1076,59 +1080,59 @@ msgstr ""
#: editor/editor_about.cpp
msgid "Project Founders"
-msgstr ""
+msgstr "Proiektuaren sortzaileak"
#: editor/editor_about.cpp
msgid "Lead Developer"
-msgstr ""
+msgstr "Garatzaile nagusia"
#: editor/editor_about.cpp
msgid "Project Manager "
-msgstr ""
+msgstr "Proiektu-kudeatzailea "
#: editor/editor_about.cpp
msgid "Developers"
-msgstr ""
+msgstr "Garatzaileak"
#: editor/editor_about.cpp
msgid "Authors"
-msgstr ""
+msgstr "Egileak"
#: editor/editor_about.cpp
msgid "Platinum Sponsors"
-msgstr ""
+msgstr "Platinozko babesleak"
#: editor/editor_about.cpp
msgid "Gold Sponsors"
-msgstr ""
+msgstr "Urrezko babesleak"
#: editor/editor_about.cpp
msgid "Mini Sponsors"
-msgstr ""
+msgstr "Mini babesleak"
#: editor/editor_about.cpp
msgid "Gold Donors"
-msgstr ""
+msgstr "Urrezko emaileak"
#: editor/editor_about.cpp
msgid "Silver Donors"
-msgstr ""
+msgstr "Zilarrezko emaileak"
#: editor/editor_about.cpp
msgid "Bronze Donors"
-msgstr ""
+msgstr "Brontzezko emaileak"
#: editor/editor_about.cpp
msgid "Donors"
-msgstr ""
+msgstr "Emaileak"
#: editor/editor_about.cpp
msgid "License"
-msgstr ""
+msgstr "Lizentzia"
#: editor/editor_about.cpp
msgid "Third-party Licenses"
-msgstr ""
+msgstr "Hirugarrengoen lizentziak"
#: editor/editor_about.cpp
msgid ""
@@ -1140,27 +1144,27 @@ msgstr ""
#: editor/editor_about.cpp
msgid "All Components"
-msgstr ""
+msgstr "Osagai guztiak"
#: editor/editor_about.cpp
msgid "Components"
-msgstr ""
+msgstr "Osagaiak"
#: editor/editor_about.cpp
msgid "Licenses"
-msgstr ""
+msgstr "Lizentziak"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Error opening package file, not in ZIP format."
-msgstr ""
+msgstr "Errorea pakete fitxategia irekitzean, ez dago ZIP formatuan."
#: editor/editor_asset_installer.cpp
msgid "%s (Already Exists)"
-msgstr ""
+msgstr "%s (jada existitzen da)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
-msgstr ""
+msgstr "Aktiboak deskonprimatzen"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "The following files failed extraction from package:"
@@ -1168,28 +1172,28 @@ msgstr ""
#: editor/editor_asset_installer.cpp
msgid "And %s more files."
-msgstr ""
+msgstr "Eta beste %s fitxategi."
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Package installed successfully!"
-msgstr ""
+msgstr "Paketea ondo instalatu da!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Success!"
-msgstr ""
+msgstr "Arrakasta!"
#: editor/editor_asset_installer.cpp
msgid "Package Contents:"
-msgstr ""
+msgstr "Paketearen edukia:"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
-msgstr ""
+msgstr "Instalatu"
#: editor/editor_asset_installer.cpp
msgid "Package Installer"
-msgstr ""
+msgstr "Pakete instalatzailea"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1197,7 +1201,7 @@ msgstr ""
#: editor/editor_audio_buses.cpp
msgid "Add Effect"
-msgstr ""
+msgstr "Gehitu efektua"
#: editor/editor_audio_buses.cpp
msgid "Rename Audio Bus"
@@ -1237,7 +1241,7 @@ msgstr ""
#: editor/editor_audio_buses.cpp
msgid "Drag & drop to rearrange."
-msgstr ""
+msgstr "Arrastatu eta jaregin berrantolatzeko."
#: editor/editor_audio_buses.cpp
msgid "Solo"
@@ -1258,19 +1262,19 @@ msgstr ""
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
-msgstr ""
+msgstr "Bikoiztu"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
-msgstr ""
+msgstr "Berrezarri bolumena"
#: editor/editor_audio_buses.cpp
msgid "Delete Effect"
-msgstr ""
+msgstr "Ezabatu efektua"
#: editor/editor_audio_buses.cpp
msgid "Audio"
-msgstr ""
+msgstr "Audioa"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
@@ -1336,7 +1340,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Load"
-msgstr ""
+msgstr "Kargatu"
#: editor/editor_audio_buses.cpp
msgid "Load an existing Bus Layout."
@@ -1344,7 +1348,7 @@ msgstr ""
#: editor/editor_audio_buses.cpp
msgid "Save As"
-msgstr ""
+msgstr "Gorde honela"
#: editor/editor_audio_buses.cpp
msgid "Save this Bus Layout to a file."
@@ -1414,16 +1418,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -1567,7 +1563,7 @@ msgstr ""
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
-msgstr ""
+msgstr "Aktiboen liburutegia"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
@@ -1668,35 +1664,35 @@ msgstr ""
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
-msgstr ""
+msgstr "Esportatu"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
-msgstr ""
+msgstr "Eskuragarri dauden profilak:"
#: editor/editor_feature_profile.cpp
msgid "Class Options"
-msgstr ""
+msgstr "Klaseko aukerak"
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
-msgstr ""
+msgstr "Profilaren izen berria:"
#: editor/editor_feature_profile.cpp
msgid "Erase Profile"
-msgstr ""
+msgstr "Ezabatu profila"
#: editor/editor_feature_profile.cpp
msgid "Godot Feature Profile"
-msgstr ""
+msgstr "Godot ezaugarri profila"
#: editor/editor_feature_profile.cpp
msgid "Import Profile(s)"
-msgstr ""
+msgstr "Inportatu profila(k)"
#: editor/editor_feature_profile.cpp
msgid "Export Profile"
-msgstr ""
+msgstr "Esportatu profila"
#: editor/editor_feature_profile.cpp
msgid "Manage Editor Feature Profiles"
@@ -1704,32 +1700,32 @@ msgstr ""
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select Current Folder"
-msgstr ""
+msgstr "Hautatu uneko karpeta"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File Exists, Overwrite?"
-msgstr ""
+msgstr "Fitxategia badago aurretik, gainidatzi?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
-msgstr ""
+msgstr "Hautatu karpeta hau"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Copy Path"
-msgstr ""
+msgstr "Kopiatu bidea"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Open in File Manager"
-msgstr ""
+msgstr "Ireki fitxategi-kudeatzailean"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/filesystem_dock.cpp editor/project_manager.cpp
msgid "Show in File Manager"
-msgstr ""
+msgstr "Erakutsi fitxategi-kudeatzailean"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "New Folder..."
-msgstr ""
+msgstr "Karpeta berria..."
#: editor/editor_file_dialog.cpp editor/find_in_files.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -1742,58 +1738,58 @@ msgstr ""
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Files (*)"
-msgstr ""
+msgstr "Fitxategi guztiak (*)"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File"
-msgstr ""
+msgstr "Ireki fitxategi bat"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open File(s)"
-msgstr ""
+msgstr "Ireki fitxategia(k)"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a Directory"
-msgstr ""
+msgstr "Ireki direktorioa"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File or Directory"
-msgstr ""
+msgstr "Ireki fitxategia edo direktorioa"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/editor_properties.cpp editor/inspector_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp scene/gui/file_dialog.cpp
msgid "Save"
-msgstr ""
+msgstr "Gorde"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Save a File"
-msgstr ""
+msgstr "Gorde fitxategia"
#: editor/editor_file_dialog.cpp
msgid "Go Back"
-msgstr ""
+msgstr "Joan atzera"
#: editor/editor_file_dialog.cpp
msgid "Go Forward"
-msgstr ""
+msgstr "Joan aurrera"
#: editor/editor_file_dialog.cpp
msgid "Go Up"
-msgstr ""
+msgstr "Joan gora"
#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr ""
+msgstr "Txandakatu ezkutatutako fitxategiak"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr ""
+msgstr "Txandakatu gogokoa"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr ""
+msgstr "Txandakatu modua"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
@@ -1801,27 +1797,27 @@ msgstr ""
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr ""
+msgstr "Eraman gogokoa gora"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr ""
+msgstr "Eraman gogoa behera"
#: editor/editor_file_dialog.cpp
msgid "Go to previous folder."
-msgstr ""
+msgstr "Joan aurreko karpetara."
#: editor/editor_file_dialog.cpp
msgid "Go to next folder."
-msgstr ""
+msgstr "Joan hurrengo karpetara."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Go to parent folder."
-msgstr ""
+msgstr "Joan guraso karpetara."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Refresh files."
-msgstr ""
+msgstr "Eguneratu fitxategiak."
#: editor/editor_file_dialog.cpp
msgid "(Un)favorite current folder."
@@ -1829,7 +1825,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Toggle the visibility of hidden files."
-msgstr ""
+msgstr "Txandakatu ezkutuko fitxategien ikusgaitasuna."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails."
@@ -1837,25 +1833,25 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a list."
-msgstr ""
+msgstr "Ikusi elementuak zerrenda gisa."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
-msgstr ""
+msgstr "Direktorioak eta fitxategiak:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Preview:"
-msgstr ""
+msgstr "Aurrebista:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File:"
-msgstr ""
+msgstr "Fitxategia:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Must use a valid extension."
-msgstr ""
+msgstr "Baliozko luzapena erabili behar du."
#: editor/editor_file_system.cpp
msgid "ScanSources"
@@ -1869,7 +1865,7 @@ msgstr ""
#: editor/editor_file_system.cpp
msgid "(Re)Importing Assets"
-msgstr ""
+msgstr "Aktiboak (bir)inportatzen"
#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
msgid "Top"
@@ -1877,20 +1873,20 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Class:"
-msgstr ""
+msgstr "Klasea:"
#: editor/editor_help.cpp editor/scene_tree_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Inherits:"
-msgstr ""
+msgstr "Herentziak:"
#: editor/editor_help.cpp
msgid "Inherited by:"
-msgstr ""
+msgstr "Hauek heredatua:"
#: editor/editor_help.cpp
msgid "Description"
-msgstr ""
+msgstr "Deskripzioa"
#: editor/editor_help.cpp
msgid "Online Tutorials"
@@ -1898,31 +1894,31 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Properties"
-msgstr ""
+msgstr "Propietateak"
#: editor/editor_help.cpp
msgid "override:"
-msgstr ""
+msgstr "gainidatzi:"
#: editor/editor_help.cpp
msgid "default:"
-msgstr ""
+msgstr "lehenetsia:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr ""
+msgstr "Metodoak"
#: editor/editor_help.cpp
msgid "Theme Properties"
-msgstr ""
+msgstr "Azalaren propietateak"
#: editor/editor_help.cpp
msgid "Enumerations"
-msgstr ""
+msgstr "Enumerazioak"
#: editor/editor_help.cpp
msgid "Constants"
-msgstr ""
+msgstr "Konstanteak"
#: editor/editor_help.cpp
msgid "Property Descriptions"
@@ -1930,7 +1926,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "(value)"
-msgstr ""
+msgstr "(balioa)"
#: editor/editor_help.cpp
msgid ""
@@ -1940,7 +1936,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Method Descriptions"
-msgstr ""
+msgstr "Metodo-deskripzioak"
#: editor/editor_help.cpp
msgid ""
@@ -1951,63 +1947,63 @@ msgstr ""
#: editor/editor_help_search.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
msgid "Search Help"
-msgstr ""
+msgstr "Bilatu laguntza"
#: editor/editor_help_search.cpp
msgid "Case Sensitive"
-msgstr ""
+msgstr "Maiuskulak eta minuskulak"
#: editor/editor_help_search.cpp
msgid "Show Hierarchy"
-msgstr ""
+msgstr "Erakutsi hierarkia"
#: editor/editor_help_search.cpp
msgid "Display All"
-msgstr ""
+msgstr "Erakutsi guztiak"
#: editor/editor_help_search.cpp
msgid "Classes Only"
-msgstr ""
+msgstr "Klaseak bakarrik"
#: editor/editor_help_search.cpp
msgid "Methods Only"
-msgstr ""
+msgstr "Metodoak bakarrik"
#: editor/editor_help_search.cpp
msgid "Signals Only"
-msgstr ""
+msgstr "Seinaleak bakarrik"
#: editor/editor_help_search.cpp
msgid "Constants Only"
-msgstr ""
+msgstr "Konstanteak bakarrik"
#: editor/editor_help_search.cpp
msgid "Properties Only"
-msgstr ""
+msgstr "Propietateak bakarrik"
#: editor/editor_help_search.cpp
msgid "Theme Properties Only"
-msgstr ""
+msgstr "Azalaren propietateak bakarrik"
#: editor/editor_help_search.cpp
msgid "Member Type"
-msgstr ""
+msgstr "Kide mota"
#: editor/editor_help_search.cpp
msgid "Class"
-msgstr ""
+msgstr "Klasea"
#: editor/editor_help_search.cpp
msgid "Method"
-msgstr ""
+msgstr "Metodoa"
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
msgid "Signal"
-msgstr ""
+msgstr "Seinalea"
#: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constant"
-msgstr ""
+msgstr "Konstantea"
#: editor/editor_help_search.cpp
msgid "Property"
@@ -2015,7 +2011,7 @@ msgstr ""
#: editor/editor_help_search.cpp
msgid "Theme Property"
-msgstr ""
+msgstr "Azalaren propietatea"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
@@ -2343,11 +2339,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Birkargatu azala"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2605,16 +2604,12 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Undo"
-msgstr ""
+msgstr "Desegin"
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Redo"
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
+msgstr "Berregin"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
@@ -2623,27 +2618,27 @@ msgstr ""
#: editor/editor_node.cpp editor/project_manager.cpp
#: editor/script_create_dialog.cpp
msgid "Project"
-msgstr ""
+msgstr "Proiektua"
#: editor/editor_node.cpp
msgid "Project Settings..."
-msgstr ""
+msgstr "Proiektuaren ezarpenak..."
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Version Control"
-msgstr ""
+msgstr "Bertsio kontrola"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Set Up Version Control"
-msgstr ""
+msgstr "Ezarri bertsio kontrola"
#: editor/editor_node.cpp
msgid "Shut Down Version Control"
-msgstr ""
+msgstr "Desgaitu bertsio kontrola"
#: editor/editor_node.cpp
msgid "Export..."
-msgstr ""
+msgstr "Esportatu..."
#: editor/editor_node.cpp
msgid "Install Android Build Template..."
@@ -2651,24 +2646,24 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Open Project Data Folder"
-msgstr ""
+msgstr "Ireki proiektuaren datu karpeta"
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
-msgstr ""
+msgstr "Tresnak"
#: editor/editor_node.cpp
msgid "Orphan Resource Explorer..."
-msgstr ""
+msgstr "Baliabide umezurtzen arakatzailea..."
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr ""
+msgstr "Irten proiektuen zerrendara"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
msgid "Debug"
-msgstr ""
+msgstr "Araztu"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
@@ -2696,7 +2691,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
-msgstr ""
+msgstr "Talka formak ikusgai"
#: editor/editor_node.cpp
msgid ""
@@ -2760,11 +2755,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr ""
+msgstr "Txandakatu pantaila osoa"
#: editor/editor_node.cpp
msgid "Toggle System Console"
-msgstr ""
+msgstr "Txandakatu sistemaren kontsola"
#: editor/editor_node.cpp
msgid "Open Editor Data/Settings Folder"
@@ -2772,23 +2767,23 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Open Editor Data Folder"
-msgstr ""
+msgstr "Ireki editorearen datu karpeta"
#: editor/editor_node.cpp
msgid "Open Editor Settings Folder"
-msgstr ""
+msgstr "Ireki editorearen ezarpenen karpeta"
#: editor/editor_node.cpp
msgid "Manage Editor Features..."
-msgstr ""
+msgstr "Kudeatu editorearen ezaugarriak..."
#: editor/editor_node.cpp
msgid "Manage Export Templates..."
-msgstr ""
+msgstr "Kudeatu esportazio txantiloiak..."
#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
msgid "Help"
-msgstr ""
+msgstr "Laguntza"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -2797,20 +2792,20 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
msgid "Search"
-msgstr ""
+msgstr "Bilatu"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/plugins/shader_editor_plugin.cpp
msgid "Online Docs"
-msgstr ""
+msgstr "Lineako dokumentuak"
#: editor/editor_node.cpp
msgid "Q&A"
-msgstr ""
+msgstr "Galdera-erantzunak"
#: editor/editor_node.cpp
msgid "Report a Bug"
-msgstr ""
+msgstr "Eman akats baten berri"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -2818,11 +2813,11 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr ""
+msgstr "Komunitatea"
#: editor/editor_node.cpp
msgid "About"
-msgstr ""
+msgstr "Honi buruz"
#: editor/editor_node.cpp
msgid "Play the project."
@@ -2978,7 +2973,7 @@ msgstr ""
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
-msgstr ""
+msgstr "Ireki aktiboen liburutegia"
#: editor/editor_node.cpp
msgid "Open the next Editor"
@@ -3204,7 +3199,7 @@ msgstr ""
#: editor/editor_run_script.cpp
msgid "There is an edited scene already."
-msgstr ""
+msgstr "Badago editatutako eszena bat."
#: editor/editor_run_script.cpp
msgid "Couldn't instance script:"
@@ -3216,44 +3211,48 @@ msgstr ""
#: editor/editor_run_script.cpp
msgid "Couldn't run script:"
-msgstr ""
+msgstr "Ezin izan da scripta exekutatu:"
#: editor/editor_run_script.cpp
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
-msgstr ""
+msgstr "Hautatu inportatu nahi dituzun nodoak"
#: editor/editor_sub_scene.cpp editor/project_manager.cpp
msgid "Browse"
-msgstr ""
+msgstr "Arakatu"
#: editor/editor_sub_scene.cpp
msgid "Scene Path:"
-msgstr ""
+msgstr "Eszenaren bidea:"
#: editor/editor_sub_scene.cpp
msgid "Import From Node:"
-msgstr ""
+msgstr "Inportatu nodotik:"
#: editor/export_template_manager.cpp
msgid "Redownload"
-msgstr ""
+msgstr "Berriro jaitsi"
#: editor/export_template_manager.cpp
msgid "Uninstall"
-msgstr ""
+msgstr "Desinstalatu"
#: editor/export_template_manager.cpp
msgid "(Installed)"
-msgstr ""
+msgstr "(Instalatuta)"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download"
-msgstr ""
+msgstr "Jaitsi"
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
@@ -3261,11 +3260,11 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "(Missing)"
-msgstr ""
+msgstr "(Falta da)"
#: editor/export_template_manager.cpp
msgid "(Current)"
-msgstr ""
+msgstr "(Unekoa)"
#: editor/export_template_manager.cpp
msgid "Retrieving mirrors, please wait..."
@@ -3312,6 +3311,8 @@ msgid ""
"No download links found for this version. Direct download is only available "
"for official releases."
msgstr ""
+"Ez da bertsio hau jaisteko estekarik aurkitu. Deskarga zuzena bertsio "
+"ofizialentzat besterik ez dago."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3343,7 +3344,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Download Complete."
-msgstr ""
+msgstr "Jaitsiera osatuta."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3395,11 +3396,11 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Downloading"
-msgstr ""
+msgstr "Jaisten"
#: editor/export_template_manager.cpp
msgid "Connection Error"
-msgstr ""
+msgstr "Konexio-errorea"
#: editor/export_template_manager.cpp
msgid "SSL Handshake Error"
@@ -3411,35 +3412,35 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Current Version:"
-msgstr ""
+msgstr "Uneko bertsioa:"
#: editor/export_template_manager.cpp
msgid "Installed Versions:"
-msgstr ""
+msgstr "Instalatutako bertsioak:"
#: editor/export_template_manager.cpp
msgid "Install From File"
-msgstr ""
+msgstr "Instalatu fitxategitik"
#: editor/export_template_manager.cpp
msgid "Remove Template"
-msgstr ""
+msgstr "Kendu txantiloia"
#: editor/export_template_manager.cpp
msgid "Select Template File"
-msgstr ""
+msgstr "Hautatu txantiloi fitxategia"
#: editor/export_template_manager.cpp
msgid "Godot Export Templates"
-msgstr ""
+msgstr "Godot esportazio-txantiloiak"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
-msgstr ""
+msgstr "Esportazio-txantiloi kudeatzailea"
#: editor/export_template_manager.cpp
msgid "Download Templates"
-msgstr ""
+msgstr "Jaitsi txantiloiak"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: (Shift+Click: Open in Browser)"
@@ -3584,7 +3585,7 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Next Folder/File"
-msgstr ""
+msgstr "Hurrengo karpeta/fitxategia"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
@@ -3596,17 +3597,19 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Search files"
-msgstr ""
+msgstr "Bilatu fitxategiak"
#: editor/filesystem_dock.cpp
msgid ""
"Scanning Files,\n"
"Please Wait..."
msgstr ""
+"Fitxategiak arakatzen,\n"
+"Itxaron mesedez..."
#: editor/filesystem_dock.cpp
msgid "Move"
-msgstr ""
+msgstr "Mugitu"
#: editor/filesystem_dock.cpp
msgid "There is already file or folder with the same name in this location."
@@ -3806,12 +3809,16 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
#: editor/import_dock.cpp
msgid "%d Files"
-msgstr ""
+msgstr "%d fitxategi"
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
@@ -3835,7 +3842,7 @@ msgstr ""
#: editor/import_dock.cpp
msgid "Save Scenes, Re-Import, and Restart"
-msgstr ""
+msgstr "Gorde eszenak, berriro inportatu eta berrabiarazi"
#: editor/import_dock.cpp
msgid "Changing the type of an imported file requires editor restart."
@@ -3845,6 +3852,8 @@ msgstr ""
msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+"ABISUA: Baliabide hau darabiltzaten aktiboak daude, kargatzeari utzi "
+"liezaiokete."
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
@@ -4040,7 +4049,7 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Add Animation Point"
-msgstr ""
+msgstr "Gehitu animazio puntua"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Remove BlendSpace1D Point"
@@ -4072,7 +4081,7 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp
msgid "Enable snap and show grid."
-msgstr ""
+msgstr "Gaitu atxikitzea eta erakutsi sareta."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4247,7 +4256,7 @@ msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Enable Filtering"
-msgstr ""
+msgstr "Gaitu iragazkia"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
@@ -4255,38 +4264,38 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
-msgstr ""
+msgstr "Animazio berriaren izena:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
-msgstr ""
+msgstr "Animazio berria"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Animation Name:"
-msgstr ""
+msgstr "Aldatu animazioaren izena:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Animation?"
-msgstr ""
+msgstr "Ezabatu animazioa?"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Remove Animation"
-msgstr ""
+msgstr "Kendu animazioa"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Invalid animation name!"
-msgstr ""
+msgstr "Animazio izen baliogabea!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation name already exists!"
-msgstr ""
+msgstr "Animazio izena existitzen da jada!"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Rename Animation"
-msgstr ""
+msgstr "Aldatu izena animazioari"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
@@ -4298,31 +4307,31 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load Animation"
-msgstr ""
+msgstr "Kargatu animazioa"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Duplicate Animation"
-msgstr ""
+msgstr "Bikoiztu animazioa"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation to copy!"
-msgstr ""
+msgstr "Ez dago animaziorik kopiatzeko!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation resource on clipboard!"
-msgstr ""
+msgstr "Ez dago animazio baliabiderik arbelean!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
-msgstr ""
+msgstr "Itsatsitako animazioa"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Paste Animation"
-msgstr ""
+msgstr "Itsatsi animazioa"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation to edit!"
-msgstr ""
+msgstr "Ez dago animaziorik editatzeko!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
@@ -4662,7 +4671,7 @@ msgstr ""
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend4 Node"
-msgstr ""
+msgstr "Blend4 nodoa"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "TimeScale Node"
@@ -4674,51 +4683,51 @@ msgstr ""
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Transition Node"
-msgstr ""
+msgstr "Trantsizio nodoa"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Import Animations..."
-msgstr ""
+msgstr "Inportatu animazioak..."
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Node Filters"
-msgstr ""
+msgstr "Editatu nodo-iragazkiak"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Filters..."
-msgstr ""
+msgstr "Iragazkiak..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Contents:"
-msgstr ""
+msgstr "Edukiak:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "View Files"
-msgstr ""
+msgstr "Ikusi fitxategiak"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Connection error, please try again."
-msgstr ""
+msgstr "Konexio errorea, saiatu berriro."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect to host:"
-msgstr ""
+msgstr "Ezin da ostalariarekin konektatu:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No response from host:"
-msgstr ""
+msgstr "Ostalariaren erantzunik ez:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve hostname:"
-msgstr ""
+msgstr "Ezin duzu ostalariaren izena ebatzi:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, return code:"
-msgstr ""
+msgstr "Eskaerak huts egin du, itzulera-kodea:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed."
-msgstr ""
+msgstr "Eskaerak huts egin du."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Cannot save response to:"
@@ -4746,7 +4755,7 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
-msgstr ""
+msgstr "Jaitsiera hash okerra, fitxategia aldatua izan delakoan."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Expected:"
@@ -4762,15 +4771,15 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr ""
+msgstr "Aktiboaren jaitsiera errorea:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading (%s / %s)..."
-msgstr ""
+msgstr "Jaisten (%s / %s)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading..."
-msgstr ""
+msgstr "Jaisten..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving..."
@@ -4794,11 +4803,11 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download Error"
-msgstr ""
+msgstr "Jaitsiera errorea"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download for this asset is already in progress!"
-msgstr ""
+msgstr "Aktibo honen jaitsiera abian da jada!"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Recently Updated"
@@ -4887,7 +4896,7 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
-msgstr ""
+msgstr "Aktiboen ZIP fitxategia"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -4917,7 +4926,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap"
-msgstr ""
+msgstr "Konfiguratu atxikitzea"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Grid Offset:"
@@ -5222,72 +5231,72 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle smart snapping."
-msgstr ""
+msgstr "Txandakatu atxikitze adimentsua."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Smart Snap"
-msgstr ""
+msgstr "Erabili atxikitze adimentsua"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle grid snapping."
-msgstr ""
+msgstr "Txandakatu saretara atxikitzea."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Grid Snap"
-msgstr ""
+msgstr "Erabili saretara atxikitzea"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snapping Options"
-msgstr ""
+msgstr "Atxikitze aukerak"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Rotation Snap"
-msgstr ""
+msgstr "Erabili biraketa atxikitzea"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Scale Snap"
-msgstr ""
+msgstr "Erabili eskala atxikitzea"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap Relative"
-msgstr ""
+msgstr "Atxikitze erlatiboa"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Pixel Snap"
-msgstr ""
+msgstr "Erabili pixel atxikitzea"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Smart Snapping"
-msgstr ""
+msgstr "Atxikitze adimentsua"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Configure Snap..."
-msgstr ""
+msgstr "Konfiguratu atxikitzea..."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to Parent"
-msgstr ""
+msgstr "Atxikitu gurasora"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to Node Anchor"
-msgstr ""
+msgstr "Atxikitu nodoaren aingurara"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to Node Sides"
-msgstr ""
+msgstr "Atxikitu nodoaren ertzetara"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to Node Center"
-msgstr ""
+msgstr "Atxikitu nodoaren zentrora"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to Other Nodes"
-msgstr ""
+msgstr "Atxikitu beste nodoetara"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to Guides"
-msgstr ""
+msgstr "Atxikitu gidalerroetara"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6298,11 +6307,11 @@ msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Snap"
-msgstr ""
+msgstr "Atxikitu"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Enable Snap"
-msgstr ""
+msgstr "Gaitu atxikitzea"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid"
@@ -6416,7 +6425,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme."
-msgstr ""
+msgstr "Errorea azala gordetzean."
#: editor/plugins/script_editor_plugin.cpp
msgid "Error Saving"
@@ -6424,7 +6433,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Error importing theme."
-msgstr ""
+msgstr "Errorea azala inportatzean."
#: editor/plugins/script_editor_plugin.cpp
msgid "Error Importing"
@@ -6461,11 +6470,11 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
-msgstr ""
+msgstr "Inportatu azala"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
-msgstr ""
+msgstr "Errorea azala gordetzean"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving"
@@ -6473,7 +6482,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As..."
-msgstr ""
+msgstr "Gorde azala honela..."
#: editor/plugins/script_editor_plugin.cpp
msgid "%s Class Reference"
@@ -6560,19 +6569,19 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme"
-msgstr ""
+msgstr "Azala"
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme..."
-msgstr ""
+msgstr "Inportatu azala..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
-msgstr ""
+msgstr "Birkargatu azala"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme"
-msgstr ""
+msgstr "Gorde azala"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close All"
@@ -6677,11 +6686,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7151,12 +7160,21 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Snap Nodes To Floor"
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr "Atxikitu nodoak lurrera"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Couldn't find a solid floor to snap the selection to."
-msgstr ""
+msgstr "Ez da hautapena atxikitzeko lur trinkorik aurkitu."
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
@@ -7171,7 +7189,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr ""
+msgstr "Erabili atxikitzea"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -7224,7 +7242,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Object to Floor"
-msgstr ""
+msgstr "Atxikitu objektua lurrera"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog..."
@@ -7273,19 +7291,19 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
-msgstr ""
+msgstr "Atxikitze ezarpenak"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate Snap:"
-msgstr ""
+msgstr "Translazio atzikitzea:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Snap (deg.):"
-msgstr ""
+msgstr "Biratze atxikitzea (graduak):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Snap (%):"
-msgstr ""
+msgstr "Eskala atxikitzea (%):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Viewport Settings"
@@ -7553,7 +7571,7 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap Mode:"
-msgstr ""
+msgstr "Atxikitze modua:"
#: editor/plugins/texture_region_editor_plugin.cpp
#: scene/resources/visual_shader.cpp
@@ -7562,11 +7580,11 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Pixel Snap"
-msgstr ""
+msgstr "Pixel atxikitzea"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Snap"
-msgstr ""
+msgstr "Sareta atxikitzea"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
@@ -7598,19 +7616,19 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
-msgstr ""
+msgstr "Kendu elementu guztiak"
#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
msgid "Remove All"
-msgstr ""
+msgstr "Kendu guztiak"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Edit Theme"
-msgstr ""
+msgstr "Editatu azala"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme editing menu."
-msgstr ""
+msgstr "Azalaren edizio menua."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
@@ -7630,7 +7648,7 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create From Current Editor Theme"
-msgstr ""
+msgstr "Sortu editorearen uneko azaletik"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Toggle Button"
@@ -7739,7 +7757,7 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme File"
-msgstr ""
+msgstr "Azal fitxategia"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
@@ -7963,6 +7981,7 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Enable snap and show grid (configurable via the Inspector)."
msgstr ""
+"Gaitu atxikitzea eta erakutsi sareta (Inspektorearen bidez konfiguragarria)."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Display Tile Names (Hold Alt Key)"
@@ -9149,7 +9168,7 @@ msgstr ""
#: editor/project_export.cpp
msgid "Features"
-msgstr ""
+msgstr "Ezaugarriak"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
@@ -9157,11 +9176,11 @@ msgstr ""
#: editor/project_export.cpp
msgid "Feature List:"
-msgstr ""
+msgstr "Ezaugarri zerrenda:"
#: editor/project_export.cpp
msgid "Script"
-msgstr ""
+msgstr "Scripta"
#: editor/project_export.cpp
msgid "Script Export Mode:"
@@ -9169,11 +9188,11 @@ msgstr ""
#: editor/project_export.cpp
msgid "Text"
-msgstr ""
+msgstr "Testua"
#: editor/project_export.cpp
msgid "Compiled"
-msgstr ""
+msgstr "Konpilatuta"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
@@ -9229,7 +9248,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Error opening package file (it's not in ZIP format)."
-msgstr ""
+msgstr "Errorea pakete fitxategia irekitzean (ez dago ZIP formatuan)."
#: editor/project_manager.cpp
msgid ""
@@ -9242,7 +9261,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Please choose a \"project.godot\" or \".zip\" file."
-msgstr ""
+msgstr "Aukeratu \"project.godot\" edo \".zip\" fitxategia."
#: editor/project_manager.cpp
msgid "This directory already contains a Godot project."
@@ -9425,6 +9444,8 @@ msgid ""
"Can't run project: Assets need to be imported.\n"
"Please edit the project to trigger the initial import."
msgstr ""
+"Ezin da proiektua exekutatu: Aktiboak inportatu behar dira.\n"
+"Editatu proiektua hasierako inportazioa abiatzeko."
#: editor/project_manager.cpp
msgid "Are you sure to run %d projects at once?"
@@ -9505,6 +9526,8 @@ msgid ""
"You currently don't have any projects.\n"
"Would you like to explore official example projects in the Asset Library?"
msgstr ""
+"Orain ez duzu proiekturik.\n"
+"Adibide ofizialak arakatu nahi dituzu aktiboen liburutegian?"
#: editor/project_manager.cpp
msgid ""
@@ -9899,7 +9922,7 @@ msgstr ""
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
-msgstr ""
+msgstr "Erabili adierazpen erregularrak"
#: editor/rename_dialog.cpp
msgid "Advanced Options"
@@ -9975,7 +9998,7 @@ msgstr ""
#: editor/rename_dialog.cpp
msgid "PascalCase to snake_case"
-msgstr ""
+msgstr "PascalCase snake_case-ra"
#: editor/rename_dialog.cpp
msgid "snake_case to PascalCase"
@@ -9999,7 +10022,7 @@ msgstr ""
#: editor/rename_dialog.cpp
msgid "Regular Expression Error"
-msgstr ""
+msgstr "Adierazpen erregularraren errorea"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -10068,8 +10091,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Scripta"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10226,6 +10250,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10272,11 +10303,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10396,6 +10427,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10436,6 +10471,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -10445,7 +10484,7 @@ msgstr ""
#: editor/script_create_dialog.cpp
msgid "Script path/name is valid."
-msgstr ""
+msgstr "Scriptaren bidea/izena baliozkoa da."
#: editor/script_create_dialog.cpp
msgid "Allowed: a-z, A-Z, 0-9, _ and ."
@@ -10472,6 +10511,8 @@ msgid ""
"Note: Built-in scripts have some limitations and can't be edited using an "
"external editor."
msgstr ""
+"Oharra: Inkorporatutako gidoiek muga batzuk dituzte eta ezin dira editatu "
+"kanpoko editore batekin."
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -10595,7 +10636,7 @@ msgstr ""
#: editor/script_editor_debugger.cpp
msgid "Export list to a CSV file"
-msgstr ""
+msgstr "Esportatu zerrenda CSV fitxategi batera"
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
@@ -10871,7 +10912,7 @@ msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Snap View"
-msgstr ""
+msgstr "Atxikitu ikuspegia"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Disabled"
@@ -11460,6 +11501,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11483,6 +11528,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index 2754720d3b..3f94d1112b 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -871,7 +871,6 @@ msgstr "اتصال سیگنال:"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1503,18 +1502,9 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "مسیر نامعتبر."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "پرونده موجود نیست."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "در مسیر٠منبع نیست."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2493,11 +2483,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "باز کردن صحنه"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2773,10 +2766,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3413,6 +3402,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "انتخاب گره (ها) برای وارد شدن"
@@ -4045,6 +4038,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -7088,15 +7085,15 @@ msgid ""
msgstr "'s%' را از 's%' جدا کن"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "خط:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "اÙزودن وظیÙÙ‡"
@@ -7593,6 +7590,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10691,8 +10697,8 @@ msgstr "ارث‌بری صحنهٔ Ùرزند"
#: editor/scene_tree_dock.cpp
#, fuzzy
-msgid "Clear Script"
-msgstr "صحنه جدید"
+msgid "Detach Script"
+msgstr "پیوست کردن اسکریپت"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10861,6 +10867,13 @@ msgid "Open Documentation"
msgstr "شمارش ها"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "اÙزودن گره Ùرزند"
@@ -10910,11 +10923,13 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "پیوست کردن یک اسکریپت جدید یا از پیش موجود برای گره انتخابی."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "حذ٠یک اسکریپت برای گره انتخابی."
#: editor/scene_tree_dock.cpp
@@ -11043,6 +11058,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "پرونده موجود نیست."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "باید از یک پسوند معتبر استÙاده شود."
@@ -11091,6 +11110,11 @@ msgstr "Ùایل وجود دارد، آیا بازنویسی شود؟"
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "مسیر نامعتبر."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "نام نامعتبر."
@@ -12200,6 +12224,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -12224,6 +12252,32 @@ msgstr "نام نامعتبر."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12952,6 +13006,13 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Not in resource path."
+#~ msgstr "در مسیر٠منبع نیست."
+
+#, fuzzy
+#~ msgid "Clear Script"
+#~ msgstr "صحنه جدید"
+
#~ msgid "Replaced %d occurrence(s)."
#~ msgstr "تعداد d% رخداد جایگزین شد."
diff --git a/editor/translations/fi.po b/editor/translations/fi.po
index 6695783866..a95c65be41 100644
--- a/editor/translations/fi.po
+++ b/editor/translations/fi.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-01 11:42+0000\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
"Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/"
"godot/fi/>\n"
@@ -24,7 +24,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.0.2\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -839,7 +839,6 @@ msgstr "Ei voida yhdistää signaalia"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1453,17 +1452,9 @@ msgstr "Ota käyttöön"
msgid "Rearrange Autoloads"
msgstr "Järjestele uudelleen automaattiset lataukset"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Virheellinen polku."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Tiedostoa ei ole olemassa."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Ei löytynyt resurssipolusta."
+msgid "Can't add autoload:"
+msgstr "Ei voida lisätä automaattisesti ladattavaa:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1579,8 +1570,8 @@ msgid ""
"Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback "
"Enabled'."
msgstr ""
-"GLES2 vara-ajuri tarvitsee kohdealustalla 'ETC' tekstuuripakkausta. Kytke "
-"'Import Etc' päälle projektin asetuksista tai poista 'Driver Fallback "
+"GLES2 vara-ajuri tarvitsee kohdealustalla 'ETC' tekstuuripakkausta.\n"
+"Kytke 'Import Etc' päälle projektin asetuksista tai poista 'Driver Fallback "
"Enabled' asetus."
#: editor/editor_export.cpp platform/android/export/export.cpp
@@ -1970,7 +1961,7 @@ msgstr "Teeman ominaisuudet"
#: editor/editor_help.cpp
msgid "Enumerations"
-msgstr "Enumeraatiot"
+msgstr "Luetteloinnit"
#: editor/editor_help.cpp
msgid "Constants"
@@ -2421,12 +2412,17 @@ msgid "Can't reload a scene that was never saved."
msgstr "Ei voida ladata uudelleen skeneä, jota ei ole koskaan tallennettu."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Palauta"
+msgid "Reload Saved Scene"
+msgstr "Avaa uudelleen tallennettu skene"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Tätä toimintoa ei voida peruttaa. Palauta joka tapauksessa?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
+"Nykyisessä skenessä on tallentamattomia muutoksia.\n"
+"Avataanko tallennettu skene uudelleen siitä huolimatta? Tätä toimintoa ei "
+"voi perua."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2708,10 +2704,6 @@ msgid "Redo"
msgstr "Tee uudelleen"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Palauta skene"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Sekalaiset projekti- tai skenetyökalut."
@@ -3357,6 +3349,12 @@ msgstr "Skriptiä ei voitu suorittaa:"
msgid "Did you forget the '_run' method?"
msgstr "Unohditko '_run' metodin?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Pidä Ctrl pohjassa pyöristääksesi kokonaislukuun. Pidä Shift pohjassa "
+"tarkempia muutoksia varten."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Valitse tuotavat solmut"
@@ -3953,6 +3951,11 @@ msgid "Error running post-import script:"
msgstr "Virhe ajettaessa tuonnin jälkeistä skriptiä:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+"Palautitko Node-solmusta periytyvän objektin `post_import()` metodissa?"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Tallennetaan..."
@@ -6905,12 +6908,12 @@ msgstr ""
"Yhdistetty metodi '%s' signaalille '%s' puuttuu solmusta '%s' solmuun '%s'."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Rivi"
+msgid "[Ignore]"
+msgstr "[Sivuuta]"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(sivuuta)"
+msgid "Line"
+msgstr "Rivi"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7384,6 +7387,21 @@ msgid "XForm Dialog"
msgstr "XForm-ikkuna"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+"Napsauta vaihtaaksesi näkyvyystilojen välillä.\n"
+"\n"
+"Avoin silmä: muokkain on näkyvissä.\n"
+"Suljettu silmä: muokkain on piilotettu.\n"
+"Puoliavoin silmä: muokkain on näkyvissä myös läpikuultamattomien pintojen "
+"läpi (\"röntgen\")."
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Tarraa solmut lattiaan"
@@ -8795,7 +8813,7 @@ msgstr "E-vakio (2.718282). Kuvastaa luonnollisen logaritmin kantalukua."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Epsilon constant (0.00001). Smallest possible scalar number."
-msgstr "Epsilon-vakio (0.00001). Pienin mahdollinen skaalariluku."
+msgstr "Epsilon-vakio (0.00001). Pienin mahdollinen skaalariluku."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Phi constant (1.618034). Golden ratio."
@@ -9277,7 +9295,7 @@ msgid ""
"direction of camera (pass associated inputs to it)."
msgstr ""
"Palauttaa valovähentymän perustuen pinnan normaalivektorin ja kameran "
-"suuntavektorin pistetuloon (välitä nämä syötteinä)."
+"suuntavektorin pistetuloon (välitä sille liittyvät syötteet)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -10468,8 +10486,8 @@ msgid "Instance Child Scene"
msgstr "Luo aliskenen ilmentymä"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Poista skripti"
+msgid "Detach Script"
+msgstr "Irrota skripti"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10637,6 +10655,16 @@ msgid "Open Documentation"
msgstr "Avaa dokumentaatio"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+"Ei voida liittää skriptiä: yhtään kieltä ei ole rekisteröity.\n"
+"Tämä johtuu luultavasti siitä, että editori on käännetty ilman yhtäkään "
+"kielimoduulia."
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Lisää alisolmu"
@@ -10685,12 +10713,12 @@ msgstr ""
"juurisolmua ei ole olemassa."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr "Liitä uusi tai olemassa oleva skripti valitulle solmulle."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr "Poista skripti valitulta solmulta."
+msgid "Detach the script from the selected node."
+msgstr "Irrota skripti valitusta solmusta."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10821,6 +10849,10 @@ msgid "A directory with the same name exists."
msgstr "Samanniminen hakemisto on jo olemassa."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Tiedostoa ei ole olemassa."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Virheellinen tiedostopääte."
@@ -10861,6 +10893,10 @@ msgid "File exists, it will be reused."
msgstr "Tiedosto on jo olemassa, se käytetään uudelleen."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Virheellinen polku."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Virheellinen luokan nimi."
@@ -11910,6 +11946,10 @@ msgstr ""
"Debug keystore ei ole määritettynä editorin asetuksissa eikä esiasetuksissa."
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr "Release keystore on konfiguroitu väärin viennin esiasetuksissa."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"Mukautettu käännös edellyttää kelvollista Android SDK -polkua editorin "
@@ -11939,6 +11979,42 @@ msgstr "Virheellinen paketin nimi:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+"\"android/modules\" projektiasetukseen on liitetty virheellinen "
+"\"GodotPaymentV3\" moduuli (muuttunut Godotin versiossa 3.2.2).\n"
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+"\"Use Custom Build\" asetuksen täytyy olla päällä, jotta liittännäisiä voi "
+"käyttää."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+"\"Degrees Of Freedom\" on käyttökelpoinen ainoastaan kun \"Xr Mode\" asetus "
+"on \"Oculus Mobile VR\"."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"\"Hand Tracking\" on käyttökelpoinen ainoastaan kun \"Xr Mode\" asetus on "
+"\"Oculus Mobile VR\"."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"\"Focus Awareness\" on käyttökelpoinen ainoastaan kun \"Xr Mode\" asetus on "
+"\"Oculus Mobile VR\"."
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12669,8 +12745,8 @@ msgid ""
"Default Environment as specified in Project Settings (Rendering -> "
"Environment -> Default Environment) could not be loaded."
msgstr ""
-"Projektin asetuksissa määriteltyä oletusympäristöä (Rendering -> "
-"Environment -> Default Environment) ei voitu ladata."
+"Projektin asetuksissa määriteltyä oletusympäristöä (Rendering -> Environment "
+"-> Default Environment) ei voitu ladata."
#: scene/main/viewport.cpp
msgid ""
@@ -12717,6 +12793,21 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa."
msgid "Constants cannot be modified."
msgstr "Vakioita ei voi muokata."
+#~ msgid "Not in resource path."
+#~ msgstr "Ei löytynyt resurssipolusta."
+
+#~ msgid "Revert"
+#~ msgstr "Palauta"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Tätä toimintoa ei voida peruttaa. Palauta joka tapauksessa?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Palauta skene"
+
+#~ msgid "Clear Script"
+#~ msgstr "Poista skripti"
+
#~ msgid "Issue Tracker"
#~ msgstr "Ilmoita viasta"
diff --git a/editor/translations/fil.po b/editor/translations/fil.po
index 32405930ea..920b91a30c 100644
--- a/editor/translations/fil.po
+++ b/editor/translations/fil.po
@@ -822,7 +822,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1422,16 +1421,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2352,11 +2343,13 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
+msgid "Reload Saved Scene"
msgstr ""
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2622,10 +2615,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3233,6 +3222,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3817,6 +3810,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6693,11 +6690,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7167,6 +7164,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10087,7 +10093,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10245,6 +10251,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10291,11 +10304,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10415,6 +10428,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10455,6 +10472,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11484,6 +11505,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11507,6 +11532,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index bb371b7674..fac3b9b84b 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -42,7 +42,7 @@
# Xananax <xananax@yelostudio.com>, 2017-2018.
# Perrier Mathis <mathis.perrier73@gmail.com>, 2018.
# Ewan Lehnebach <ewan.lehnebach@gmail.com>, 2018.
-# Hugo Locurcio <hugo.locurcio@hugo.pro>, 2018, 2019.
+# Hugo Locurcio <hugo.locurcio@hugo.pro>, 2018, 2019, 2020.
# Grigore Antoniuc <grisa181@gmail.com>, 2018.
# x2f <x.defoy@gmail.com>, 2018.
# LittleWhite <lw.demoscene@googlemail.com>, 2018.
@@ -72,12 +72,15 @@
# Pierre Caye <pierrecaye@laposte.net>, 2020.
# Kevin Bouancheau <kevin.bouancheau@gmail.com>, 2020.
# LaurentOngaro <laurent@gameamea.com>, 2020.
+# Julien Humbert <julroy67@gmail.com>, 2020.
+# Nathan <bonnemainsnathan@gmail.com>, 2020.
+# Léo Vincent <l009.vincent@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-05 14:01+0000\n"
-"Last-Translator: Anonymous <noreply@weblate.org>\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
+"Last-Translator: Nathan <bonnemainsnathan@gmail.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
"godot/fr/>\n"
"Language: fr\n"
@@ -101,7 +104,7 @@ msgstr "Une chaîne de caractères de longueur 1 est attendue (un caractère)."
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "Pas assez d'octets pour le décodage, ou format non valide."
+msgstr "Pas assez d’octets pour le décodage, ou format non valide."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -109,7 +112,7 @@ msgstr "Entrée non valide %i (non transmise) dans l’expression"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "self ne peut être utilisé car l'instance est nulle (non passée)"
+msgstr "self ne peut être utilisé car l’instance est nulle (non transmise)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -129,7 +132,7 @@ msgstr "Arguments invalides pour construire '%s'"
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr "Lors de l'appel à '%s' :"
+msgstr "Lors de l’appel à '%s' :"
#: core/ustring.cpp
msgid "B"
@@ -201,60 +204,60 @@ msgstr "Déplacer des points de Bézier"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "Dupliquer les clés d'animation"
+msgstr "Dupliquer les clés d’animation"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
-msgstr "Supprimer les clés d'animation"
+msgstr "Supprimer les clés d’animation"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Time"
-msgstr "Modifier le temps de l'image-clé"
+msgstr "Modifier le temps de l’image-clé"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
-msgstr "Changer la transition de l'animation"
+msgstr "Changer la transition de l’animation"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
-msgstr "Changer la transformation de l'animation"
+msgstr "Changer la transformation de l’animation"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
-msgstr "Changer la valeur de l'image-clé de l'animation"
+msgstr "Changer la valeur de l’image-clé de l’animation"
#: editor/animation_track_editor.cpp
msgid "Anim Change Call"
-msgstr "Changer l'appel de l'animation"
+msgstr "Changer l’appel de l’animation"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Keyframe Time"
-msgstr "Modification du temps de l'image-clé"
+msgstr "Modification du temps de l’image-clé"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Transition"
-msgstr "Changer la transition de l'animation"
+msgstr "Changer la transition de l’animation"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Transform"
-msgstr "Changer le Transform de l'animation"
+msgstr "Changer le Transform de l’animation"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Keyframe Value"
-msgstr "Changer la valeur de l'image-clé de l'animation"
+msgstr "Changer la valeur de l’image-clé de l’animation"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Call"
-msgstr "Changer l'appel de l'animation"
+msgstr "Changer l’appel de l’animation"
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
-msgstr "Modifier la durée de l'animation"
+msgstr "Modifier la durée de l’animation"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr "Changer la boucle d'animation"
+msgstr "Changer la boucle d’animation"
#: editor/animation_track_editor.cpp
msgid "Property Track"
@@ -266,7 +269,7 @@ msgstr "Piste de transformation 3D"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
-msgstr "Piste d'appel de méthode"
+msgstr "Piste d’appel de méthode"
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
@@ -278,15 +281,15 @@ msgstr "Piste de lecture audio"
#: editor/animation_track_editor.cpp
msgid "Animation Playback Track"
-msgstr "Piste de lecture d'animation"
+msgstr "Piste de lecture d’animation"
#: editor/animation_track_editor.cpp
msgid "Animation length (frames)"
-msgstr "Durée de l'animation (en images)"
+msgstr "Durée de l’animation (en images)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
-msgstr "Durée de l'animation (en secondes)"
+msgstr "Durée de l’animation (en secondes)"
#: editor/animation_track_editor.cpp
msgid "Add Track"
@@ -294,7 +297,7 @@ msgstr "Ajouter une piste"
#: editor/animation_track_editor.cpp
msgid "Animation Looping"
-msgstr "Bouclage de l'animation"
+msgstr "Bouclage de l’animation"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -307,7 +310,7 @@ msgstr "Clips audio :"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
-msgstr "Clips d'animation :"
+msgstr "Clips d’animation :"
#: editor/animation_track_editor.cpp
msgid "Change Track Path"
@@ -323,7 +326,7 @@ msgstr "Mode de mise à jour (comment cette propriété est définie)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
-msgstr "Mode d'interpolation"
+msgstr "Mode d’interpolation"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
@@ -335,7 +338,7 @@ msgstr "Supprime cette piste."
#: editor/animation_track_editor.cpp
msgid "Time (s): "
-msgstr "Temps (s): "
+msgstr "Temps (s) : "
#: editor/animation_track_editor.cpp
msgid "Toggle Track Enabled"
@@ -372,11 +375,11 @@ msgstr "Cubique"
#: editor/animation_track_editor.cpp
msgid "Clamp Loop Interp"
-msgstr "Limiter l'interpolation de la boucle"
+msgstr "Limiter l’interpolation de la boucle"
#: editor/animation_track_editor.cpp
msgid "Wrap Loop Interp"
-msgstr "Envelopper l'interp. de la boucle"
+msgstr "Envelopper l’interp. de la boucle"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -393,19 +396,19 @@ msgstr "Supprimer clé(s)"
#: editor/animation_track_editor.cpp
msgid "Change Animation Update Mode"
-msgstr "Modifier le mode de mise à jour de l'animation"
+msgstr "Modifier le mode de mise à jour de l’animation"
#: editor/animation_track_editor.cpp
msgid "Change Animation Interpolation Mode"
-msgstr "Modifier le mode d'interpolation de l'animation"
+msgstr "Modifier le mode d’interpolation de l’animation"
#: editor/animation_track_editor.cpp
msgid "Change Animation Loop Mode"
-msgstr "Modifier le mode de boucle d'animation"
+msgstr "Modifier le mode de boucle d’animation"
#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
-msgstr "Supprimer la piste d'animation"
+msgstr "Supprimer la piste d’animation"
#: editor/animation_track_editor.cpp
msgid "Create NEW track for %s and insert key?"
@@ -434,7 +437,7 @@ msgstr "Insérer une animation"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr ""
-"Un AnimationPlayer ne peut s'animer lui-même, seulement les autres lecteurs."
+"Un AnimationPlayer ne peut s’animer lui-même, seulement les autres lecteurs."
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -442,15 +445,15 @@ msgstr "Créer et insérer une animation"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr "Insérer une piste et clé d'animation"
+msgstr "Insérer une piste et clé d’animation"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Key"
-msgstr "Insérer une clé d'animation"
+msgstr "Insérer une clé d’animation"
#: editor/animation_track_editor.cpp
msgid "Change Animation Step"
-msgstr "Modifier l'étape d'animation"
+msgstr "Modifier l’étape d’animation"
#: editor/animation_track_editor.cpp
msgid "Rearrange Tracks"
@@ -459,7 +462,7 @@ msgstr "Réorganiser les pistes"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
-"Les pistes de transformation ne s'appliquent qu'aux nœuds basés sur Spatial."
+"Les pistes de transformation ne s’appliquent qu’aux nœuds basés sur Spatial."
#: editor/animation_track_editor.cpp
msgid ""
@@ -476,17 +479,17 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
msgstr ""
-"Les pistes d'animation ne peuvent pointer que sur des nœuds AnimationPlayer."
+"Les pistes d’animation ne peuvent pointer que sur des nœuds AnimationPlayer."
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
msgstr ""
-"Un lecteur d'animation ne peut s'animer lui-même, seulement les autres "
+"Un lecteur d’animation ne peut s’animer lui-même, seulement les autres "
"lecteurs."
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
-msgstr "Impossible d'ajouter une nouvelle piste sans racine"
+msgstr "Impossible d’ajouter une nouvelle piste sans racine"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
@@ -498,11 +501,11 @@ msgstr "Ajouter une piste de Bézier"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
-msgstr "Le chemin de la piste est invalide, impossible d'ajouter une clé."
+msgstr "Le chemin de la piste est invalide, impossible d’ajouter une clé."
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
-msgstr "La piste n'est pas de type Spatial, impossible d'insérer une clé"
+msgstr "La piste n’est pas de type Spatial, impossible d’insérer une clé"
#: editor/animation_track_editor.cpp
msgid "Add Transform Track Key"
@@ -515,7 +518,7 @@ msgstr "Ajoutez une clé de piste"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
-"Le chemin de la piste est invalide, impossible d'ajouter une clé d'appel de "
+"Le chemin de la piste est invalide, impossible d’ajouter une clé d’appel de "
"méthode."
#: editor/animation_track_editor.cpp
@@ -524,11 +527,11 @@ msgstr "Ajouter une clé de méthode"
#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
-msgstr "Méthode introuvable dans l'objet : "
+msgstr "Méthode introuvable dans l’objet : "
#: editor/animation_track_editor.cpp
msgid "Anim Move Keys"
-msgstr "Déplacer les clés d'animation"
+msgstr "Déplacer les clés d’animation"
#: editor/animation_track_editor.cpp
msgid "Clipboard is empty"
@@ -540,14 +543,14 @@ msgstr "Coller pistes"
#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
-msgstr "Mettre à l'échelle les clés d'animation"
+msgstr "Mettre à l’échelle les clés d’animation"
#: editor/animation_track_editor.cpp
msgid ""
"This option does not work for Bezier editing, as it's only a single track."
msgstr ""
-"Cette option ne fonctionne pas pour l'édition de courbes de Bézier car il ne "
-"s'agit que d'une seule piste."
+"Cette option ne fonctionne pas pour l’édition de courbes de Bézier car il ne "
+"s’agit que d’une seule piste."
#: editor/animation_track_editor.cpp
msgid ""
@@ -564,16 +567,16 @@ msgstr ""
"Cette animation appartient à une scène importée, donc les changements "
"apportés aux pistes importées ne seront pas sauvegardés.\n"
"\n"
-"Pour activer la possibilité d'ajouter des pistes personnalisées, naviguez "
-"dans les paramètres d'importation de la scène et définissez\n"
+"Pour activer la possibilité d’ajouter des pistes personnalisées, naviguez "
+"dans les paramètres d’importation de la scène et définissez\n"
"\"Animation > Stockage\" à \"Fichiers\", activez \"Animation > Garder Pistes "
"Courantes\" puis ré-importez.\n"
-"Alternativement, utilise un préréglage d'import qui importe les animations "
+"Alternativement, utilise un préréglage d’import qui importe les animations "
"dans des fichiers différents."
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
-msgstr "Avertissement : Édition d'une animation importée"
+msgstr "Avertissement : Édition d’une animation importée"
#: editor/animation_track_editor.cpp
msgid "Select an AnimationPlayer node to create and edit animations."
@@ -584,7 +587,7 @@ msgstr ""
msgid "Only show tracks from nodes selected in tree."
msgstr ""
"Afficher seulement les pistes provenant des nœuds sélectionnés dans "
-"l'arborescence."
+"l’arborescence."
#: editor/animation_track_editor.cpp
msgid "Group tracks by node or display them as plain list."
@@ -914,7 +917,6 @@ msgstr "Impossible de connecter le signal"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1528,17 +1530,9 @@ msgstr "Activer"
msgid "Rearrange Autoloads"
msgstr "Ré-organiser les AutoLoads"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Chemin invalide."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Le fichier n'existe pas."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Pas dans le chemin de la ressource."
+msgid "Can't add autoload:"
+msgstr "Impossible d'ajouter le chargement automatique :"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1766,7 +1760,7 @@ msgstr ""
#: editor/editor_feature_profile.cpp
msgid "Error saving profile to path: '%s'."
-msgstr "Erreur lors de l'enregistrement du profil au chemin: '%s'."
+msgstr "Erreur lors de l'enregistrement du profil au chemin : « %s »."
#: editor/editor_feature_profile.cpp
msgid "Unset"
@@ -1898,7 +1892,7 @@ msgstr "Enregistrer un fichier"
#: editor/editor_file_dialog.cpp
msgid "Go Back"
-msgstr "Retour"
+msgstr "Retourner"
#: editor/editor_file_dialog.cpp
msgid "Go Forward"
@@ -1950,7 +1944,7 @@ msgstr "Rafraîchir les fichiers."
#: editor/editor_file_dialog.cpp
msgid "(Un)favorite current folder."
-msgstr "Ajouter ou supprimer des favoris le dossier courant."
+msgstr "Ajouter ou supprimer aux favoris le dossier courant."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Toggle the visibility of hidden files."
@@ -2126,7 +2120,7 @@ msgstr "Type de membre"
#: editor/editor_help_search.cpp
msgid "Class"
-msgstr "Classe :"
+msgstr "Classe"
#: editor/editor_help_search.cpp
msgid "Method"
@@ -2502,12 +2496,16 @@ msgid "Can't reload a scene that was never saved."
msgstr "Impossible de recharger une scène qui n'a jamais été sauvegardée."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Réinitialiser"
+msgid "Reload Saved Scene"
+msgstr "Recharger la scène sauvegardée"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Cette action ne peut être annulée. Réinitialiser quand même ?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
+"La scène actuelle contient des changements non sauvegardés.\n"
+"Recharger la scène quand même ? Cette action ne peut pas être annulée."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2806,10 +2804,6 @@ msgid "Redo"
msgstr "Refaire"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Réinitialiser la scène"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Outils divers liés au projet ou à la scène."
@@ -3461,6 +3455,12 @@ msgstr "Impossible d'exécuter le script :"
msgid "Did you forget the '_run' method?"
msgstr "Avez-vous oublié la méthode « _run » ?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Maintenir Ctrl pour arrondir à l'entier. Maintenir Maj pour des changements "
+"plus précis."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Sélectionner les nœuds à importer"
@@ -4063,6 +4063,11 @@ msgid "Error running post-import script:"
msgstr "Erreur d'exécution du script de post-importation :"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+"Avez-vous renvoyé un objet dérivé de Node dans la méthode `post_import()` ?"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Enregistrement…"
@@ -4092,7 +4097,7 @@ msgstr "Réimporter"
#: editor/import_dock.cpp
msgid "Save Scenes, Re-Import, and Restart"
-msgstr "Sauvegarder les scènes, Réimporter, et Redémarrer"
+msgstr "Enregistrer les scènes, réimporter, puis redémarrer"
#: editor/import_dock.cpp
msgid "Changing the type of an imported file requires editor restart."
@@ -5039,7 +5044,7 @@ msgstr "Attendu :"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Got:"
-msgstr "A:"
+msgstr "A :"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed sha256 hash check"
@@ -6078,7 +6083,7 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Collision Sibling"
-msgstr "Créer une unique collision convexe sœur"
+msgstr "Créer une seule collision convexe sœur"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6091,7 +6096,7 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
-msgstr "Créer une collision convexe multiple sœur(s)"
+msgstr "Créer plusieurs collisions convexes sœurs"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6114,7 +6119,7 @@ msgid ""
msgstr ""
"Crée un maillage de contour statique. Le maillage de contour verra ses "
"normales inversées automatiquement.\n"
-"Cela peut être utilisé à la place de la propriété SpatialMaterial Grow "
+"Cela peut être utilisé à la place de la propriété Grow de SpatialMaterial "
"lorsque l'utilisation de cette propriété n'est pas possible."
#: editor/plugins/mesh_instance_editor_plugin.cpp
@@ -6341,7 +6346,7 @@ msgstr "Volume"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Emission Source: "
-msgstr "Source d'Émission: "
+msgstr "Source d'émission : "
#: editor/plugins/particles_editor_plugin.cpp
msgid "A processor material of type 'ParticlesMaterial' is required."
@@ -7037,12 +7042,12 @@ msgstr ""
"nœud '%s'."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Ligne"
+msgid "[Ignore]"
+msgstr "[Ignorer]"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ignorer)"
+msgid "Line"
+msgstr "Ligne"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7412,7 +7417,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Auto Orthogonal Enabled"
-msgstr "Auto Orthogonal Activé"
+msgstr "Vue orthogonale automatique"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Lock View Rotation"
@@ -7520,6 +7525,21 @@ msgid "XForm Dialog"
msgstr "Dialogue XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+"Cliquez pour modifier l'état de visibilité.\n"
+"\n"
+"Å’il ouvert : Gizmo est visible.\n"
+"Œil fermé : Gizmo est masqué.\n"
+"Œil entrouvert : Gizmo est également visible à travers les surfaces opaques "
+"(« rayon x »)."
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Aligner les nœuds avec le sol"
@@ -7759,7 +7779,7 @@ msgstr "Convertir en Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create polygon."
-msgstr "Géométrie invalide, impossible de créer le polygone."
+msgstr "Géométrie invalide, impossible de créer le polygone."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Convert to Polygon2D"
@@ -9640,7 +9660,7 @@ msgstr "Fonctionnalités"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
-msgstr "Personnalisé (séparé par des virgules) :"
+msgstr "Personnalisé (séparé par des virgules) :"
#: editor/project_export.cpp
msgid "Feature List:"
@@ -9998,7 +10018,7 @@ msgid ""
msgstr ""
"Êtes vous certain de vouloir scanner %s dossiers à la recherche de projets "
"Godot existants ?\n"
-"Cela pourrait prendre prendre un moment."
+"Cela pourrait prendre un moment."
#: editor/project_manager.cpp
msgid "Project Manager"
@@ -10056,7 +10076,7 @@ msgid ""
msgstr ""
"La barre de recherche filtre les projets par leur nom et la dernière partie "
"de leur chemin d'accès.\n"
-"Pour filter les projects par leur nom et le chemin d'accès complet, la "
+"Pour filtrer les projets par leur nom et le chemin d'accès complet, la "
"recherche doit inclure au moins un caractère `/`."
#: editor/project_settings_editor.cpp
@@ -10553,11 +10573,11 @@ msgstr "Réinitialiser"
#: editor/rename_dialog.cpp
msgid "Regular Expression Error"
-msgstr "Erreur d'expression régulière"
+msgstr "Erreur dans l'expression régulière"
#: editor/rename_dialog.cpp
msgid "At character %s"
-msgstr "À caractère %s"
+msgstr "Au caractère %s"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent Node"
@@ -10624,8 +10644,8 @@ msgid "Instance Child Scene"
msgstr "Instancier une scène enfant"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Supprimer le script"
+msgid "Detach Script"
+msgstr "Détacher le script"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10791,6 +10811,16 @@ msgid "Open Documentation"
msgstr "Ouvrir la documentation"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+"Impossible de joindre un script : aucune langue n'est enregistrée.\n"
+"C'est probablement parce que cet éditeur a été construit avec tous les "
+"modules de langue désactivés."
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Ajouter un nœud enfant"
@@ -10839,12 +10869,12 @@ msgstr ""
"nœud racine n'existe."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
-msgstr "Attacher un script (nouveau ou existant) pour le nœud sélectionné."
+msgid "Attach a new or existing script to the selected node."
+msgstr "Attacher un nouveau script ou un script existant au nœud sélectionné."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr "Effacer un script pour le nœud sélectionné."
+msgid "Detach the script from the selected node."
+msgstr "Détacher le script du nœud sélectionné."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10975,6 +11005,10 @@ msgid "A directory with the same name exists."
msgstr "Un dossier du même nom existe déjà."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Le fichier n'existe pas."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Extension invalide."
@@ -11015,6 +11049,10 @@ msgid "File exists, it will be reused."
msgstr "Le fichier existe, il sera réutilisé."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Chemin invalide."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Nom de classe invalide."
@@ -11124,7 +11162,7 @@ msgstr "Copier l'erreur"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
-msgstr "Vidéo RAM"
+msgstr "Mémoire vidéo"
#: editor/script_editor_debugger.cpp
msgid "Skip Breakpoints"
@@ -11177,7 +11215,7 @@ msgstr "Total :"
#: editor/script_editor_debugger.cpp
msgid "Export list to a CSV file"
-msgstr "Exporter la liste en fichier CSV"
+msgstr "Exporter la liste vers un fichier CSV"
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
@@ -11365,7 +11403,7 @@ msgstr "Bibliothèque"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
-msgstr "Bibliothèques: "
+msgstr "Bibliothèques : "
#: modules/gdnative/register_types.cpp
msgid "GDNative"
@@ -11525,7 +11563,7 @@ msgstr "Remplir la sélection"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Settings"
-msgstr "Paramètres GridMap"
+msgstr "Paramètres GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Pick Distance:"
@@ -11634,7 +11672,7 @@ msgstr ""
#: modules/visual_script/visual_script.cpp
msgid "Node returned an invalid sequence output: "
-msgstr "Le nœud a retourné une séquence de sortie invalide: "
+msgstr "Le nœud a retourné une séquence de sortie invalide : "
#: modules/visual_script/visual_script.cpp
msgid "Found sequence bit but not the node in the stack, report bug!"
@@ -11644,7 +11682,7 @@ msgstr ""
#: modules/visual_script/visual_script.cpp
msgid "Stack overflow with stack depth: "
-msgstr "Débordement de pile avec profondeur de pile: "
+msgstr "Débordement de pile avec profondeur de pile : "
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Signal Arguments"
@@ -11959,7 +11997,7 @@ msgstr "Modifier le membre"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
-msgstr "Type d'entrée non itérable: "
+msgstr "Type d'entrée non itérable : "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid"
@@ -11967,7 +12005,7 @@ msgstr "L'itérateur est devenu invalide"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid: "
-msgstr "L'itérateur est devenu invalide: "
+msgstr "L'itérateur est devenu invalide : "
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name."
@@ -11987,19 +12025,19 @@ msgstr "Nom de propriété invalide « %s » dans le nœud %s."
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
-msgstr ": Argument invalide de type: "
+msgstr ": Argument invalide de type : "
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid arguments: "
-msgstr ": Arguments invalides: "
+msgstr ": Arguments invalides : "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableGet not found in script: "
-msgstr "VariableGet introuvable dans le script: "
+msgstr "VariableGet introuvable dans le script : "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableSet not found in script: "
-msgstr "VariableSet introuvable dans le script: "
+msgstr "VariableSet introuvable dans le script : "
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
@@ -12076,6 +12114,12 @@ msgstr ""
"dans le préréglage."
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"La clé de version n'est pas configurée correctement dans le préréglage "
+"d'exportation."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"La création d'une version personnalisée nécessite un chemin d'accès Android "
@@ -12105,6 +12149,40 @@ msgstr "Nom de paquet invalide :"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+"Module \"GodotPaymentV3\" invalide inclus dans le paramétrage du projet "
+"\"android/modules\" (modifié dans Godot 3.2.2).\n"
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr "« Use Custom Build » doit être activé pour utiliser les plugins."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+"« Degrés de liberté » est valide uniquement lorsque le « Mode Xr » est « "
+"Oculus Mobile VR »."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"« Suivi de la main » est valide uniquement lorsque le « Mode Xr » est « "
+"Oculus Mobile VR »."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"« Sensibilité de la mise au point » est valide uniquement lorsque le « Mode "
+"Xr » est « Oculus Mobile VR »."
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12414,9 +12492,9 @@ msgid ""
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
-"Les changements de taille pour RigidBody2D (en mode caractère ou rigide) "
-"seront remplacés par le moteur physique lors de l'exécution. Modifiez la "
-"taille des formes de collision enfants à la place."
+"Les modifications de taille pour RigidBody2D (en mode caractère ou rigide) "
+"seront remplacées par le moteur physique lors de l'exécution. \n"
+"Modifiez la taille des formes de collision enfant à la place."
#: scene/2d/remote_transform_2d.cpp
msgid "Path property must point to a valid Node2D node to work."
@@ -12497,7 +12575,7 @@ msgstr "%d%%"
#: scene/3d/baked_lightmap.cpp
msgid "(Time Left: %d:%02d s)"
-msgstr "(Temps restant: %d:%02d s)"
+msgstr "(Temps restant : %d:%02d s)"
#: scene/3d/baked_lightmap.cpp
msgid "Plotting Meshes: "
@@ -12661,9 +12739,9 @@ msgid ""
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
-"Les changements de taille pour RigidBody (dans les modes caractère ou "
-"rigide) seront remplacés par le moteur physique lors de l'exécution. "
-"Modifiez la taille dans les formes de collision enfants à la place."
+"Les modifications de taille pour RigidBody (dans les modes caractère ou "
+"rigide) seront remplacées par le moteur physique lors de l'exécution.\n"
+"Modifiez la taille dans les formes de collision enfant à la place."
#: scene/3d/remote_transform.cpp
msgid ""
@@ -12912,6 +12990,21 @@ msgstr "Les variations ne peuvent être affectées que dans la fonction vertex."
msgid "Constants cannot be modified."
msgstr "Les constantes ne peuvent être modifiées."
+#~ msgid "Not in resource path."
+#~ msgstr "Pas dans le chemin de la ressource."
+
+#~ msgid "Revert"
+#~ msgstr "Réinitialiser"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Cette action ne peut être annulée. Réinitialiser quand même ?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Réinitialiser la scène"
+
+#~ msgid "Clear Script"
+#~ msgstr "Supprimer le script"
+
#~ msgid "Issue Tracker"
#~ msgstr "Traqueur de problèmes"
diff --git a/editor/translations/ga.po b/editor/translations/ga.po
index 7b271f6a77..b9e6ba69c6 100644
--- a/editor/translations/ga.po
+++ b/editor/translations/ga.po
@@ -2,11 +2,11 @@
# Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.
# Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
-# Rónán Quill <ronan085@gmail.com>, 2019.
+# Rónán Quill <ronan085@gmail.com>, 2019, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2019-08-04 14:22+0000\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
"Last-Translator: Rónán Quill <ronan085@gmail.com>\n"
"Language-Team: Irish <https://hosted.weblate.org/projects/godot-engine/godot/"
"ga/>\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :"
"(n>6 && n<11) ? 3 : 4;\n"
-"X-Generator: Weblate 3.8-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -91,7 +91,7 @@ msgstr ""
#: editor/animation_bezier_editor.cpp
msgid "Free"
-msgstr ""
+msgstr "Saor"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
@@ -815,7 +815,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1416,16 +1415,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2346,11 +2337,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Cruthaigh"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2616,10 +2610,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3225,6 +3215,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3811,6 +3805,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6686,11 +6684,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7160,6 +7158,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10082,7 +10089,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10240,6 +10247,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10286,11 +10300,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10410,6 +10424,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10450,6 +10468,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11481,6 +11503,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11504,6 +11530,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/he.po b/editor/translations/he.po
index 69d8bcc3b5..56126249dc 100644
--- a/editor/translations/he.po
+++ b/editor/translations/he.po
@@ -12,12 +12,14 @@
# MordechaiHadad <Mordechai.hadad01@gmail.com>, 2019.
# Daniel <danielharush5252@gmail.com>, 2020.
# test test <ugbdvwpeikvyzwaadt@awdrt.org>, 2020.
+# Anonymous <noreply@weblate.org>, 2020.
+# Daniel Kariv <danielkariv98@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-05 14:01+0000\n"
-"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
+"PO-Revision-Date: 2020-05-07 21:28+0000\n"
+"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Hebrew <https://hosted.weblate.org/projects/godot-engine/"
"godot/he/>\n"
"Language: he\n"
@@ -49,7 +51,7 @@ msgstr "קלט שגוי %I (×œ× ×”×•×¢×‘×¨) בתוך הביטוי"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr ""
+msgstr "×œ× × ×™×ª×Ÿ להשתמש ב־self כיוון שהמופע ×”×•× ×פס (null - ×œ× ×”×•×¢×‘×¨)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -60,51 +62,48 @@ msgid "Invalid index of type %s for base type %s"
msgstr "×©× ×ž×פיין ×”×ינדקס מסוג %s עבור בסיס %s שגוי"
#: core/math/expression.cpp
-#, fuzzy
msgid "Invalid named index '%s' for base type %s"
msgstr "×©× ×ינדקס ×œ× ×ª×§×™×Ÿ '%s' לסוג בסיס '%s'"
#: core/math/expression.cpp
-#, fuzzy
msgid "Invalid arguments to construct '%s'"
-msgstr ": ×רגומנט שגוי מסוג: "
+msgstr "×¤×¨×ž×˜×¨×™× ×©×’×•×™×™× ×œ×‘× ×™×™×ª 's%'"
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr ""
+msgstr "בקרי××” ל־‚%s’:"
#: core/ustring.cpp
msgid "B"
-msgstr ""
+msgstr "ב׳"
#: core/ustring.cpp
msgid "KiB"
-msgstr ""
+msgstr "KiB"
#: core/ustring.cpp
msgid "MiB"
-msgstr ""
+msgstr "MiB"
#: core/ustring.cpp
msgid "GiB"
-msgstr ""
+msgstr "GiB"
#: core/ustring.cpp
msgid "TiB"
-msgstr ""
+msgstr "TiB"
#: core/ustring.cpp
msgid "PiB"
-msgstr ""
+msgstr "PiB"
#: core/ustring.cpp
msgid "EiB"
-msgstr ""
+msgstr "EiB"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Free"
-msgstr "×—×™× ×"
+msgstr "חופשי"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
@@ -143,62 +142,52 @@ msgid "Move Bezier Points"
msgstr "הזזת נקודות בזייה"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Duplicate Keys"
msgstr "שכפול מפתחות הנפשה"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Delete Keys"
msgstr "מחיקת מפתחות הנפשה"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Change Keyframe Time"
msgstr "שינוי זמן פריי×-מפתח ×נימציה"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Change Transition"
-msgstr "שינוי ×ž×™×§×•× ×נימציה"
+msgstr "החלפת הנפשת ×פקט החלפה"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
-msgstr "שינוי ×ž×™×§×•× ×נימציה"
+msgstr "החלפת הנפשת ×פקט שינוי צורה"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Change Keyframe Value"
-msgstr "שינוי ערך ×§×™×¤×¨×™×™× ×נימציה"
+msgstr "שינוי ערך פריי×-מפתח ×נימציה"
#: editor/animation_track_editor.cpp
msgid "Anim Change Call"
-msgstr ""
+msgstr "שינוי קרי×ת ×נימציה"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Keyframe Time"
-msgstr "שינוי זמן פריי×-מפתח ×נימציה"
+msgstr "שינוי זמן פריי×-מפתח ×נימציה רבי×"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Transition"
-msgstr "שינוי ×ž×™×§×•× ×נימציה"
+msgstr "שינוי מיקומי ×נימציה רבי×"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Transform"
-msgstr "שינוי ×ž×™×§×•× ×נימציה"
+msgstr "שינוי מיקומי ×נימציה רבי×"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Keyframe Value"
-msgstr "שינוי ערך ×§×™×¤×¨×™×™× ×נימציה"
+msgstr "שינוי ערכי פריי×-מפתח ×נימציה רבי×"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Call"
-msgstr "שינוי ×ž×™×§×•× ×נימציה"
+msgstr "שינוי ×ž×™×§×•×ž×™× ×נימציה רבי×"
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
@@ -206,16 +195,14 @@ msgstr "שנה ×ורך ×נימציה"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Change Animation Loop"
-msgstr "שינוי לופ ×נימציה"
+msgstr "שינוי לול×ת ×נימציה"
#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr "רצועת מ×פיין"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "3D Transform Track"
msgstr "רצועת שינוי 3D"
@@ -229,12 +216,10 @@ msgid "Bezier Curve Track"
msgstr "רצועת ×¢×§×•× ×‘×–×™×™×”"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Audio Playback Track"
msgstr "רצועת שמע"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation Playback Track"
msgstr "רצועת הנפשה"
@@ -243,7 +228,6 @@ msgid "Animation length (frames)"
msgstr "משך ההנפשה (פריימי×)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation length (seconds)"
msgstr "משך ההנפשה (שניות)"
@@ -252,7 +236,6 @@ msgid "Add Track"
msgstr "הוספת רצועה"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation Looping"
msgstr "לול×ת הנפשה"
@@ -262,19 +245,16 @@ msgid "Functions:"
msgstr "פונקציות:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Audio Clips:"
-msgstr "מ×זין לשמע"
+msgstr "רצועות שמע:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Clips:"
msgstr "קטעי הנפשה:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Track Path"
-msgstr "החלפת ערך רצועה"
+msgstr "החלפת נתיב רצועה"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
@@ -286,7 +266,7 @@ msgstr "עדכן מצב (×יך המ×פיין ×”×–×” נקבע)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
-msgstr ""
+msgstr "מצב ×ינתרפולציה"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
@@ -310,11 +290,11 @@ msgstr "מתמשך"
#: editor/animation_track_editor.cpp
msgid "Discrete"
-msgstr ""
+msgstr "בדיד"
#: editor/animation_track_editor.cpp
msgid "Trigger"
-msgstr ""
+msgstr "הדק/מפעיל"
#: editor/animation_track_editor.cpp
msgid "Capture"
@@ -435,14 +415,18 @@ msgid ""
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
msgstr ""
+"רצועת ×ודיו יכולה להצביע על חוליות מסוג:\n"
+"- AudioStreamPlayer\n"
+"- AudioStreamPlayer2D\n"
+"- AudioStreamPlayer3D"
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr ""
+msgstr "רצועות הנפשה יכולות להצביע רק על ×יברי AnimationPlayer."
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
-msgstr ""
+msgstr "נגן הנפשה ×ינו יכול להנפיש ×ת עצמו, רק ×©×—×§× ×™× ×חרי×."
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
@@ -758,7 +742,7 @@ msgstr "בחירה בלבד"
#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp
#: editor/plugins/text_editor.cpp
msgid "Standard"
-msgstr ""
+msgstr "רגיל"
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
@@ -877,7 +861,6 @@ msgstr "שגי×ת חיבור"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1497,18 +1480,9 @@ msgstr "הפעלה"
msgid "Rearrange Autoloads"
msgstr "סידור טעינות ×וטומטית מחדש"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "נתיב שגוי."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "הקובץ ×œ× ×§×™×™×."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "×œ× ×‘× ×ª×™×‘ המש×ב."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2493,12 +2467,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "×œ× × ×™×ª×Ÿ לרענן סצנה ×©×ž×¢×•×œ× ×œ× × ×©×ž×¨×”."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "שחזור"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "שמירת סצנה"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "×œ× × ×™×ª×Ÿ לבטל פעולה זו. לשחזר בכל ×–×ת?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2773,10 +2750,6 @@ msgid "Redo"
msgstr "ביצוע חוזר"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "שחזור סצנה"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "×›×œ×™× ×©×•× ×™× ×œ×ž×™×–× ×ו למגוון סצנות."
@@ -3413,6 +3386,10 @@ msgstr "×œ× × ×™×ª×Ÿ להריץ ×ת הסקריפט:"
msgid "Did you forget the '_run' method?"
msgstr "שכחת ×ת השיטה ‚‎_run’?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "× × ×œ×‘×—×•×¨ ×ž×¤×¨×§×™× ×œ×™×™×¦×•×"
@@ -4040,6 +4017,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "שמירה…"
@@ -7071,15 +7052,15 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "שורה:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "מעבר לפונקציה…"
@@ -7573,6 +7554,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10651,8 +10641,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "יצירת סקריפט"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10819,6 +10810,13 @@ msgid "Open Documentation"
msgstr "פתיחת התיעוד המקוון של Godot"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10869,11 +10867,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -11003,6 +11001,10 @@ msgid "A directory with the same name exists."
msgstr "כבר ×§×™×™×ž×™× ×§×•×‘×¥ ×ו תיקייה ×‘×©× ×”×–×”."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "הקובץ ×œ× ×§×™×™×."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "יש להשתמש בסיומת תקנית."
@@ -11047,6 +11049,11 @@ msgstr ""
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "נתיב שגוי."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "×©× ×©×’×•×™."
@@ -12118,6 +12125,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -12142,6 +12153,32 @@ msgstr "×©× ×©×’×•×™."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12801,6 +12838,18 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Not in resource path."
+#~ msgstr "×œ× ×‘× ×ª×™×‘ המש×ב."
+
+#~ msgid "Revert"
+#~ msgstr "שחזור"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "×œ× × ×™×ª×Ÿ לבטל פעולה זו. לשחזר בכל ×–×ת?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "שחזור סצנה"
+
#~ msgid "Issue Tracker"
#~ msgstr "עוקב תקלות"
diff --git a/editor/translations/hi.po b/editor/translations/hi.po
index 12cf8fd242..4782afecb0 100644
--- a/editor/translations/hi.po
+++ b/editor/translations/hi.po
@@ -837,7 +837,6 @@ msgstr "इशारा कनेकà¥à¤Ÿ नहीं कर सकते"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1446,17 +1445,9 @@ msgstr "सकà¥à¤°à¤¿à¤¯ करे"
msgid "Rearrange Autoloads"
msgstr "औटोलोड पà¥à¤¨à¤°à¥à¤µà¥à¤¯à¤µà¤¸à¥à¤¥à¤¿à¤¤ करें"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "अमानà¥à¤¯ रासà¥à¤¤à¤¾à¥¤"
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "फ़ाइल नहीं मौजूद."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "रेसोरà¥à¤¸ पाथ में नहीं."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2403,12 +2394,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "à¤à¤• दृशà¥à¤¯ है कि कभी नहीं बचाया गया था फिर से लोड नहीं कर सकते ।"
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "वापस लौटना"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "दृशà¥à¤¯ बचाओ"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "इस कारà¥à¤°à¤µà¤¾à¤ˆ को पूरà¥à¤µà¤µà¤¤ नहीं किया जा सकता । वैसे भी वापस?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2687,10 +2681,6 @@ msgid "Redo"
msgstr "दोहराà¤à¤"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "वापस दृशà¥à¤¯"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "विविध परियोजना या दृशà¥à¤¯-वà¥à¤¯à¤¾à¤ªà¥€ उपकरण।"
@@ -3329,6 +3319,10 @@ msgstr "सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ नहीं चला सका:"
msgid "Did you forget the '_run' method?"
msgstr "कà¥à¤¯à¤¾ आप '_run' विधि को भूल गà¤?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "आयात करने के लिठनोड (à¤à¤¸) का चयन करें"
@@ -3918,6 +3912,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6811,15 +6809,15 @@ msgid ""
msgstr "जà¥à¤¡à¤¿à¤¯à¥‡ '%s' to '%s'"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "रेखा:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "कारà¥à¤¯à¥‹à¤‚:"
@@ -7290,6 +7288,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10279,8 +10286,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "नई सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10442,6 +10450,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10490,11 +10505,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10617,6 +10632,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "फ़ाइल नहीं मौजूद."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "गलत फॉणà¥à¤Ÿ का आकार |"
@@ -10658,6 +10677,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "अमानà¥à¤¯ रासà¥à¤¤à¤¾à¥¤"
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid class name."
msgstr "गलत फॉणà¥à¤Ÿ का आकार |"
@@ -11710,6 +11733,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11734,6 +11761,32 @@ msgstr "गलत फॉणà¥à¤Ÿ का आकार |"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12385,6 +12438,18 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Not in resource path."
+#~ msgstr "रेसोरà¥à¤¸ पाथ में नहीं."
+
+#~ msgid "Revert"
+#~ msgstr "वापस लौटना"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "इस कारà¥à¤°à¤µà¤¾à¤ˆ को पूरà¥à¤µà¤µà¤¤ नहीं किया जा सकता । वैसे भी वापस?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "वापस दृशà¥à¤¯"
+
#~ msgid "Issue Tracker"
#~ msgstr "मà¥à¤¦à¥à¤¦à¤¾ पर नज़र रखने वाला"
diff --git a/editor/translations/hr.po b/editor/translations/hr.po
index 8627e7f239..ad095145b2 100644
--- a/editor/translations/hr.po
+++ b/editor/translations/hr.po
@@ -823,7 +823,6 @@ msgstr "Ne mogu spojiti signal"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1431,16 +1430,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2363,11 +2354,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Stvori"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2633,10 +2627,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3245,6 +3235,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3830,6 +3824,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6719,11 +6717,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7193,6 +7191,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10129,8 +10136,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Spoji sa skriptom:"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10289,6 +10297,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10335,11 +10350,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10461,6 +10476,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10501,6 +10520,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11540,6 +11563,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11563,6 +11590,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index 620a2d4d5b..ef15f85977 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -878,7 +878,6 @@ msgstr "Csatlakoztató Jelzés:"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1514,18 +1513,9 @@ msgstr "Engedélyezés"
msgid "Rearrange Autoloads"
msgstr "AutoLoad-ok Ãtrendezése"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "Érvénytelen Elérési Út."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "A fájl nem létezik."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Nincs az erőforrás elérési útban."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2537,12 +2527,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Nem lehet újratölteni egy olyan jelenetet, amit soha nem mentett el."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Visszaállítás"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Scene mentés"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Ez a művelet nem vonható vissza. Visszaállítja mindenképp?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2845,10 +2838,6 @@ msgid "Redo"
msgstr "Mégis"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Scene visszaállítás"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Egyéb projekt- vagy Scene-szintű eszközök."
@@ -3507,6 +3496,10 @@ msgstr "Nem sikerült a szkript futtatása:"
msgid "Did you forget the '_run' method?"
msgstr "Nem felejtette el a '_run' metódust?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Válassza ki az importálandó Node-okat"
@@ -4141,6 +4134,10 @@ msgid "Error running post-import script:"
msgstr "Hiba történt az importálás utána szkript futtatásakor:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Mentés..."
@@ -7249,15 +7246,15 @@ msgid ""
msgstr "'%s' Lecsatlakoztatása '%s'-ról"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "Sor:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "Ugrás Funkcióra..."
@@ -7749,6 +7746,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Snap Nodes To Floor"
msgstr "Rácshoz illesztés"
@@ -10844,8 +10850,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Szkript Létrehozása"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -11012,6 +11019,13 @@ msgid "Open Documentation"
msgstr "Godot online dokumentáció megnyitása"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -11062,12 +11076,13 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr ""
+#, fuzzy
+msgid "Detach the script from the selected node."
+msgstr "Kiválasztott Scene(k) példányosítása a kiválasztott Node gyermekeként."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -11196,6 +11211,10 @@ msgid "A directory with the same name exists."
msgstr "Egy fájl vagy mappa már létezik a megadott névvel."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "A fájl nem létezik."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "Használjon érvényes kiterjesztést."
@@ -11240,6 +11259,11 @@ msgstr ""
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "Érvénytelen Elérési Út."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "Érvénytelen név."
@@ -12322,6 +12346,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -12346,6 +12374,32 @@ msgstr "Érvénytelen név."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -13007,6 +13061,18 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Not in resource path."
+#~ msgstr "Nincs az erőforrás elérési útban."
+
+#~ msgid "Revert"
+#~ msgstr "Visszaállítás"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Ez a művelet nem vonható vissza. Visszaállítja mindenképp?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Scene visszaállítás"
+
#~ msgid "Issue Tracker"
#~ msgstr "Problémakövető"
@@ -13210,10 +13276,6 @@ msgstr ""
#~ msgid "Insert keys."
#~ msgstr "Kulcsok Beszúrása"
-#~ msgid "Instance the selected scene(s) as child of the selected node."
-#~ msgstr ""
-#~ "Kiválasztott Scene(k) példányosítása a kiválasztott Node gyermekeként."
-
#, fuzzy
#~ msgid "Font Size:"
#~ msgstr "Körvonal Mérete:"
diff --git a/editor/translations/id.po b/editor/translations/id.po
index 54222d1aeb..f7a86197b6 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -30,8 +30,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-04-16 11:03+0000\n"
-"Last-Translator: Richard Urban <redasuio1@gmail.com>\n"
+"PO-Revision-Date: 2020-06-03 20:09+0000\n"
+"Last-Translator: Sofyan Sugianto <sofyanartem@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/"
"godot/id/>\n"
"Language: id\n"
@@ -39,7 +39,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.0.1-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -860,7 +860,6 @@ msgstr "Tidak dapat menghubungkan sinyal"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -893,7 +892,7 @@ msgstr "Memutuskan semua dari sinyal '%s'"
#: editor/connections_dialog.cpp
msgid "Connect..."
-msgstr "Sambungkan..."
+msgstr "Hubungkan..."
#: editor/connections_dialog.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -914,7 +913,7 @@ msgstr "Anda yakin ingin menghapus semua hubungan dari sinyal '%s'?"
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
-msgstr "Sinyal-sinyal"
+msgstr "Sinyal"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1471,17 +1470,9 @@ msgstr "Aktifkan"
msgid "Rearrange Autoloads"
msgstr "Mengatur kembali Autoload-autoload"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Path tidak valid."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "File tidak ada."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Tidak dalam lokasi resource."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1967,7 +1958,7 @@ msgstr "Tutorial Daring"
#: editor/editor_help.cpp
msgid "Properties"
-msgstr "Properti Objek"
+msgstr "Properti"
#: editor/editor_help.cpp
msgid "override:"
@@ -1979,11 +1970,11 @@ msgstr "baku:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr "Fungsi"
+msgstr "Method"
#: editor/editor_help.cpp
msgid "Theme Properties"
-msgstr "Properti-properti Tema"
+msgstr "Properti Tema"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2011,7 +2002,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Method Descriptions"
-msgstr "Deskripsi Metode"
+msgstr "Deskripsi Method"
#: editor/editor_help.cpp
msgid ""
@@ -2440,12 +2431,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Tidak bisa memuat ulang skena yang belum pernah disimpan."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Pulihkan"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Simpan Skena"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Tindakan ini tidak dapat dibatalkan. Pulihkan saja?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2733,10 +2727,6 @@ msgid "Redo"
msgstr "Ulangi"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Kembalikan Skena"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Perkakas macam-macam proyek atau lingkup skena."
@@ -2948,13 +2938,12 @@ msgid "Q&A"
msgstr "Tanya Jawab"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Report a Bug"
-msgstr "Impor ulang"
+msgstr "Laporkan Kutu"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
-msgstr ""
+msgstr "Kirim Tanggapan Dokumentasi"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
@@ -3384,6 +3373,13 @@ msgstr "Tidak bisa menjalankan script:"
msgid "Did you forget the '_run' method?"
msgstr "Apakah anda lupa dengan fungsi '_run' ?"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Tahan Ctrl untuk meletakkan Getter. Tahan Shift untuk meletakkan generic "
+"signature."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Pilih node untuk diimpor"
@@ -3978,6 +3974,10 @@ msgid "Error running post-import script:"
msgstr "Kesalahan saat menjalankan skrip post-import:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Menyimpan..."
@@ -4006,9 +4006,8 @@ msgid "Reimport"
msgstr "Impor ulang"
#: editor/import_dock.cpp
-#, fuzzy
msgid "Save Scenes, Re-Import, and Restart"
-msgstr "Simpan skena, impor ulang, dan mulai ulang"
+msgstr "Simpan Skena, Impor Ulang, dan Mulai Ulang"
#: editor/import_dock.cpp
msgid "Changing the type of an imported file requires editor restart."
@@ -6924,12 +6923,13 @@ msgstr ""
"'%s' ke node '%s'."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Baris"
+#, fuzzy
+msgid "[Ignore]"
+msgstr "(abaikan)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(abaikan)"
+msgid "Line"
+msgstr "Baris"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7297,9 +7297,8 @@ msgid "This operation requires a single selected node."
msgstr "Operasi ini membutuhkan satu node yang dipilih."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Auto Orthogonal Enabled"
-msgstr "Ortogonal"
+msgstr "Ortogonal Otomatis Difungsikan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Lock View Rotation"
@@ -7406,6 +7405,15 @@ msgid "XForm Dialog"
msgstr "Dialog XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Kancingkan Node ke Lantai"
@@ -9931,6 +9939,10 @@ msgid ""
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
+"Kotak filter pencarian proyek berdasarkan nama dan lokasi komponen "
+"terakhir.\n"
+"Untuk memfilter proyek berdasarkan nama dan lokasi penuhnya, kueri harus "
+"mengandung paling tidak satu karakter `/`."
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -10497,8 +10509,9 @@ msgid "Instance Child Scene"
msgstr "Instansi Skena Anak"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Bersihkan Skrip"
+#, fuzzy
+msgid "Detach Script"
+msgstr "Lampirkan Skrip"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10666,6 +10679,13 @@ msgid "Open Documentation"
msgstr "Buka Dokumentasi"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Tambah Node Anak"
@@ -10714,11 +10734,13 @@ msgstr ""
"akar."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "Lampirkan skrip baru atau yang sudah ada untuk node yang dipilih."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "Bersihkan skrip untuk node yang dipilih."
#: editor/scene_tree_dock.cpp
@@ -10850,6 +10872,10 @@ msgid "A directory with the same name exists."
msgstr "Sudah ada nama direktori seperti itu."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "File tidak ada."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Ekstensi tidak valid."
@@ -10890,6 +10916,10 @@ msgid "File exists, it will be reused."
msgstr "Berkas sudah ada, itu akan digunakan kembali."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Path tidak valid."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Nama kelas tidak valid."
@@ -10926,6 +10956,8 @@ msgid ""
"Note: Built-in scripts have some limitations and can't be edited using an "
"external editor."
msgstr ""
+"Catatan: Skrip bawaan memiliki banyak keterbatasan dan tidak dapat disunting "
+"menggunakan editor eksternal."
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -11048,9 +11080,8 @@ msgid "Total:"
msgstr "Total:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Export list to a CSV file"
-msgstr "Ekspor Profil"
+msgstr "Ekspor daftar ke berkas CSV"
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
@@ -11936,6 +11967,13 @@ msgstr ""
"prasetel proyek."
#: platform/android/export/export.cpp
+#, fuzzy
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"Berkas debug keystore belum dikonfigurasi dalam Pengaturan Editor maupun di "
+"prasetel proyek."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"Membangun kustom APK memerlukan lokasi Android SDK yang valid dalam "
@@ -11965,6 +12003,32 @@ msgstr "Nama paket tidak valid:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12352,7 +12416,7 @@ msgstr "Plotting Lights:"
#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
msgid "Finishing Plot"
-msgstr ""
+msgstr "Menyelesaikan Pemetaan"
#: scene/3d/baked_lightmap.cpp
msgid "Lighting Meshes: "
@@ -12422,13 +12486,15 @@ msgstr ""
#: scene/3d/gi_probe.cpp
msgid "Plotting Meshes"
-msgstr ""
+msgstr "Memetakan Mesh"
#: scene/3d/gi_probe.cpp
msgid ""
"GIProbes are not supported by the GLES2 video driver.\n"
"Use a BakedLightmap instead."
msgstr ""
+"GIProbes tidak didukung oleh driver video GLES2.\n"
+"Gunakan BakedLightmap sebagai gantinya."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12541,6 +12607,8 @@ msgid ""
"This WorldEnvironment is ignored. Either add a Camera (for 3D scenes) or set "
"this environment's Background Mode to Canvas (for 2D scenes)."
msgstr ""
+"WorldEnvironment ini diabaikan. Tambahkan Camera (untuk skena 3D) atau setel "
+"Mode Latar Belakang lingkungannya menjadi Canvas (untuk skena 2D)."
#: scene/animation/animation_blend_tree.cpp
msgid "On BlendTree node '%s', animation not found: '%s'"
@@ -12591,6 +12659,9 @@ msgid ""
"LMB: Set color\n"
"RMB: Remove preset"
msgstr ""
+"Warna:#%s\n"
+"LMB: Atur warna\n"
+"RMB: Cabut preset"
#: scene/gui/color_picker.cpp
msgid "Pick a color from the editor window."
@@ -12694,7 +12765,7 @@ msgstr ""
#: scene/main/viewport.cpp
msgid "Viewport size must be greater than 0 to render anything."
-msgstr ""
+msgstr "Ukuran viewport harus lebih besar dari 0 untuk me-render apa pun."
#: scene/resources/visual_shader_nodes.cpp
msgid "Invalid source for preview."
@@ -12724,6 +12795,21 @@ msgstr "Variasi hanya bisa ditetapkan dalam fungsi vertex."
msgid "Constants cannot be modified."
msgstr "Konstanta tidak dapat dimodifikasi."
+#~ msgid "Not in resource path."
+#~ msgstr "Tidak dalam lokasi resource."
+
+#~ msgid "Revert"
+#~ msgstr "Pulihkan"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Tindakan ini tidak dapat dibatalkan. Pulihkan saja?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Kembalikan Skena"
+
+#~ msgid "Clear Script"
+#~ msgstr "Bersihkan Skrip"
+
#~ msgid "Issue Tracker"
#~ msgstr "Pelacak Isu"
diff --git a/editor/translations/is.po b/editor/translations/is.po
index e2943eb9cf..5a1ac9b73c 100644
--- a/editor/translations/is.po
+++ b/editor/translations/is.po
@@ -849,7 +849,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1451,16 +1450,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2384,11 +2375,13 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
+msgid "Reload Saved Scene"
msgstr ""
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2656,10 +2649,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3269,6 +3258,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3856,6 +3849,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6756,11 +6753,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7231,6 +7228,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10193,7 +10199,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10354,6 +10360,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10400,11 +10413,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10525,6 +10538,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10565,6 +10582,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11603,6 +11624,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11626,6 +11651,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/it.po b/editor/translations/it.po
index 8e9432baac..eeec1e05eb 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -13,7 +13,7 @@
# Myself <whatamidoing.wt@gmail.com>, 2017-2018.
# RealAquilus <JamesHeller@live.it>, 2017.
# Samuele Zolfanelli <samdazel@gmail.com>, 2018, 2019.
-# Sean Bone <seanbone@zumguy.com>, 2017.
+# Sean Bone <seanbone@zumguy.com>, 2017, 2020.
# Red Pill <redpill902@gmail.com>, 2018.
# iRadEntertainment <devitadario@gmail.com>, 2018, 2019.
# ondsinet _ (nik man) <nikman00@gmail.com>, 2018.
@@ -30,7 +30,7 @@
# RHC <rhc.throwaway@gmail.com>, 2019.
# Antonio Giungato <antonio.giungato@gmail.com>, 2019.
# Marco Galli <mrcgll98@gmail.com>, 2019.
-# MassiminoilTrace <omino.gis@gmail.com>, 2019.
+# MassiminoilTrace <omino.gis@gmail.com>, 2019, 2020.
# MARCO BANFI <mbanfi@gmail.com>, 2019.
# Marco <rodomar705@gmail.com>, 2019.
# Davide Giuliano <davidegiuliano00@gmail.com>, 2019.
@@ -48,12 +48,14 @@
# Giuseppe Lucido <giuseppe.lucido@gmail.com>, 2020.
# Mirko Proto <mirko7@protonmail.com>, 2020.
# J. Lavoie <j.lavoie@net-c.ca>, 2020.
+# Andrea Terenziani <andrea.terenziani.at@gmail.com>, 2020.
+# Anonymous <noreply@weblate.org>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-04 15:12+0000\n"
-"Last-Translator: J. Lavoie <j.lavoie@net-c.ca>\n"
+"PO-Revision-Date: 2020-05-07 21:28+0000\n"
+"Last-Translator: Sean Bone <seanbone@zumguy.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot/it/>\n"
"Language: it\n"
@@ -77,8 +79,8 @@ msgstr "Prevista una stringa di lunghezza 1 (singolo carattere)."
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
msgstr ""
-"Non vi sono abbastanza byte per i byte di decodifica, oppure il formato non "
-"è valido."
+"Non vi sono abbastanza byte per riuscire a decodificarli, oppure il formato "
+"non è valido."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -679,7 +681,7 @@ msgstr "Pulisci"
#: editor/animation_track_editor.cpp
msgid "Scale Ratio:"
-msgstr "Fattore di scalatura:"
+msgstr "Fattore di scala:"
#: editor/animation_track_editor.cpp
msgid "Select Tracks to Copy"
@@ -752,7 +754,7 @@ msgstr "Parole intere"
#: editor/code_editor.cpp editor/rename_dialog.cpp
msgid "Replace"
-msgstr "Rimpiazza"
+msgstr "Sostituisci"
#: editor/code_editor.cpp
msgid "Replace All"
@@ -769,7 +771,7 @@ msgstr "Standard"
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
-msgstr "Attiva Pannello Scripts"
+msgstr "Commuta pannello degli script"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
@@ -785,7 +787,7 @@ msgstr "Rimpicciolisci"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr "Azzera ingrandimento"
+msgstr "Resetta ingrandimento"
#: editor/code_editor.cpp
msgid "Warnings"
@@ -883,7 +885,6 @@ msgstr "Impossibile connettere il segnale"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1496,17 +1497,9 @@ msgstr "Abilita"
msgid "Rearrange Autoloads"
msgstr "Riordina gli Autoload"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Percorso non valido."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "File inesistente."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Non è nel percorso risorse."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1654,7 +1647,7 @@ msgstr "Editor 3D"
#: editor/editor_feature_profile.cpp
msgid "Script Editor"
-msgstr "Editor degli script"
+msgstr "Editor script"
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
@@ -1878,7 +1871,7 @@ msgstr "Va' su"
#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr "Attiva/disattiva file nascosti"
+msgstr "Mostra/nascondi file nascosti"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
@@ -1886,11 +1879,11 @@ msgstr "Attiva/disattiva preferito"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr "Modalità Attivazione/Disattivazione"
+msgstr "Modalità di Attivazione/Disattivazione"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr "Percorso di Focus"
+msgstr "Metti a fuoco il percorso"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
@@ -2009,7 +2002,7 @@ msgstr "Metodi"
#: editor/editor_help.cpp
msgid "Theme Properties"
-msgstr "Proprietà del tema"
+msgstr "Proprietà Tema"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2021,7 +2014,7 @@ msgstr "Costanti"
#: editor/editor_help.cpp
msgid "Property Descriptions"
-msgstr "Descrizioni delle proprietà"
+msgstr "Descrizioni Proprietà"
#: editor/editor_help.cpp
msgid "(value)"
@@ -2037,7 +2030,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Method Descriptions"
-msgstr "Descrizioni dei metodi"
+msgstr "Descrizioni Metodo"
#: editor/editor_help.cpp
msgid ""
@@ -2470,12 +2463,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Impossibile ricaricare una scena che non è mai stata salvata."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Ripristina"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Salva Scena"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Questa azione non può essere annullata. Ripristinare comunque?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2525,7 +2521,7 @@ msgstr "Chiudi scena"
#: editor/editor_node.cpp
msgid "Reopen Closed Scene"
-msgstr "Riapri Scena Chiusa"
+msgstr "Riapri la scena chiusa"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
@@ -2622,11 +2618,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Save Layout"
-msgstr "Salva layout"
+msgstr "Salva disposizione"
#: editor/editor_node.cpp
msgid "Delete Layout"
-msgstr "Elimina Layout"
+msgstr "Elimina disposizione"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
@@ -2740,7 +2736,7 @@ msgstr "Apri recente"
#: editor/editor_node.cpp
msgid "Save Scene"
-msgstr "Salva scena"
+msgstr "Salva Scena"
#: editor/editor_node.cpp
msgid "Save All Scenes"
@@ -2769,10 +2765,6 @@ msgid "Redo"
msgstr "Rifai"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Ripristina scena"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Strumenti di progetto o scena vari."
@@ -2783,7 +2775,7 @@ msgstr "Progetto"
#: editor/editor_node.cpp
msgid "Project Settings..."
-msgstr "Impostazioni Progetto…"
+msgstr "Impostazioni progetto…"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Version Control"
@@ -2925,11 +2917,11 @@ msgstr "Impostazioni editor…"
#: editor/editor_node.cpp
msgid "Editor Layout"
-msgstr "Layout dell'editor"
+msgstr "Disposizione dell'editor"
#: editor/editor_node.cpp
msgid "Take Screenshot"
-msgstr "Acquisisci screenshot"
+msgstr "Acquisisci una schermata"
#: editor/editor_node.cpp
msgid "Screenshots are stored in the Editor Data/Settings Folder."
@@ -3000,7 +2992,7 @@ msgstr "Comunità"
#: editor/editor_node.cpp
msgid "About"
-msgstr "Riguardo a"
+msgstr "Informazioni su Godot"
#: editor/editor_node.cpp
msgid "Play the project."
@@ -3016,7 +3008,7 @@ msgstr "Metti in pausa l'esecuzione della scena per eseguire il debug."
#: editor/editor_node.cpp
msgid "Pause Scene"
-msgstr "Pausa Scena"
+msgstr "Pausa scena"
#: editor/editor_node.cpp
msgid "Stop the scene."
@@ -3158,15 +3150,15 @@ msgstr "Seleziona"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
-msgstr "Apri editor 2D"
+msgstr "Apri Editor 2D"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
-msgstr "Apri Editor 3D"
+msgstr "Apri editor 3D"
#: editor/editor_node.cpp
msgid "Open Script Editor"
-msgstr "Apri Editor Script"
+msgstr "Apri editor degli script"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
@@ -3425,6 +3417,13 @@ msgstr "Impossibile eseguire lo script:"
msgid "Did you forget the '_run' method?"
msgstr "Hai dimenticato il metodo '_run'?"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Mantieni premuto Control per rilasciare un Getter. Mantieni premuto Shift "
+"per rilasciare una firma generica."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Scegli Nodo(i) da Importare"
@@ -3841,7 +3840,7 @@ msgstr "Crea Script"
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
msgid "Find in Files"
-msgstr "Trova nei File"
+msgstr "Trova nei file"
#: editor/find_in_files.cpp
msgid "Find:"
@@ -4023,6 +4022,10 @@ msgid "Error running post-import script:"
msgstr "Errore di esecuzione dello script di post-import:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Salvataggio..."
@@ -4623,7 +4626,7 @@ msgstr "Opzioni dell'onion skinning"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Directions"
-msgstr "Direzioni"
+msgstr "Indicazioni"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Past"
@@ -4643,11 +4646,11 @@ msgstr "1 passo"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr "2 passaggi"
+msgstr "2 passi"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr "3 passaggi"
+msgstr "3 passi"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
@@ -5175,7 +5178,7 @@ msgstr "Offset Griglia:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Grid Step:"
-msgstr "Step Griglia:"
+msgstr "Passo della griglia:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Primary Line Every:"
@@ -5183,7 +5186,7 @@ msgstr "Line Primaria Ogni:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "steps"
-msgstr "passaggi"
+msgstr "passi"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Offset:"
@@ -5191,11 +5194,11 @@ msgstr "Offset Rotazione:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Step:"
-msgstr "Step Rotazione:"
+msgstr "Passo di rotazione:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale Step:"
-msgstr "Intervallo:"
+msgstr "Passo di scala:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Vertical Guide"
@@ -5393,7 +5396,7 @@ msgstr "Incolla Posa"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Guides"
-msgstr "Rimuvi Guide"
+msgstr "Rimuovi guide"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create Custom Bone(s) from Node(s)"
@@ -5423,12 +5426,12 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Reset"
-msgstr "Ripristino Zoom"
+msgstr "Ripristina ingrandimento"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode"
-msgstr "Modalità di Selezione"
+msgstr "Modalità di selezione"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag: Rotate"
@@ -5451,17 +5454,17 @@ msgstr "Alt+RMB: Selezione Lista Profondità"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Move Mode"
-msgstr "Modalità Movimento"
+msgstr "Modalità spostamento"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Mode"
-msgstr "Modalità Rotazione"
+msgstr "Modalità rotazione"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Mode"
-msgstr "Modalità Scala"
+msgstr "Modalità scala"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5482,7 +5485,7 @@ msgstr "Modalità di Pan"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Ruler Mode"
-msgstr "Modalità Righello"
+msgstr "Modalità righello"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle smart snapping."
@@ -5490,7 +5493,7 @@ msgstr "Abilita snapping intelligente."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Smart Snap"
-msgstr "Usa lo Snap Intelligente"
+msgstr "Usa lo Snap intelligente"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle grid snapping."
@@ -5498,7 +5501,7 @@ msgstr "Abilita/Disabilita snapping magnetico."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Grid Snap"
-msgstr "Usa snap magnetico"
+msgstr "Usa Griglia Magnetica"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snapping Options"
@@ -5600,7 +5603,7 @@ msgstr "Mostra Sempre Griglia"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Helpers"
-msgstr "Mostra Guide"
+msgstr "Mostra guide"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Rulers"
@@ -5608,7 +5611,7 @@ msgstr "Mostra Righelli"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Guides"
-msgstr "Mostra guide"
+msgstr "Mostra Guide"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Origin"
@@ -5624,15 +5627,15 @@ msgstr "Mostra Gruppo e Blocca Icone"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
-msgstr "Centra Selezione"
+msgstr "Centra selezione"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Frame Selection"
-msgstr "Selezione Frame"
+msgstr "Selezione frame"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Preview Canvas Scale"
-msgstr "Anteprima dimensione canvas"
+msgstr "Anteprima Dimensione Canvas"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Translation mask for inserting keys."
@@ -5673,7 +5676,7 @@ msgstr "Chiavi d'Animazione e Opzioni Posa"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
-msgstr "Inserisci Key (Tracce Esistenti)"
+msgstr "Inserisci chiave (tracce esistenti)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
@@ -5681,7 +5684,7 @@ msgstr "Copia Posa"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Pose"
-msgstr "Pulisci Posa"
+msgstr "Azzera posa"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -5693,7 +5696,7 @@ msgstr "Dividi per 2 il passo della griglia"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan View"
-msgstr "Vista panoramica"
+msgstr "Trasla Visuale"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6633,11 +6636,11 @@ msgstr "Offset Y Griglia:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Step X:"
-msgstr "Step X Griglia:"
+msgstr "Passo X della griglia:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Step Y:"
-msgstr "Step Y Griglia:"
+msgstr "Passo Y della griglia:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Sync Bones to Polygon"
@@ -6791,12 +6794,12 @@ msgstr "%s Riferimento di Classe"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find Next"
-msgstr "Trova Successivo"
+msgstr "Trova successivo"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find Previous"
-msgstr "Trova Precedente"
+msgstr "Trova precedente"
#: editor/plugins/script_editor_plugin.cpp
msgid "Filter scripts"
@@ -6818,13 +6821,13 @@ msgstr "Ordina"
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
-msgstr "Sposta Su"
+msgstr "Sposta in su"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
-msgstr "Sposta giù"
+msgstr "Sposta in giù"
#: editor/plugins/script_editor_plugin.cpp
msgid "Next script"
@@ -6844,15 +6847,15 @@ msgstr "Apri..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reopen Closed Script"
-msgstr "Riapri Script Chiuso"
+msgstr "Riapri lo script chiuso"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save All"
-msgstr "Salva Tutto"
+msgstr "Salva tutto"
#: editor/plugins/script_editor_plugin.cpp
msgid "Soft Reload Script"
-msgstr "Ricarica Script Soft"
+msgstr "Ricarica Soft Script"
#: editor/plugins/script_editor_plugin.cpp
msgid "Copy Script Path"
@@ -6897,11 +6900,11 @@ msgstr "Esegui"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Into"
-msgstr "Passo Precedente"
+msgstr "Passo dentro all'istruzione"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Over"
-msgstr "Passo Successivo"
+msgstr "Passo successivo"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Break"
@@ -6989,16 +6992,17 @@ msgstr ""
"Manca il metodo '%s' connesso per il segnale '%s' dal nodo '%s' al nodo '%s'."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Linea"
+#, fuzzy
+msgid "[Ignore]"
+msgstr "(ignora)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ignora)"
+msgid "Line"
+msgstr "Linea"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
-msgstr "Vai a Funzione"
+msgstr "Va' alla funzione"
#: editor/plugins/script_text_editor.cpp
msgid "Only resources from filesystem can be dropped."
@@ -7032,7 +7036,7 @@ msgstr "Minuscolo"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Capitalize"
-msgstr "Aggiungi maiuscola iniziale"
+msgstr "Rendi prima lettera maiuscola"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Syntax Highlighter"
@@ -7050,7 +7054,7 @@ msgstr "Segnalibri"
#: editor/plugins/script_text_editor.cpp
msgid "Breakpoints"
-msgstr "Punti di rottura"
+msgstr "Breakpoint"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
@@ -7060,11 +7064,11 @@ msgstr "Taglia"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Select All"
-msgstr "Seleziona tutti"
+msgstr "Seleziona tutto"
#: editor/plugins/script_text_editor.cpp
msgid "Delete Line"
-msgstr "Elimina Linea"
+msgstr "Elimina linea"
#: editor/plugins/script_text_editor.cpp
msgid "Indent Left"
@@ -7076,11 +7080,11 @@ msgstr "Indenta Destra"
#: editor/plugins/script_text_editor.cpp
msgid "Toggle Comment"
-msgstr "Cambia a Commento"
+msgstr "Commuta commento"
#: editor/plugins/script_text_editor.cpp
msgid "Fold/Unfold Line"
-msgstr "Piega/Dispiega Linea"
+msgstr "Espandi/comprimi linea"
#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
@@ -7092,31 +7096,31 @@ msgstr "Dispiegare Tutte le Linee"
#: editor/plugins/script_text_editor.cpp
msgid "Clone Down"
-msgstr "Clona Sotto"
+msgstr "Clona sotto"
#: editor/plugins/script_text_editor.cpp
msgid "Complete Symbol"
-msgstr "Completa Simbolo"
+msgstr "Completa simbolo"
#: editor/plugins/script_text_editor.cpp
msgid "Evaluate Selection"
-msgstr "Valuta Selezione"
+msgstr "Valuta selezione"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
-msgstr "Taglia Spazi in Coda"
+msgstr "Taglia spazi in coda"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Indent to Spaces"
-msgstr "Converti Indentazione in Spazi"
+msgstr "Converti l'indentazione in spazi"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Indent to Tabs"
-msgstr "Converti Indentazione in Tabulazioni"
+msgstr "Converti l'indentazione in tabulazioni"
#: editor/plugins/script_text_editor.cpp
msgid "Auto Indent"
-msgstr "Auto Indenta"
+msgstr "Indenta automaticamente"
#: editor/plugins/script_text_editor.cpp
msgid "Find in Files..."
@@ -7124,19 +7128,19 @@ msgstr "Cerca nei File..."
#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
-msgstr "Aiuto Contestuale"
+msgstr "Aiuto contestuale"
#: editor/plugins/script_text_editor.cpp
msgid "Toggle Bookmark"
-msgstr "Abilita/Disabilita Segnalibri"
+msgstr "Abilita/Disabilita segnalibri"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Next Bookmark"
-msgstr "Vai al Segnalibri Successivo"
+msgstr "Va' al segnalibro successivo"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Previous Bookmark"
-msgstr "Vai al Segnalibri Precedente"
+msgstr "Va' al segnalibro precedente"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Bookmarks"
@@ -7153,19 +7157,19 @@ msgstr "Vai a Linea..."
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Toggle Breakpoint"
-msgstr "Abilita Breakpoint"
+msgstr "Commuta breakpoint"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Breakpoints"
-msgstr "Rimuovi Tutti i Breakpoints"
+msgstr "Rimuovi tutti i breakpoint"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Next Breakpoint"
-msgstr "Vai a Breakpoint Successivo"
+msgstr "Vai al breakpoint successivo"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Previous Breakpoint"
-msgstr "Vai a Breakpoint Precedente"
+msgstr "Vai al breakpoint precedente"
#: editor/plugins/shader_editor_plugin.cpp
msgid ""
@@ -7345,11 +7349,11 @@ msgstr "Retro"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
-msgstr "Allinea Trasformazione con la Vista"
+msgstr "Allinea trasformazione con la vista"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Rotation with View"
-msgstr "Allinea Rotazione con la Vista"
+msgstr "Allinea rotazione con la vista"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "No parent to instance a child at."
@@ -7469,6 +7473,15 @@ msgid "XForm Dialog"
msgstr "Finestra di XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Sposta i Nodi sul Pavimento"
@@ -7488,51 +7501,51 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Local Space"
-msgstr "Usa lo Spazio Locale"
+msgstr "Usa Spazio Locale"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr "Usa lo Snap"
+msgstr "Usa Snap"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
-msgstr "Vista dal Basso"
+msgstr "Vista dal basso"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View"
-msgstr "Vista dall'Alto"
+msgstr "Vista dall'alto"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View"
-msgstr "Vista dal Retro"
+msgstr "Vista dal retro"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View"
-msgstr "Vista Frontale"
+msgstr "Vista frontale"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View"
-msgstr "Vista Sinistra"
+msgstr "Vista laterale sinistra"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View"
-msgstr "Vista Destra"
+msgstr "Vista laterale destra"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Switch Perspective/Orthogonal View"
-msgstr "Cambia tra Vista Prospettiva/Ortogonale"
+msgstr "Cambia tra vista prospettica/ortogonale"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Insert Animation Key"
-msgstr "Inserisci Key Animazione"
+msgstr "Inserisci chiave animazione"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
-msgstr "Focalizza su Origine"
+msgstr "Centra Origine"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
-msgstr "Centra a Selezione"
+msgstr "Centra la Selezione"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Toggle Freelook"
@@ -7901,7 +7914,7 @@ msgstr "Offset:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Step:"
-msgstr "Step:"
+msgstr "Passo:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Sep.:"
@@ -8066,7 +8079,7 @@ msgstr "File Tema"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
-msgstr "Cancella Selezione"
+msgstr "Cancella selezione"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Fix Invalid Tiles"
@@ -8075,7 +8088,7 @@ msgstr "Correggi le Tile non Valide"
#: editor/plugins/tile_map_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cut Selection"
-msgstr "Taglia Selezione"
+msgstr "Taglia selezione"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint TileMap"
@@ -8099,7 +8112,7 @@ msgstr "Cancella TileMap"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Find Tile"
-msgstr "Trova Tile"
+msgstr "Trova tile"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Transpose"
@@ -8124,7 +8137,7 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint Tile"
-msgstr "Disegna Tile"
+msgstr "Disegna tile"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
@@ -8136,7 +8149,7 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Pick Tile"
-msgstr "Preleva Tile"
+msgstr "Preleva tile"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate Left"
@@ -8156,7 +8169,7 @@ msgstr "Ribalta verticalmente"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Clear Transform"
-msgstr "Cancella la trasformazione"
+msgstr "Azzera la trasformazione"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Add Texture(s) to TileSet."
@@ -8188,7 +8201,7 @@ msgstr "Nuova Atlas"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Next Coordinate"
-msgstr "Prossima Coordinata"
+msgstr "Coordinata successiva"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Select the next shape, subtile, or Tile."
@@ -8196,7 +8209,7 @@ msgstr "Seleziona la prossima forma, sottotile, o Tile."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Previous Coordinate"
-msgstr "Coordinata Precedente"
+msgstr "Coordinata precedente"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Select the previous shape, subtile, or Tile."
@@ -8232,27 +8245,27 @@ msgstr "Indice Z"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Region Mode"
-msgstr "Modalità regione"
+msgstr "Modalità Regione"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Collision Mode"
-msgstr "Modalità di Collisione"
+msgstr "Modalità di collisione"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Occlusion Mode"
-msgstr "Modalità di occlusione"
+msgstr "Modalità Occlusione"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Navigation Mode"
-msgstr "Modalità di navigazione"
+msgstr "Modalità Navigazione"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Bitmask Mode"
-msgstr "Modalità Maschera di Bit"
+msgstr "Modalità Bitmask"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Priority Mode"
-msgstr "Modalità prioritaria"
+msgstr "Modalità Prioritaria"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Icon Mode"
@@ -8260,7 +8273,7 @@ msgstr "Modalità Icona"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Z Index Mode"
-msgstr "Modalità indice Z"
+msgstr "Modalità Indice Z"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Copy bitmask."
@@ -8661,7 +8674,7 @@ msgstr "Duplica Nodi"
#: editor/plugins/visual_shader_editor_plugin.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste Nodes"
-msgstr "Incolla Nodi"
+msgstr "Incolla nodi"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Delete Nodes"
@@ -9996,6 +10009,10 @@ msgid ""
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
+"La casella di ricerca filtra i progetti per nome e l'ultimo componente del "
+"percorso.\n"
+"Per filtrare i progetti per nome e percorso completo, la query deve "
+"contenere almeno un carattere `/`."
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -10375,7 +10392,7 @@ msgstr "Seleziona Metodo"
#: editor/rename_dialog.cpp editor/scene_tree_dock.cpp
msgid "Batch Rename"
-msgstr "Rinomina in Blocco"
+msgstr "Rinomina in blocco"
#: editor/rename_dialog.cpp
msgid "Prefix"
@@ -10562,8 +10579,9 @@ msgid "Instance Child Scene"
msgstr "Istanzia Scena Figlia"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Svuota Script"
+#, fuzzy
+msgid "Detach Script"
+msgstr "Allega Script"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10729,8 +10747,15 @@ msgid "Open Documentation"
msgstr "Apri la documentazione"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
-msgstr "Aggiungi Nodo Figlio"
+msgstr "Aggiungi un nodo figlio"
#: editor/scene_tree_dock.cpp
msgid "Expand/Collapse All"
@@ -10758,7 +10783,7 @@ msgstr "Salva Ramo come Scena"
#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
msgid "Copy Node Path"
-msgstr "Copia Percorso Nodo"
+msgstr "Copia percorso del nodo"
#: editor/scene_tree_dock.cpp
msgid "Delete (No Confirm)"
@@ -10777,11 +10802,13 @@ msgstr ""
"root esiste."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "Allega un nuovo script o uno esistente al nodo selezionato."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "Svuota uno script per il nodo selezionato."
#: editor/scene_tree_dock.cpp
@@ -10913,6 +10940,10 @@ msgid "A directory with the same name exists."
msgstr "Esiste già una directory con lo stesso nome."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "File inesistente."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Estensione non valida."
@@ -10953,6 +10984,10 @@ msgid "File exists, it will be reused."
msgstr "Il file è già esistente, quindi, verrà riutilizzato."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Percorso non valido."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Nome classe non valido."
@@ -11058,7 +11093,7 @@ msgstr "Processo Figlio Connesso."
#: editor/script_editor_debugger.cpp
msgid "Copy Error"
-msgstr "Errore di Copia"
+msgstr "Copia messaggio di errore"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -11066,7 +11101,7 @@ msgstr "RAM Video"
#: editor/script_editor_debugger.cpp
msgid "Skip Breakpoints"
-msgstr "Salta Punti di rottura"
+msgstr "Salta i breakpoint"
#: editor/script_editor_debugger.cpp
msgid "Inspect Previous Instance"
@@ -11860,31 +11895,31 @@ msgstr "Seleziona o crea una funzione per modificarne il grafico."
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
-msgstr "Elimina selezionati"
+msgstr "Elimina Selezionati"
#: modules/visual_script/visual_script_editor.cpp
msgid "Find Node Type"
-msgstr "Trova Tipo Nodo"
+msgstr "Trova tipo del nodo"
#: modules/visual_script/visual_script_editor.cpp
msgid "Copy Nodes"
-msgstr "Copia Nodi"
+msgstr "Copia nodi"
#: modules/visual_script/visual_script_editor.cpp
msgid "Cut Nodes"
-msgstr "Taglia Nodi"
+msgstr "Taglia nodi"
#: modules/visual_script/visual_script_editor.cpp
msgid "Make Function"
-msgstr "Crea Funzione"
+msgstr "Crea funzione"
#: modules/visual_script/visual_script_editor.cpp
msgid "Refresh Graph"
-msgstr "Aggiorna Grafico"
+msgstr "Aggiorna grafico"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Member"
-msgstr "Modifica Membro"
+msgstr "Modifica membro"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
@@ -11933,16 +11968,16 @@ msgstr "VariableSet non trovato nello script: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
msgstr ""
-"Il nodo personalizato non ha un metodo _step(), impossibile processare il "
-"grafico."
+"Il nodo personalizzato non ha alcun metodo _step(), impossibile processare "
+"il grafico."
#: modules/visual_script/visual_script_nodes.cpp
msgid ""
"Invalid return value from _step(), must be integer (seq out), or string "
"(error)."
msgstr ""
-"Valore di return invalido da _step(), deve esere intero (seq out), oppure "
-"stringa (errore)."
+"Valore di ritorno di _step() non valido, deve essere un intero (seq out), "
+"oppure una stringa (errore)."
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search VisualScript"
@@ -12003,6 +12038,12 @@ msgstr ""
"Debug keystore non configurato nelle Impostazioni dell'Editor né nel preset."
#: platform/android/export/export.cpp
+#, fuzzy
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"Debug keystore non configurato nelle Impostazioni dell'Editor né nel preset."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"Le build personalizzate richiedono un percorso per un Android SDK valido "
@@ -12032,6 +12073,32 @@ msgstr "Nome del pacchetto non valido:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12831,6 +12898,21 @@ msgstr "Varyings può essere assegnato soltanto nella funzione del vertice."
msgid "Constants cannot be modified."
msgstr "Le constanti non possono essere modificate."
+#~ msgid "Not in resource path."
+#~ msgstr "Non è nel percorso risorse."
+
+#~ msgid "Revert"
+#~ msgstr "Ripristina"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Questa azione non può essere annullata. Ripristinare comunque?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Ripristina scena"
+
+#~ msgid "Clear Script"
+#~ msgstr "Svuota Script"
+
#~ msgid "Issue Tracker"
#~ msgstr "Tracciatore segnalazioni"
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index 8aef04db94..7d4aed4b29 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -31,12 +31,13 @@
# Akihiro Ogoshi <technical@palsystem-game.com>, 2019, 2020.
# Wataru Onuki <bettawat@yahoo.co.jp>, 2020.
# sporeball <sporeballdev@gmail.com>, 2020.
+# BinotaLIU <me@binota.org>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-04 15:12+0000\n"
-"Last-Translator: Wataru Onuki <bettawat@yahoo.co.jp>\n"
+"PO-Revision-Date: 2020-06-03 20:09+0000\n"
+"Last-Translator: BinotaLIU <me@binota.org>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/"
"godot/ja/>\n"
"Language: ja\n"
@@ -866,7 +867,6 @@ msgstr "シグナルã«æŽ¥ç¶šã§ãã¾ã›ã‚“"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1476,17 +1476,9 @@ msgstr "有効"
msgid "Rearrange Autoloads"
msgstr "自動読込ã¿ã®ä¸¦ã¹æ›¿ãˆ"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "パスãŒç„¡åŠ¹ã§ã™ã€‚"
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "ファイルãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "リソースパスã«ã‚ã‚Šã¾ã›ã‚“。"
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2444,12 +2436,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "ä¿å­˜ã•ã‚Œã¦ã„ãªã„シーンを読ã¿è¾¼ã‚€ã“ã¨ã¯ã§ãã¾ã›ã‚“。"
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "å…ƒã«æˆ»ã™"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "シーンをä¿å­˜"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "ã“ã®æ“作ã¯å–り消ã›ã¾ã›ã‚“。ãã‚Œã§ã‚‚å…ƒã«æˆ»ã—ã¾ã™ã‹?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2737,10 +2732,6 @@ msgid "Redo"
msgstr "ã‚„ã‚Šç›´ã™"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "シーンを元ã«æˆ»ã™"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "ãã®ä»–ã®ãƒ—ロジェクトã¾ãŸã¯ã‚·ãƒ¼ãƒ³å…¨ä½“ã®ãƒ„ール。"
@@ -3386,6 +3377,13 @@ msgstr "スクリプトを実行ã§ãã¾ã›ã‚“ã§ã—ãŸ:"
msgid "Did you forget the '_run' method?"
msgstr "'_run' メソッドを忘れã¦ã„ã¾ã›ã‚“ã‹ï¼Ÿ"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Ctrlを押ã—ãŸã¾ã¾Getterã‚’(ドラッグ&)ドロップã™ã‚‹ã€‚Shiftを押ã—ãŸã¾ã¾æ±Žç”¨ã‚·ã‚°ãƒ"
+"ãƒãƒ£ã‚’(ドラッグ&)ドロップã™ã‚‹."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "インãƒãƒ¼ãƒˆã™ã‚‹ãƒŽãƒ¼ãƒ‰ã‚’é¸æŠž"
@@ -3979,6 +3977,10 @@ msgid "Error running post-import script:"
msgstr "インãƒãƒ¼ãƒˆæ¸ˆã‚¹ã‚¯ãƒªãƒ—トã®å®Ÿè¡Œä¸­ã«ã‚¨ãƒ©ãƒ¼:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "ä¿å­˜ä¸­..."
@@ -4051,9 +4053,8 @@ msgid "Copy Resource"
msgstr "リソースをコピー"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Make Built-In"
-msgstr "ビルトインを作æˆ"
+msgstr "組ã¿è¾¼ã¿ã«ã™ã‚‹"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -5692,7 +5693,7 @@ msgstr "ãƒãƒ³ãƒ‰ãƒ«ã‚’設定ã™ã‚‹"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Load Emission Mask"
-msgstr "放射マスクを読ã¿è¾¼ã‚€"
+msgstr "放出マスクを読ã¿è¾¼ã‚€"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/cpu_particles_editor_plugin.cpp
@@ -5704,7 +5705,7 @@ msgstr "å†èµ·å‹•"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Clear Emission Mask"
-msgstr "発光(Emission)マスクをクリア"
+msgstr "放出マスクをクリア"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -5720,7 +5721,7 @@ msgstr "生æˆã—ãŸãƒã‚¤ãƒ³ãƒˆã®æ•°:"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Mask"
-msgstr "\\ Emission Mask"
+msgstr "放出マスク"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -5745,7 +5746,7 @@ msgstr "ピクセルã‹ã‚‰ã‚­ãƒ£ãƒ—ãƒãƒ£"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Colors"
-msgstr "発光(Emission)色"
+msgstr "放出色"
#: editor/plugins/cpu_particles_editor_plugin.cpp
msgid "CPUParticles"
@@ -6210,7 +6211,7 @@ msgstr "\"%s\" ã¯ãƒ•ã‚§ã‚¤ã‚¹ã‚¸ã‚ªãƒ¡ãƒˆãƒªãƒ¼ã‚’å«ã‚“ã§ã„ã¾ã›ã‚“。"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
-msgstr "放出器を作æˆ"
+msgstr "放出æºã‚’作æˆ"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Emission Points:"
@@ -6923,12 +6924,13 @@ msgstr ""
"ド'%s'ã¸ã®ã‚·ã‚°ãƒŠãƒ«ç”¨ã§ã™ã€‚"
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "ライン"
+#, fuzzy
+msgid "[Ignore]"
+msgstr "(無視)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(無視)"
+msgid "Line"
+msgstr "ライン"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7403,6 +7405,15 @@ msgid "XForm Dialog"
msgstr "XFormダイアログ"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "ノードをフロアã«ã‚¹ãƒŠãƒƒãƒ—"
@@ -8815,27 +8826,27 @@ msgstr "ãƒã‚¤ãƒ”ア数(2.718282)。自然対数ã®ãƒ™ãƒ¼ã‚¹ã‚’表ã—ã¾ã™ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Epsilon constant (0.00001). Smallest possible scalar number."
-msgstr "Î¥(イプシロン)定数(0.00001)。使用å¯èƒ½ãªæœ€å°ã®ã‚¹ã‚«ãƒ©ãƒ¼æ•°ã€‚"
+msgstr "ε(イプシロン)定数(0.00001)。使用å¯èƒ½ãªæœ€å°ã®ã‚¹ã‚«ãƒ©ãƒ¼æ•°ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Phi constant (1.618034). Golden ratio."
-msgstr "Φ(ファイ)定数 (1.618034)。黄金比。"
+msgstr "φ(ファイ)定数 (1.618034)。黄金比。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Pi/4 constant (0.785398) or 45 degrees."
-msgstr "Π(パイ)/4定数 (0.785398) ã¾ãŸã¯45度。"
+msgstr "Ï€(パイ)/4定数 (0.785398) ã¾ãŸã¯45度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Pi/2 constant (1.570796) or 90 degrees."
-msgstr "Π(パイ)/2 定数(1.570796)ã¾ãŸã¯90度。"
+msgstr "Ï€(パイ)/2 定数(1.570796)ã¾ãŸã¯90度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Pi constant (3.141593) or 180 degrees."
-msgstr "Π(パイ)定数(3.141593)ã¾ãŸã¯180度。"
+msgstr "Ï€(パイ)定数(3.141593)ã¾ãŸã¯180度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Tau constant (6.283185) or 360 degrees."
-msgstr "Τ(タウ)定数(6.283185)ã¾ãŸã¯360度。"
+msgstr "Ï„(タウ)定数(6.283185)ã¾ãŸã¯360度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Sqrt2 constant (1.414214). Square root of 2."
@@ -9286,7 +9297,6 @@ msgstr ""
"ãŸã‚ã«ãれを使用ã—ãªã„ã§ãã ã•ã„。"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid ""
"Returns falloff based on the dot product of surface normal and view "
"direction of camera (pass associated inputs to it)."
@@ -9885,7 +9895,7 @@ msgstr "æ–°è¦ãƒ—ロジェクト"
#: editor/project_manager.cpp
msgid "Remove Missing"
-msgstr "存在ã—ãªã„ã‚‚ã®ã‚’削除"
+msgstr "存在ã—ãªã„ã‚‚ã®ã‚’除去"
#: editor/project_manager.cpp
msgid "Templates"
@@ -9939,8 +9949,8 @@ msgid ""
"Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'"
msgstr ""
-"アクションåãŒç„¡åŠ¹ã§ã™ã€‚空ã«ã—ãŸã‚Šã€'/'ã€':'ã€'='ã€'\\'等をå«ã‚ã‚‹ã“ã¨ã¯ã§ãã¾"
-"ã›ã‚“"
+"アクションåãŒç„¡åŠ¹ã§ã™ã€‚空ã«ã—ãŸã‚Šã€'/'ã€':'ã€'='ã€'\\'ã€'\"'ã‚’å«ã‚ã‚‹ã“ã¨ã¯ã§"
+"ãã¾ã›ã‚“"
#: editor/project_settings_editor.cpp
msgid "An action with the name '%s' already exists."
@@ -10083,8 +10093,8 @@ msgid ""
"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'."
msgstr ""
-"無効ãªã‚¢ã‚¯ã‚·ãƒ§ãƒ³åã§ã™ã€‚空もã—ãã¯'/'ã€':'ã€'='ã€'\\' ã€'\"'等をå«ã‚ã‚‹ã“ã¨ã¯"
-"ã§ãã¾ã›ã‚“。"
+"無効ãªã‚¢ã‚¯ã‚·ãƒ§ãƒ³åã§ã™ã€‚空もã—ãã¯'/'ã€':'ã€'='ã€'\\' ã€'\"'ã‚’å«ã‚ã‚‹ã“ã¨ã¯ã§"
+"ãã¾ã›ã‚“。"
#: editor/project_settings_editor.cpp
msgid "Add Input Action"
@@ -10483,8 +10493,9 @@ msgid "Instance Child Scene"
msgstr "å­ã‚·ãƒ¼ãƒ³ã‚’インスタンス化"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "スクリプトをクリア"
+#, fuzzy
+msgid "Detach Script"
+msgstr "スクリプトをアタッãƒ"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10648,6 +10659,13 @@ msgid "Open Documentation"
msgstr "ドキュメントを開ã"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "å­ãƒŽãƒ¼ãƒ‰ã‚’追加"
@@ -10696,11 +10714,13 @@ msgstr ""
"åˆã¯ã€ç¶™æ‰¿ã•ã‚ŒãŸã‚·ãƒ¼ãƒ³ã‚’作æˆã—ã¾ã™ã€‚"
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã«æ–°è¦ã¾ãŸã¯æ—¢å­˜ã®ã‚¹ã‚¯ãƒªãƒ—トをアタッãƒã™ã‚‹ã€‚"
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã®ã‚¹ã‚¯ãƒªãƒ—トをクリアã™ã‚‹ã€‚"
#: editor/scene_tree_dock.cpp
@@ -10832,6 +10852,10 @@ msgid "A directory with the same name exists."
msgstr "åŒåã®ãƒ•ã‚©ãƒ«ãƒ€ãŒå­˜åœ¨ã—ã¾ã™ã€‚"
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "ファイルãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "無効ãªæ‹¡å¼µå­ã§ã™ã€‚"
@@ -10872,6 +10896,10 @@ msgid "File exists, it will be reused."
msgstr "ファイルãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚ãã¡ã‚‰ã‚’å†åˆ©ç”¨ã—ã¾ã™ã€‚"
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "パスãŒç„¡åŠ¹ã§ã™ã€‚"
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "無効ãªã‚¯ãƒ©ã‚¹å。"
@@ -10973,7 +11001,7 @@ msgstr "エラー"
#: editor/script_editor_debugger.cpp
msgid "Child process connected."
-msgstr "å­ãƒ—ロセスãŒæŽ¥ç¶šã•ã‚ŒãŸã€‚"
+msgstr "å­ãƒ—ロセスãŒæŽ¥ç¶šã•ã‚Œã¾ã—ãŸã€‚"
#: editor/script_editor_debugger.cpp
msgid "Copy Error"
@@ -11919,6 +11947,11 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr "デãƒãƒƒã‚°ã‚­ãƒ¼ã‚¹ãƒˆã‚¢ãŒã‚¨ãƒ‡ã‚£ã‚¿è¨­å®šã«ã‚‚プリセットã«ã‚‚設定ã•ã‚Œã¦ã„ã¾ã›ã‚“。"
#: platform/android/export/export.cpp
+#, fuzzy
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr "デãƒãƒƒã‚°ã‚­ãƒ¼ã‚¹ãƒˆã‚¢ãŒã‚¨ãƒ‡ã‚£ã‚¿è¨­å®šã«ã‚‚プリセットã«ã‚‚設定ã•ã‚Œã¦ã„ã¾ã›ã‚“。"
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr "カスタムビルドã«ã¯ã‚¨ãƒ‡ã‚£ã‚¿è¨­å®šã§æœ‰åŠ¹ãªAndroid SDKパスãŒå¿…è¦ã§ã™ã€‚"
@@ -11944,6 +11977,32 @@ msgstr "無効ãªãƒ‘ッケージå:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12724,6 +12783,21 @@ msgstr "Varying変数ã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã
msgid "Constants cannot be modified."
msgstr "定数ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。"
+#~ msgid "Not in resource path."
+#~ msgstr "リソースパスã«ã‚ã‚Šã¾ã›ã‚“。"
+
+#~ msgid "Revert"
+#~ msgstr "å…ƒã«æˆ»ã™"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "ã“ã®æ“作ã¯å–り消ã›ã¾ã›ã‚“。ãã‚Œã§ã‚‚å…ƒã«æˆ»ã—ã¾ã™ã‹?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "シーンを元ã«æˆ»ã™"
+
+#~ msgid "Clear Script"
+#~ msgstr "スクリプトをクリア"
+
#~ msgid "Issue Tracker"
#~ msgstr "課題管ç†ã‚·ã‚¹ãƒ†ãƒ "
diff --git a/editor/translations/ka.po b/editor/translations/ka.po
index 07eeeb5377..2435a50898 100644
--- a/editor/translations/ka.po
+++ b/editor/translations/ka.po
@@ -876,7 +876,6 @@ msgstr "დáƒáƒ›áƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ áƒ”ბელი სიგნáƒáƒšáƒ˜:"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1503,17 +1502,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2459,11 +2449,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "გáƒáƒ®áƒ¡áƒœáƒ˜áƒšáƒ˜"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2734,10 +2727,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3350,6 +3339,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3954,6 +3947,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6906,15 +6903,15 @@ msgid ""
msgstr "'%s' დრ'%s' შáƒáƒ áƒ˜áƒ¡ კáƒáƒ•áƒ¨áƒ˜áƒ áƒ˜áƒ¡ გáƒáƒ¬áƒ§áƒ•áƒ”ტáƒ"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "ხáƒáƒ–ი:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "ფუნქციის შექმნáƒ"
@@ -7391,6 +7388,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10392,8 +10398,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "დáƒáƒ›áƒáƒ™áƒ˜áƒ“ებულებების შემსწáƒáƒ áƒ”ბელი"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10554,6 +10561,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10603,11 +10617,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10732,6 +10746,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ."
@@ -10774,6 +10792,11 @@ msgstr ""
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ."
@@ -11827,6 +11850,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11851,6 +11878,32 @@ msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index f25550709a..c568dc19b8 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -17,12 +17,13 @@
# Ervin <zetsmart@gmail.com>, 2019.
# Tilto_ <tilto0822@develable.xyz>, 2020.
# Myeongjin Lee <aranet100@gmail.com>, 2020.
+# Doyun Kwon <caen4516@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-01 11:42+0000\n"
-"Last-Translator: Ch. <ccwpc@hanmail.net>\n"
+"PO-Revision-Date: 2020-05-22 21:01+0000\n"
+"Last-Translator: Doyun Kwon <caen4516@gmail.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/"
"godot/ko/>\n"
"Language: ko\n"
@@ -30,7 +31,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.0.2\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -850,7 +851,6 @@ msgstr "시그ë„ì„ ì—°ê²°í•  수 ì—†ìŒ"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1459,17 +1459,9 @@ msgstr "켜기"
msgid "Rearrange Autoloads"
msgstr "오토로드 다시 정렬"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "올바르지 ì•Šì€ ê²½ë¡œìž…ë‹ˆë‹¤."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "파ì¼ì´ 존재하지 않습니다."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "리소스 ê²½ë¡œì— ì—†ìŠµë‹ˆë‹¤."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1586,8 +1578,9 @@ msgid ""
"Enabled'."
msgstr ""
"ëŒ€ìƒ í”Œëž«í¼ì—ì„œ ë“œë¼ì´ë²„ê°€ GLES2ë¡œ í´ë°±í•˜ê¸° 위해 'ETC' í…스처 ì••ì¶•ì´ í•„ìš”í•©ë‹ˆ"
-"다. 프로ì íŠ¸ 설정ì—ì„œ 'Import Etc' ì„¤ì •ì„ ì¼œê±°ë‚˜, 'Driver Fallback Enabled' "
-"ì„¤ì •ì„ ë„세요."
+"다.\n"
+"프로ì íŠ¸ 설정ì—ì„œ 'Import Etc' ì„¤ì •ì„ í™œì„±í™” 하거나, 'Driver Fallback "
+"Enabled' ì„¤ì •ì„ ë¹„í™œì„±í™” 하세요."
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
@@ -1968,7 +1961,7 @@ msgstr "메서드"
#: editor/editor_help.cpp
msgid "Theme Properties"
-msgstr "테마 ì†ì„±"
+msgstr "테마 ì†ì„±ë“¤"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2420,12 +2413,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "저장하지 ì•Šì€ ì”¬ì€ ìƒˆë¡œê³ ì¹¨í•  수 없습니다."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "ë˜ëŒë¦¬ê¸°"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "씬 저장"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "ì´ í–‰ë™ì€ 취소할 수 없습니다. 무시하고 ë˜ëŒë¦´ê¹Œìš”?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2710,10 +2706,6 @@ msgid "Redo"
msgstr "다시 실행"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "씬 ë˜ëŒë¦¬ê¸°"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "프로ì íŠ¸ ë˜ëŠ” 씬 관련 여러가지 ë„구들."
@@ -3354,6 +3346,13 @@ msgstr "스í¬ë¦½íŠ¸ë¥¼ 실행할 수 ì—†ìŒ:"
msgid "Did you forget the '_run' method?"
msgstr "'_run' 메서드를 잊었나요?"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Ctrlì„ ëˆ„ë¥´ê³  있으면 Getter를 드롭합니다. Shift를 누르고 있으면 ì¼ë°˜ì ì¸ 시그"
+"니처를 드롭합니다."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "가져올 노드 ì„ íƒ"
@@ -3948,6 +3947,10 @@ msgid "Error running post-import script:"
msgstr "후 가져오기 스í¬ë¦½íŠ¸ 실행 중 오류:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "저장 중..."
@@ -6878,12 +6881,13 @@ msgstr ""
"다."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "í–‰"
+#, fuzzy
+msgid "[Ignore]"
+msgstr "(무시함)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(무시함)"
+msgid "Line"
+msgstr "í–‰"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7357,6 +7361,15 @@ msgid "XForm Dialog"
msgstr "XForm 대화 ìƒìž"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "노드를 ë°”ë‹¥ì— ìŠ¤ëƒ…"
@@ -9233,8 +9246,8 @@ msgid ""
"Returns falloff based on the dot product of surface normal and view "
"direction of camera (pass associated inputs to it)."
msgstr ""
-"ì¹´ë©”ë¼ì˜ 화면 방향과 표면 ë…¸ë©€ì˜ ìŠ¤ì¹¼ë¼ê³±ì„ 기반으로 하는 í´ì˜¤í”„를 반환합니"
-"다 (í´ì˜¤í”„와 ê´€ë ¨ëœ ìž…ë ¥ì„ ì „ë‹¬í•¨)."
+"í‘œë©´ì˜ ë²•ì„  벡터와 ì¹´ë©”ë¼ê°€ ë°”ë¼ë³´ëŠ” ë°©í–¥ ë²¡í„°ì˜ ë‚´ì ì„ 기반으로 í•œ í´ì˜¤í”„를 "
+"반환합니다. (í´ì˜¤í”„와 ê´€ë ¨ëœ ìž…ë ¥ì„ ì „ë‹¬í•¨)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9407,15 +9420,16 @@ msgid ""
"Filters to export non-resource files/folders\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
-"리소스가 ì•„ë‹Œ 파ì¼/í´ë” 내보내기 í•„í„° (쉼표로 구분, 예: *.json, *.txt, docs/"
-"*)"
+"리소스가 ì•„ë‹Œ 파ì¼/í´ë” 내보내기 í•„í„°\n"
+"(쉼표로 구분, 예: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
msgid ""
"Filters to exclude files/folders from project\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
-"프로ì íŠ¸ì—ì„œ 제외할 파ì¼/í´ë” í•„í„° (쉼표로 구분, 예: *.json, *.txt, docs/*)"
+"프로ì íŠ¸ì—ì„œ 제외할 파ì¼/í´ë” í•„í„°\n"
+"(쉼표로 구분, 예: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
msgid "Patches"
@@ -10405,8 +10419,9 @@ msgid "Instance Child Scene"
msgstr "ìžì‹ 씬 ì¸ìŠ¤í„´ìŠ¤í™”"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "스í¬ë¦½íŠ¸ ì‚­ì œ"
+#, fuzzy
+msgid "Detach Script"
+msgstr "스í¬ë¦½íŠ¸ 붙ì´ê¸°"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10569,6 +10584,13 @@ msgid "Open Documentation"
msgstr "문서 열기"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "ìžì‹ 노드 추가"
@@ -10616,11 +10638,13 @@ msgstr ""
"씬 파ì¼ì„ 노드로 ì¸ìŠ¤í„´ìŠ¤í•©ë‹ˆë‹¤. 루트 노드가 없으면 ìƒì†ëœ ì”¬ì„ ë§Œë“­ë‹ˆë‹¤."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "ì„ íƒí•œ ë…¸ë“œì— ìƒˆë¡œìš´ í˜¹ì€ ì¡´ìž¬í•˜ëŠ” 스í¬ë¦½íŠ¸ë¥¼ 붙입니다."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "ì„ íƒí•œ ë…¸ë“œì˜ ìŠ¤í¬ë¦½íŠ¸ë¥¼ 삭제합니다."
#: editor/scene_tree_dock.cpp
@@ -10752,6 +10776,10 @@ msgid "A directory with the same name exists."
msgstr "ê°™ì€ ì´ë¦„ì˜ ë””ë ‰í† ë¦¬ê°€ 있습니다."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "파ì¼ì´ 존재하지 않습니다."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "ìž˜ëª»ëœ í™•ìž¥ìž."
@@ -10792,6 +10820,10 @@ msgid "File exists, it will be reused."
msgstr "파ì¼ì´ 있습니다. 다시 사용할 것입니다."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "올바르지 ì•Šì€ ê²½ë¡œìž…ë‹ˆë‹¤."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "ìž˜ëª»ëœ í´ëž˜ìŠ¤ ì´ë¦„."
@@ -11834,6 +11866,11 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr "Debug keystore를 편집기 설정과 í”„ë¦¬ì…‹ì— ì„¤ì •í•˜ì§€ 않았습니다."
#: platform/android/export/export.cpp
+#, fuzzy
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr "Debug keystore를 편집기 설정과 í”„ë¦¬ì…‹ì— ì„¤ì •í•˜ì§€ 않았습니다."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr "맞춤 빌드ì—는 편집기 설정ì—ì„œ 올바른 안드로ì´ë“œ SDK 경로가 필요합니다."
@@ -11859,6 +11896,32 @@ msgstr "ìž˜ëª»ëœ íŒ¨í‚¤ì§€ ì´ë¦„:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12616,6 +12679,21 @@ msgstr "Varyingì€ ê¼­ì§“ì  í•¨ìˆ˜ì—만 지정할 수 있습니다."
msgid "Constants cannot be modified."
msgstr "ìƒìˆ˜ëŠ” 수정할 수 없습니다."
+#~ msgid "Not in resource path."
+#~ msgstr "리소스 ê²½ë¡œì— ì—†ìŠµë‹ˆë‹¤."
+
+#~ msgid "Revert"
+#~ msgstr "ë˜ëŒë¦¬ê¸°"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "ì´ í–‰ë™ì€ 취소할 수 없습니다. 무시하고 ë˜ëŒë¦´ê¹Œìš”?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "씬 ë˜ëŒë¦¬ê¸°"
+
+#~ msgid "Clear Script"
+#~ msgstr "스í¬ë¦½íŠ¸ ì‚­ì œ"
+
#~ msgid "Issue Tracker"
#~ msgstr "ì´ìŠˆ 트래커"
diff --git a/editor/translations/lt.po b/editor/translations/lt.po
index 57c377b571..bbbe630d4a 100644
--- a/editor/translations/lt.po
+++ b/editor/translations/lt.po
@@ -858,7 +858,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1465,17 +1464,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "Netinkamas Å¡rifto dydis."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2424,11 +2414,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Atidaryti Skriptų Editorių"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2699,10 +2692,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3320,6 +3309,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr "Galbūt jūs pamiršote '_run' metodą?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Pasirinkite Nodus, kuriuos norite importuoti"
@@ -3927,6 +3920,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6888,15 +6885,15 @@ msgid ""
msgstr "Prijungti '%s' prie '%s'"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "Linija:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
msgstr ""
@@ -7367,6 +7364,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10378,8 +10384,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Atidaryti Skriptų Editorių"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10540,6 +10547,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10588,11 +10602,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10715,6 +10729,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "Netinkamas Å¡rifto dydis."
@@ -10759,6 +10777,11 @@ msgstr ""
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "Netinkamas Å¡rifto dydis."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "Netinkamas Å¡rifto dydis."
@@ -11812,6 +11835,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11836,6 +11863,32 @@ msgstr "Netinkamas Å¡rifto dydis."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/lv.po b/editor/translations/lv.po
index 642050468b..b69ecf7eef 100644
--- a/editor/translations/lv.po
+++ b/editor/translations/lv.po
@@ -3,14 +3,16 @@
# Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Gustavs Porietis (pg829-) <porietisgustavs@gmail.com>, 2018.
-# Martch Zagorski <martchzagorski@gmail.com>, 2018.
+# Martch Zagorski <martchzagorski@gmail.com>, 2018, 2020.
# JÄnis Ondzuls <janisond@inbox.lv>, 2020.
+# Anonymous <noreply@weblate.org>, 2020.
+# StiLins <aigars.skilins@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-03-11 12:20+0000\n"
-"Last-Translator: JÄnis Ondzuls <janisond@inbox.lv>\n"
+"PO-Revision-Date: 2020-06-04 18:34+0000\n"
+"Last-Translator: StiLins <aigars.skilins@gmail.com>\n"
"Language-Team: Latvian <https://hosted.weblate.org/projects/godot-engine/"
"godot/lv/>\n"
"Language: lv\n"
@@ -19,16 +21,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= "
"19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n"
-"X-Generator: Weblate 4.0-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
msgstr ""
+"Nepareizs argumenta tips convert() izsaukšanai, lietojiet TYPE_* konstantes."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "JÄlieto teksta rinda ar garumu 1 (simbols)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -42,7 +45,7 @@ msgstr "NederÄ«ga ievade %i (nav padota) izteikumÄ"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr ""
+msgstr "'self' nevar izmantot, jo instance ir 'null' (nav padota)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -58,11 +61,11 @@ msgstr "NederÄ«gs nosaukts indekss '%s' bÄzes tipam %s"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr "Nderīgs arguments, lai izveidotu '%s'"
+msgstr "Nederīgs arguments, lai izveidotu '%s'"
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr ""
+msgstr "'%s' izsaukumÄ:"
#: core/ustring.cpp
msgid "B"
@@ -98,7 +101,7 @@ msgstr "Bezmaksas"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
-msgstr "Balancēts"
+msgstr "Balansēts"
#: editor/animation_bezier_editor.cpp
msgid "Mirror"
@@ -114,97 +117,96 @@ msgstr "Vērtība:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr "Ievadiet vērtību šeit"
+msgstr "Ievadiet Atslēgu Šeit"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
-msgstr "DublikÄta VÄ“rtÄ«bas"
+msgstr "Izveidot DublikÄtu IzvÄ“lÄ“tajai(Äm) AtslÄ“gai(Äm)"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr "IzdzÄ“st izvÄ“lÄ“to(Äs) vÄ“rtÄ«bu(as)?"
+msgstr "IzdzÄ“st IzvÄ“lÄ“to(Äs) AtslÄ“gu(as)"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
-msgstr ""
+msgstr "Pievienot Bezjē Punktu"
#: editor/animation_bezier_editor.cpp
msgid "Move Bezier Points"
-msgstr ""
+msgstr "PÄrvietot BezjÄ“ Punktus"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr ""
+msgstr "Anim Izveidot AtslÄ“gu DublikÄtu"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
-msgstr ""
+msgstr "Anim Izdzēst Atslēgas"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Time"
-msgstr ""
+msgstr "Anim Izmainīt Atslēgkadra Laiku"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
-msgstr ""
+msgstr "Anim IzmainÄ«t PÄreju"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
-msgstr ""
+msgstr "Anim IzmainÄ«t TransformÄciju"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
-msgstr ""
+msgstr "Anim Izmainīt Atslēgkadra Vērtību"
#: editor/animation_track_editor.cpp
msgid "Anim Change Call"
-msgstr ""
+msgstr "Anim Izmainīt Izsaukumu"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Keyframe Time"
-msgstr ""
+msgstr "Anim VairÄkkÄrt IzmainÄ«t AtslÄ“gkadra Laiku"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Transition"
-msgstr ""
+msgstr "Anim VairÄkkÄrt IzmainÄ«t PÄreju"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Transform"
-msgstr ""
+msgstr "Anim VairÄkkÄrt IzmainÄ«t TransformÄciju"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Keyframe Value"
-msgstr ""
+msgstr "Anim VairÄkkÄrt IzmainÄ«t AtslÄ“gkadra VÄ“rtÄ«bu"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Call"
-msgstr ""
+msgstr "Anim VairÄkkÄrt IzmainÄ«t Izsaukumu"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Length"
-msgstr "AnimÄciju Cilpa"
+msgstr "IzmainÄ«t AnimÄcijas Garumu"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "IzmainÄ«t AnimÄcijas AtkÄrtoÅ¡anos"
#: editor/animation_track_editor.cpp
msgid "Property Track"
-msgstr ""
+msgstr "Mainīgo Celiņš"
#: editor/animation_track_editor.cpp
msgid "3D Transform Track"
-msgstr ""
+msgstr "3D TransformÄcijas Celiņš"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
-msgstr ""
+msgstr "Izsaukt Metožu Celiņu"
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
-msgstr ""
+msgstr "Bezjē Līkņu Celiņš"
#: editor/animation_track_editor.cpp
msgid "Audio Playback Track"
@@ -215,14 +217,12 @@ msgid "Animation Playback Track"
msgstr "AnimÄcijas atskaņoÅ¡anas celiņs"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation length (frames)"
-msgstr "AnimÄcijas Garums (sekundes)"
+msgstr "AnimÄcijas garums (kadri)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation length (seconds)"
-msgstr "AnimÄcijas Garums (sekundes)"
+msgstr "AnimÄcijas garums (sekundes)"
#: editor/animation_track_editor.cpp
msgid "Add Track"
@@ -247,15 +247,15 @@ msgstr "AnimÄcijas klipi:"
#: editor/animation_track_editor.cpp
msgid "Change Track Path"
-msgstr ""
+msgstr "Izmainīt Ceļu uz Celiņa"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
-msgstr ""
+msgstr "PÄrslÄ“gt Å¡o celiņu ieslÄ“gts/izslÄ“gts."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr ""
+msgstr "AtjaunoÅ¡anas Režīms (KÄ Å¡is mainÄ«gais tiek iestatÄ«ts)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
@@ -263,7 +263,7 @@ msgstr "InterpolÄcijas režīms"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr ""
+msgstr "AtkÄrtoÅ¡anÄs AptÄ«Å¡anas Režīms (InterpolÄ“ beigas ar cilpas sÄkumu)"
#: editor/animation_track_editor.cpp
msgid "Remove this track."
@@ -275,7 +275,7 @@ msgstr "Laiks (s): "
#: editor/animation_track_editor.cpp
msgid "Toggle Track Enabled"
-msgstr ""
+msgstr "PÄrslÄ“gt Celiņu uz IespÄ“jotu"
#: editor/animation_track_editor.cpp
msgid "Continuous"
@@ -308,16 +308,16 @@ msgstr "Kubisks"
#: editor/animation_track_editor.cpp
msgid "Clamp Loop Interp"
-msgstr ""
+msgstr "Apgriezt Cilpas InterpolÄciju"
#: editor/animation_track_editor.cpp
msgid "Wrap Loop Interp"
-msgstr ""
+msgstr "AptÄ«t Cilpas InterpolÄciju"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr "Ievietot atslēgievietni"
+msgstr "Ievietot Atslēgu"
#: editor/animation_track_editor.cpp
msgid "Duplicate Key(s)"
@@ -328,23 +328,20 @@ msgid "Delete Key(s)"
msgstr "Izdzēst atslēgvietnes"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Update Mode"
-msgstr "AnimÄcijas tÄlummaiņa."
+msgstr "IzmainÄ«t AnimÄcijas AtjaunoÅ¡anas Režīmu"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Interpolation Mode"
-msgstr "InterpolÄcijas režīms"
+msgstr "IzmainÄ«t AnimÄcijas InterpolÄcijas Režīmu"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Loop Mode"
-msgstr "AnimÄcijas tÄlummaiņa."
+msgstr "IzmainÄ«t AnimÄcijas AtkÄrtoÅ¡anÄs Režīmu"
#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
-msgstr "Noņemt animÄcijas celiņu"
+msgstr "Noņemt Anim. Celiņu"
#: editor/animation_track_editor.cpp
msgid "Create NEW track for %s and insert key?"
@@ -372,33 +369,31 @@ msgstr "Anim ievietot"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
-msgstr "AnimationPlayer nevar animÄ“t pats sevi, tikai citi spÄ“lÄ“tÄji."
+msgstr "AnimationPlayer nevar animÄ“t pats sevi, tikai citus spÄ“lÄ“tÄjus."
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
-msgstr "Anim izveidot un ievietot"
+msgstr "Anim Izveidot un Ievietot"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr "Anim ievietot celiņu un atslēgvietni"
+msgstr "Anim Ievietot Celiņu un Atslēgu"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Key"
-msgstr "Anim ievietot atslēgievietni"
+msgstr "Anim Ievietot Atslēgu"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Step"
-msgstr "AnimÄcijas tÄlummaiņa."
+msgstr "IzmainÄ«t AnimÄcijas Soli"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Rearrange Tracks"
-msgstr "Ielīmēt celiņus"
+msgstr "PÄrkÄrtot Celiņus"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr ""
+msgstr "TransformÄcijas celiņi tiek tikai pievienoti TelpiskajÄm mezgliem."
#: editor/animation_track_editor.cpp
msgid ""
@@ -407,7 +402,7 @@ msgid ""
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
msgstr ""
-"Audio celiņu var tikai rÄdÄ«t uz Å¡Äda tipa mezgliem:\n"
+"Audio celiņu var tikai norÄdÄ«t uz Å¡Äda tipa mezgliem:\n"
"-AudioStreamPlayer\n"
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
@@ -426,47 +421,43 @@ msgstr "Nevar izveidot jaunu celiņu bez saknes"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr ""
+msgstr "Neatbilstošs celiņš priekš Bezjē (nav piemērotu apakš-mainīgo)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Bezier Track"
-msgstr "Pievienot celiņu"
+msgstr "Pievienot Bezjē Celiņu"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
-msgstr ""
+msgstr "Ceļš uz Celiņu nav derÄ«gs, tÄpÄ“c nevar pievienot atslÄ“gu."
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
-msgstr ""
+msgstr "Celiņš nepieder Telpiskajam tipam, nevar ievietot atslēgu"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Transform Track Key"
-msgstr "Anim ievietot celiņu un atslēgvietni"
+msgstr "Pievienot AtslÄ“gu TransformÄcijas Celiņam"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track Key"
-msgstr "Pievienot celiņu"
+msgstr "Pievienot Celiņa Atslēgu"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
-msgstr ""
+msgstr "Ceļš uz Celiņu nav derÄ«gs, tÄpÄ“c nevar pievienot metodes atslÄ“gu."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Method Track Key"
-msgstr "Anim ievietot celiņu un atslēgvietni"
+msgstr "Pievienot Celiņa Metodes Atslēgu"
#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
-msgstr "Metode netika atrasta objektÄ: "
+msgstr "Metode objektÄ netika atrasta: "
#: editor/animation_track_editor.cpp
msgid "Anim Move Keys"
-msgstr "Anim pÄrvietot atslÄ“gievietnes"
+msgstr "Anim PÄrvietot AtslÄ“gas"
#: editor/animation_track_editor.cpp
msgid "Clipboard is empty"
@@ -478,12 +469,12 @@ msgstr "Ielīmēt celiņus"
#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
-msgstr "Anim pÄrvietot atslÄ“gievietnes"
+msgstr "Anim Mainīt Atslēgas Izmēru"
#: editor/animation_track_editor.cpp
msgid ""
"This option does not work for Bezier editing, as it's only a single track."
-msgstr ""
+msgstr "Å Ä« iespÄ“ja nestrÄdÄ ar BazjÄ“ rediģēšanu, jo tai ir tikai viens celiņš."
#: editor/animation_track_editor.cpp
msgid ""
@@ -497,14 +488,24 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
+"Å Ä« animÄcija pieder importÄ“tajai ainai, tÄpÄ“c importÄ“tÄ celiņa izmaiņas "
+"netiks saglabÄtas.\n"
+"\n"
+"Lai iespÄ“jotu pielÄgotu celiņu pievienoÅ¡anu, atrodiet ainu importÄ“Å¡anas "
+"iespÄ“jas un iestÄdiet\n"
+"\"Animation > Storage\" uz \"Files\", iespējojiet \"Animation > Keep Custom "
+"Tracks\", tad nospiediet 're-import'.\n"
+"AlternatÄ«vi, izmantojiet 'import preset', kas importÄ“ animÄcijas uz "
+"atsevišķiem failiem."
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
-msgstr ""
+msgstr "BrÄ«dinÄjums: Rediģējat importÄ“to animÄciju"
#: editor/animation_track_editor.cpp
msgid "Select an AnimationPlayer node to create and edit animations."
msgstr ""
+"IzvÄ“lieties 'AnimationPlayer' mezglu, lai izveidotu un rediģētu animÄcijas."
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
@@ -516,9 +517,8 @@ msgstr ""
"SagrupÄ“t celiņus atkarÄ«bÄ no mezgliem vai rÄdÄ«t tos vienkÄrÅ¡Ä sarakstÄ."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Snap:"
-msgstr "Solis (s): "
+msgstr "Pievilkt:"
#: editor/animation_track_editor.cpp
msgid "Animation step value."
@@ -526,11 +526,11 @@ msgstr "AnimÄcijas soļa vÄ“rtÄ«ba."
#: editor/animation_track_editor.cpp
msgid "Seconds"
-msgstr ""
+msgstr "Sekundes"
#: editor/animation_track_editor.cpp
msgid "FPS"
-msgstr ""
+msgstr "FPS"
#: editor/animation_track_editor.cpp editor/editor_properties.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -560,7 +560,7 @@ msgstr "Skala No Kursora"
#: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp
msgid "Duplicate Selection"
-msgstr "DublikÄta IzvÄ“le"
+msgstr "Izveidot DublikÄtu IzvÄ“lÄ“tajam"
#: editor/animation_track_editor.cpp
msgid "Duplicate Transposed"
@@ -571,14 +571,12 @@ msgid "Delete Selection"
msgstr "Dzēst izvēlētos"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Next Step"
-msgstr "Doties uz nÄkamo soli"
+msgstr "Doties uz NÄkamo Soli"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Previous Step"
-msgstr "Doties uz iepriekšējo soli"
+msgstr "Doties uz Iepriekšējo Soli"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -586,7 +584,7 @@ msgstr "OptimizÄ“t animÄciju"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation"
-msgstr ""
+msgstr "IztÄ«rÄ«Å¡anas AnimÄcija"
#: editor/animation_track_editor.cpp
msgid "Pick the node that will be animated:"
@@ -594,7 +592,7 @@ msgstr "IzvÄ“lies mezglu, kurÄ tiks animÄ“ta:"
#: editor/animation_track_editor.cpp
msgid "Use Bezier Curves"
-msgstr ""
+msgstr "Izmanto Bezjē Līknes"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -602,15 +600,15 @@ msgstr "Anim. OptimizÄ“tÄjs"
#: editor/animation_track_editor.cpp
msgid "Max. Linear Error:"
-msgstr ""
+msgstr "Maks. LineÄrÄ Kļūda:"
#: editor/animation_track_editor.cpp
msgid "Max. Angular Error:"
-msgstr ""
+msgstr "Maks. RotÄcijas Kļūda:"
#: editor/animation_track_editor.cpp
msgid "Max Optimizable Angle:"
-msgstr ""
+msgstr "Max. Optimizējamais Leņķis:"
#: editor/animation_track_editor.cpp
msgid "Optimize"
@@ -618,23 +616,23 @@ msgstr "Optimizēt"
#: editor/animation_track_editor.cpp
msgid "Remove invalid keys"
-msgstr ""
+msgstr "Noņemt nederÄ«gÄs atslÄ“gas"
#: editor/animation_track_editor.cpp
msgid "Remove unresolved and empty tracks"
-msgstr ""
+msgstr "Noņemt neatrisinÄtos un nedefinÄ“tos celiņus"
#: editor/animation_track_editor.cpp
msgid "Clean-up all animations"
-msgstr ""
+msgstr "IztÄ«rÄ«t visas animÄcijas"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr ""
+msgstr "IztÄ«rÄ«t AnimÄciju(as) (NEATGRIEZENISKI!)"
#: editor/animation_track_editor.cpp
msgid "Clean-Up"
-msgstr ""
+msgstr "Iztīrit"
#: editor/animation_track_editor.cpp
msgid "Scale Ratio:"
@@ -642,7 +640,7 @@ msgstr "Mēroga Attiecība:"
#: editor/animation_track_editor.cpp
msgid "Select Tracks to Copy"
-msgstr ""
+msgstr "Izvēlēties Celiņus ko Kopēt"
#: editor/animation_track_editor.cpp editor/editor_log.cpp
#: editor/editor_properties.cpp
@@ -651,33 +649,31 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Copy"
-msgstr ""
+msgstr "Kopēt"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select All/None"
-msgstr "Dzēst izvēlētos"
+msgstr "Izvēlēties Visus/Nevienu"
#: editor/animation_track_editor_plugins.cpp
-#, fuzzy
msgid "Add Audio Track Clip"
-msgstr "Audio klipi:"
+msgstr "Pievienot Audio Celiņa Klipu"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip Start Offset"
-msgstr ""
+msgstr "MainÄ«t Audio Celiņa ApgrieÅ¡anas SÄkuma KompensÄciju"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip End Offset"
-msgstr ""
+msgstr "MainÄ«t Audio Celiņa ApgrieÅ¡anas Beigu KompensÄciju"
#: editor/array_property_edit.cpp
msgid "Resize Array"
-msgstr ""
+msgstr "Mainīt Masīva Lielumu"
#: editor/array_property_edit.cpp
msgid "Change Array Value Type"
-msgstr ""
+msgstr "Mainīt Masīva Vērtības Tipu"
#: editor/array_property_edit.cpp
msgid "Change Array Value"
@@ -705,11 +701,11 @@ msgstr "%d sakritības."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
-msgstr ""
+msgstr "Atrast Gadījumu"
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Whole Words"
-msgstr ""
+msgstr "Visu VÄrdu"
#: editor/code_editor.cpp editor/rename_dialog.cpp
msgid "Replace"
@@ -730,13 +726,13 @@ msgstr "Standarts"
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
-msgstr ""
+msgstr "PÄrslÄ“gt Skriptu Paneli"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom In"
-msgstr "PietuvinÄt"
+msgstr "PalielinÄt"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
@@ -746,44 +742,43 @@ msgstr "AttÄlinÄt"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr "AtiestatÄ«t tÄlummaiņu"
+msgstr "AtiestatÄ«t TÄlummaiņu"
#: editor/code_editor.cpp
msgid "Warnings"
-msgstr ""
+msgstr "BrÄ«dinÄjumi"
#: editor/code_editor.cpp
msgid "Line and column numbers."
-msgstr ""
+msgstr "Rindu un kolonnu numuri."
#: editor/connections_dialog.cpp
msgid "Method in target node must be specified."
-msgstr ""
+msgstr "Metodi mÄ“rÄ·a mezglÄ nepiecieÅ¡ams specificÄ“t."
#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
msgstr ""
+"Mērķa metode netika atrasta. Specificējiet derīgu metodi vai pievienojiet "
+"skriptu mērķa mezglam."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect to Node:"
-msgstr "Savienot"
+msgstr "Savienot ar Mezglu:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect to Script:"
-msgstr "Savieno SignÄlu:"
+msgstr "Savieno ar Skriptu:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "From Signal:"
-msgstr "Savieno SignÄlu:"
+msgstr "No SignÄla:"
#: editor/connections_dialog.cpp
msgid "Scene does not contain any script."
-msgstr ""
+msgstr "Aina nesatur skriptu."
#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
@@ -804,48 +799,45 @@ msgstr "Noņemt"
#: editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
-msgstr ""
+msgstr "Pievienot Ekstra Izsaukuma Argumentu:"
#: editor/connections_dialog.cpp
msgid "Extra Call Arguments:"
-msgstr ""
+msgstr "Ekstra Izsaukuma Argumenti:"
#: editor/connections_dialog.cpp
msgid "Receiver Method:"
-msgstr ""
+msgstr "Saņemšanas Metode:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Advanced"
-msgstr "Balancēts"
+msgstr "Papildus"
#: editor/connections_dialog.cpp
msgid "Deferred"
-msgstr ""
+msgstr "Atlikts"
#: editor/connections_dialog.cpp
msgid ""
"Defers the signal, storing it in a queue and only firing it at idle time."
-msgstr ""
+msgstr "Atliek signÄlu, glabÄjot to rindÄ, un to izstaro tikai dÄ«kstÄvÄ“."
#: editor/connections_dialog.cpp
msgid "Oneshot"
-msgstr ""
+msgstr "Vienreiz"
#: editor/connections_dialog.cpp
msgid "Disconnects the signal after its first emission."
-msgstr ""
+msgstr "Atvieno signÄlu pÄ“c tÄ pirmÄs izstaroÅ¡anas."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Cannot connect signal"
-msgstr "Savieno SignÄlu:"
+msgstr "Nevar savienot signÄlu"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -861,9 +853,8 @@ msgid "Connect"
msgstr "Savienot"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Signal:"
-msgstr "SignÄli"
+msgstr "SignÄls:"
#: editor/connections_dialog.cpp
msgid "Connect '%s' to '%s'"
@@ -874,32 +865,30 @@ msgid "Disconnect '%s' from '%s'"
msgstr "Atvienot '%s' no '%s'"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Disconnect all from signal: '%s'"
-msgstr "Atvienot '%s' no '%s'"
+msgstr "Atvienot visus no signÄla: '%s'"
#: editor/connections_dialog.cpp
msgid "Connect..."
-msgstr ""
+msgstr "Savieno..."
#: editor/connections_dialog.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Disconnect"
-msgstr ""
+msgstr "Atvieno"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect a Signal to a Method"
-msgstr "Savieno SignÄlu:"
+msgstr "Savienot SignÄlu ar Metodi"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Edit Connection:"
-msgstr "Savieno SignÄlu:"
+msgstr "Izmainīt Savienojumu:"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
msgstr ""
+"Vai esat droÅ¡s(Å¡a), ka vÄ“laties noņemt visus savienojumus no \"%s\" signÄla?"
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
@@ -908,18 +897,19 @@ msgstr "SignÄli"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
+"Vai esat droÅ¡s(Å¡a), ka vÄ“laties noņemt visus savienojumus no Å¡Ä« signÄla?"
#: editor/connections_dialog.cpp
msgid "Disconnect All"
-msgstr ""
+msgstr "Atvienot Visu"
#: editor/connections_dialog.cpp
msgid "Edit..."
-msgstr ""
+msgstr "Rediģēt..."
#: editor/connections_dialog.cpp
msgid "Go To Method"
-msgstr ""
+msgstr "Doties Uz Metodi"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -952,7 +942,7 @@ msgstr "Meklēt:"
#: editor/property_selector.cpp editor/quick_open.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Matches:"
-msgstr ""
+msgstr "Sakritības:"
#: editor/create_dialog.cpp editor/editor_plugin_settings.cpp
#: editor/plugin_config_dialog.cpp
@@ -964,28 +954,32 @@ msgstr "Apraksts:"
#: editor/dependency_editor.cpp
msgid "Search Replacement For:"
-msgstr ""
+msgstr "MeklÄ“t AizstÄjÄ“ju PriekÅ¡:"
#: editor/dependency_editor.cpp
msgid "Dependencies For:"
-msgstr ""
+msgstr "Atkarības Priekš:"
#: editor/dependency_editor.cpp
msgid ""
"Scene '%s' is currently being edited.\n"
"Changes will only take effect when reloaded."
msgstr ""
+"Aina '%s' pašlaik tiek rediģēta.\n"
+"Izmaiņas stÄsies spÄ“kÄ, kad tÄ tiks pÄrlÄdÄ“ta."
#: editor/dependency_editor.cpp
msgid ""
"Resource '%s' is in use.\n"
"Changes will only take effect when reloaded."
msgstr ""
+"Resurss '%s' tiek izmantots.\n"
+"Izmaiņas stÄsies spÄ“kÄ, kad tas tiks pÄrlÄdÄ“ts."
#: editor/dependency_editor.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
-msgstr ""
+msgstr "Atkarības"
#: editor/dependency_editor.cpp
msgid "Resource"
@@ -994,23 +988,23 @@ msgstr "Resurs"
#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp
#: editor/project_manager.cpp editor/project_settings_editor.cpp
msgid "Path"
-msgstr ""
+msgstr "Ceļš"
#: editor/dependency_editor.cpp
msgid "Dependencies:"
-msgstr ""
+msgstr "Atkarības:"
#: editor/dependency_editor.cpp
msgid "Fix Broken"
-msgstr ""
+msgstr "Labot Salauzto"
#: editor/dependency_editor.cpp
msgid "Dependency Editor"
-msgstr ""
+msgstr "Atkarību Redaktors"
#: editor/dependency_editor.cpp
msgid "Search Replacement Resource:"
-msgstr ""
+msgstr "MeklÄ“t AizstÄjÄ“ja Resursu:"
#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp
#: editor/editor_help_search.cpp editor/editor_node.cpp
@@ -1028,7 +1022,7 @@ msgstr "Īpašnieki:"
#: editor/dependency_editor.cpp
msgid "Remove selected files from the project? (Can't be restored)"
-msgstr ""
+msgstr "Vai noņemt izvēlētos failus no projekta? (Netiks atjaunoti)"
#: editor/dependency_editor.cpp
msgid ""
@@ -1049,9 +1043,8 @@ msgid "Error loading:"
msgstr "Kļūme lÄdÄ“jot:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Load failed due to missing dependencies:"
-msgstr "Ainu nevarÄ“ja ielÄdÄ“t dēļ neatrastiem dependencÄ«em:"
+msgstr "IelÄdÄ“Å¡ana apturÄ“ta, jo trÅ«kst ceļu uz pamata failiem:"
#: editor/dependency_editor.cpp editor/editor_node.cpp
msgid "Open Anyway"
@@ -1062,9 +1055,8 @@ msgid "Which action should be taken?"
msgstr "Kuru darbību izdarīt?"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Fix Dependencies"
-msgstr "Salabot dependecīju"
+msgstr "Salabot Atkarības"
#: editor/dependency_editor.cpp
msgid "Errors loading!"
@@ -1072,16 +1064,15 @@ msgstr "Kļūmes lÄdÄ“jot!"
#: editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr ""
+msgstr "Vai neatgriezeniski izdzēst %d priekšmetu(us)? (NEATGRIEZENISKI!)"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Show Dependencies"
-msgstr "Salabot dependecīju"
+msgstr "RÄdÄ«t Ceļus uz Pamata Failiem"
#: editor/dependency_editor.cpp
msgid "Orphan Resource Explorer"
-msgstr ""
+msgstr "BÄreņu Resursu PÄrlÅ«ks"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
@@ -1097,15 +1088,15 @@ msgstr "Pieder"
#: editor/dependency_editor.cpp
msgid "Resources Without Explicit Ownership:"
-msgstr ""
+msgstr "Resursi Bez Skaidra Īpašnieka:"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Key"
-msgstr ""
+msgstr "MainÄ«t VÄrdnÄ«cas AtslÄ“gu"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Value"
-msgstr ""
+msgstr "MainÄ«t VÄrdnÄ«cas VÄ“rtÄ«bu"
#: editor/editor_about.cpp
msgid "Thanks from the Godot community!"
@@ -1168,22 +1159,20 @@ msgid "License"
msgstr "Licence"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Third-party Licenses"
-msgstr "TreÅ¡Äs partijas Licence"
+msgstr "TreÅ¡Äs partijas Licences"
#: editor/editor_about.cpp
-#, fuzzy
msgid ""
"Godot Engine relies on a number of third-party free and open source "
"libraries, all compatible with the terms of its MIT license. The following "
"is an exhaustive list of all such third-party components with their "
"respective copyright statements and license terms."
msgstr ""
-"Godot DzinÄ“js paļaujas uz citiem treÅ¡Äs partijas brÄ«vajÄm un atvÄ“rtÄ avota "
-"bibliotÄ“kÄm, kuri visi sader ar to MIT licences nosacÄ«jumiem. SekojoÅ¡ais ir "
-"saraksts ar Å¡Ä«m treÅ¡Äs partijas komponentÄ“m ar to autortiesÄ«bu apgalvojumiem "
-"un licences nosacījumiem."
+"Godot Konstruktors paļaujas uz citiem treÅ¡Äs partijas brÄ«vajÄm un atvÄ“rtÄ "
+"avota bibliotÄ“kÄm, kuras ir saderÄ«gas ar to MIT licences nosacÄ«jumiem. "
+"SekojoÅ¡ais ir saraksts ar Å¡Ä«m treÅ¡Äs partijas komponentÄ“m ar to autortiesÄ«bu "
+"apgalvojumiem un licences nosacījumiem."
#: editor/editor_about.cpp
msgid "All Components"
@@ -1198,38 +1187,37 @@ msgid "Licenses"
msgstr "Licences"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Error opening package file, not in ZIP format."
-msgstr "Kļūme atverot arhÄ«vu failu, nav ZIP formÄtÄ."
+msgstr "Kļūda atverot failu arhÄ«vu, nav ZIP formÄtÄ."
#: editor/editor_asset_installer.cpp
msgid "%s (Already Exists)"
-msgstr ""
+msgstr "%s (Jau Eksistē)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
-msgstr ""
+msgstr "Nekompresēti Līdzekļi"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "The following files failed extraction from package:"
-msgstr ""
+msgstr "Sekojošie faili netika izvilkti no paketes:"
#: editor/editor_asset_installer.cpp
msgid "And %s more files."
-msgstr ""
+msgstr "Un %s vēl faili."
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Package installed successfully!"
-msgstr ""
+msgstr "Pakete instalēta sekmīgi!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Success!"
-msgstr "IzdevÄs!"
+msgstr "MÄ“rÄ·is sasniegts!"
#: editor/editor_asset_installer.cpp
msgid "Package Contents:"
-msgstr ""
+msgstr "Paketes Saturs:"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
@@ -1237,7 +1225,7 @@ msgstr "Ieinstalēt"
#: editor/editor_asset_installer.cpp
msgid "Package Installer"
-msgstr ""
+msgstr "Paketes InstalÄ“tÄjs"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1257,47 +1245,47 @@ msgstr "Nomainīt Audio Kopnes Skaļumu"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
-msgstr ""
+msgstr "PÄrslÄ“gt Audio Busa Solo"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Mute"
-msgstr ""
+msgstr "PÄrslÄ“gt Audio Busa ApklusinÄÅ¡anu"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Bypass Effects"
-msgstr ""
+msgstr "PÄrslÄ“gt Audio Busa Å untÄ“Å¡anas Efektu"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
-msgstr ""
+msgstr "Izvēlēties Audio Busa Sūtīšanu"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus Effect"
-msgstr ""
+msgstr "Pievienot Audio Busa Efektu"
#: editor/editor_audio_buses.cpp
msgid "Move Bus Effect"
-msgstr ""
+msgstr "PÄrvietot Busa Efektu"
#: editor/editor_audio_buses.cpp
msgid "Delete Bus Effect"
-msgstr ""
+msgstr "Izdzēst Busa Efektu"
#: editor/editor_audio_buses.cpp
msgid "Drag & drop to rearrange."
-msgstr ""
+msgstr "Velc un atlaid, lai pÄrkÄrtotu."
#: editor/editor_audio_buses.cpp
msgid "Solo"
-msgstr ""
+msgstr "Solo"
#: editor/editor_audio_buses.cpp
msgid "Mute"
-msgstr ""
+msgstr "ApklusinÄt"
#: editor/editor_audio_buses.cpp
msgid "Bypass"
-msgstr ""
+msgstr "Å unts"
#: editor/editor_audio_buses.cpp
msgid "Bus options"
@@ -1306,7 +1294,7 @@ msgstr "Kopnes iestatījumi"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
-msgstr ""
+msgstr "Izveidot DublikÄtu"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
@@ -1369,9 +1357,8 @@ msgid "Invalid file, not an audio bus layout."
msgstr ""
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Error saving file: %s"
-msgstr "Kļūmes lÄdÄ“jot!"
+msgstr "Kļūda saglabÄjot failu: %s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
@@ -1420,25 +1407,18 @@ msgid "Valid characters:"
msgstr "Derīgie simboli:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing engine class name."
msgstr ""
-"Nederīgs nosaukums. Nedrīkst sadurties ar eksistējošu dzinēja klases "
-"nosaukumu."
+"Nosaukums nedrÄ«kst bÅ«t vienÄds ar eksistÄ“joÅ¡u konstruktora klases nosaukumu."
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing built-in type name."
-msgstr ""
-"Nederīgs nosaukums. Nedrīkst sadurties ar eksistējošu iebūvēto tipa "
-"nosaukumu."
+msgstr "Nosaukums nedrÄ«kst bÅ«t vienÄds ar eksistÄ“joÅ¡u iebÅ«vÄ“ta tipa nosaukumu."
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing global constant name."
msgstr ""
-"Nederīgs nosaukums. Nedrīkst sadurties ar eksistējošu dzinēja klases "
-"nosaukumu."
+"Nosaukums nedrÄ«kst bÅ«t vienÄds ar eksistÄ“joÅ¡u globÄlo konstantes nosaukumu."
#: editor/editor_autoload_settings.cpp
msgid "Keyword cannot be used as an autoload name."
@@ -1472,17 +1452,8 @@ msgstr "Iespējot"
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "Nederīgs nosaukums."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -1617,9 +1588,8 @@ msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "3D Editor"
-msgstr "Rediģēt"
+msgstr "3D Redaktors"
#: editor/editor_feature_profile.cpp
msgid "Script Editor"
@@ -1666,23 +1636,20 @@ msgid "(Properties Disabled)"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(Editor Disabled)"
-msgstr "Atspējots"
+msgstr "(Redaktors Izslēgts)"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Options:"
-msgstr "Apraksts:"
+msgstr "Klases Iespējas:"
#: editor/editor_feature_profile.cpp
msgid "Enable Contextual Editor"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enabled Properties:"
-msgstr "AnimÄcijas Ä«paÅ¡Ä«bas."
+msgstr "Ieslēgtie Mainīgie:"
#: editor/editor_feature_profile.cpp
msgid "Enabled Features:"
@@ -1703,9 +1670,8 @@ msgid ""
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Error saving profile to path: '%s'."
-msgstr "Kļūmes lÄdÄ“jot!"
+msgstr "Kļūda saglabÄjot profilu uz ceļu: '%s'."
#: editor/editor_feature_profile.cpp
msgid "Unset"
@@ -1716,9 +1682,8 @@ msgid "Current Profile:"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Make Current"
-msgstr "Izveidot Funkciju"
+msgstr "Aktualizēt"
#: editor/editor_feature_profile.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
@@ -1736,14 +1701,12 @@ msgid "Export"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Available Profiles:"
-msgstr "AnimÄcijas Ä«paÅ¡Ä«bas."
+msgstr "Pieejamie Profili:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Options"
-msgstr "Apraksts:"
+msgstr "Klases Iespējas"
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -1778,18 +1741,16 @@ msgid "File Exists, Overwrite?"
msgstr ""
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select This Folder"
-msgstr "Izvēlēties šo Mapi"
+msgstr "Izvēlēties Šo Mapi"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Copy Path"
msgstr ""
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-#, fuzzy
msgid "Open in File Manager"
-msgstr "Atvērt"
+msgstr "AtvÄ“rt Failu PÄrlÅ«kÄ"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/filesystem_dock.cpp editor/project_manager.cpp
@@ -1877,23 +1838,20 @@ msgid "Move Favorite Down"
msgstr ""
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to previous folder."
-msgstr "Doties uz iepriekšējo soli"
+msgstr "Doties uz iepriekšējo mapi."
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to next folder."
-msgstr "Doties uz nÄkamo soli"
+msgstr "Doties uz nÄkamo mapi."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Go to parent folder."
msgstr ""
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Refresh files."
-msgstr "Meklēt:"
+msgstr "Atjaunot failus."
#: editor/editor_file_dialog.cpp
msgid "(Un)favorite current folder."
@@ -1961,9 +1919,8 @@ msgid "Inherited by:"
msgstr ""
#: editor/editor_help.cpp
-#, fuzzy
msgid "Description"
-msgstr "Apraksts:"
+msgstr "Apraksts"
#: editor/editor_help.cpp
msgid "Online Tutorials"
@@ -1978,9 +1935,8 @@ msgid "override:"
msgstr ""
#: editor/editor_help.cpp
-#, fuzzy
msgid "default:"
-msgstr "IelÄdÄ“t NoklusÄ“jumu"
+msgstr "pēc noklusējuma:"
#: editor/editor_help.cpp
msgid "Methods"
@@ -1999,9 +1955,8 @@ msgid "Constants"
msgstr ""
#: editor/editor_help.cpp
-#, fuzzy
msgid "Property Descriptions"
-msgstr "Apraksts:"
+msgstr "Mainīgo Apraksts"
#: editor/editor_help.cpp
msgid "(value)"
@@ -2014,9 +1969,8 @@ msgid ""
msgstr ""
#: editor/editor_help.cpp
-#, fuzzy
msgid "Method Descriptions"
-msgstr "Apraksts:"
+msgstr "Metožu Apraksts"
#: editor/editor_help.cpp
msgid ""
@@ -2050,9 +2004,8 @@ msgid "Methods Only"
msgstr ""
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Signals Only"
-msgstr "SignÄli"
+msgstr "Tikai SignÄli"
#: editor/editor_help_search.cpp
msgid "Constants Only"
@@ -2079,9 +2032,8 @@ msgid "Method"
msgstr ""
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Signal"
-msgstr "SignÄli"
+msgstr "SignÄls"
#: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constant"
@@ -2112,9 +2064,8 @@ msgid "Output:"
msgstr ""
#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Copy Selection"
-msgstr "Noņemt Izvēlēto"
+msgstr "Kopēt Izvēlēto"
#: editor/editor_log.cpp editor/editor_network_profiler.cpp
#: editor/editor_profiler.cpp editor/editor_properties.cpp
@@ -2350,9 +2301,8 @@ msgid "Open Base Scene"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Quick Open..."
-msgstr "Atvērt"
+msgstr "Ātri Atvērt..."
#: editor/editor_node.cpp
msgid "Quick Open Scene..."
@@ -2423,11 +2373,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Atvērt Aizvērto Ainu"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2473,9 +2426,8 @@ msgid "Close Scene"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reopen Closed Scene"
-msgstr "Atjaunina Ainu"
+msgstr "Atvērt Aizvērto Ainu"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
@@ -2568,14 +2520,12 @@ msgid "Play This Scene"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Close Tab"
-msgstr "Aizvērt"
+msgstr "Aizvērt Cilni"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Undo Close Tab"
-msgstr "Aizvērt"
+msgstr "Atcelt Cilnes Aizvēršanu"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Close Other Tabs"
@@ -2586,9 +2536,8 @@ msgid "Close Tabs to the Right"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Close All Tabs"
-msgstr "Aizvērt"
+msgstr "Aizvērt Visas Cilnes"
#: editor/editor_node.cpp
msgid "Switch Scene Tab"
@@ -2631,9 +2580,8 @@ msgid "Go to previously opened scene."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Copy Text"
-msgstr "Noņemt Izvēlēto"
+msgstr "Kopēt Tekstu"
#: editor/editor_node.cpp
msgid "Next tab"
@@ -2672,9 +2620,8 @@ msgid "Save Scene"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Save All Scenes"
-msgstr "SaglabÄt KÄ"
+msgstr "SaglabÄt Visas Ainas"
#: editor/editor_node.cpp
msgid "Convert To..."
@@ -2699,10 +2646,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -2736,9 +2679,8 @@ msgid "Install Android Build Template..."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Project Data Folder"
-msgstr "Projekta DibinÄtÄji"
+msgstr "Atvērt Projekta Datu Mapi"
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
@@ -2905,11 +2847,11 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr ""
+msgstr "Sabiedrība"
#: editor/editor_node.cpp
msgid "About"
-msgstr ""
+msgstr "Par"
#: editor/editor_node.cpp
msgid "Play the project."
@@ -2961,9 +2903,8 @@ msgid "Spins when the editor window redraws."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Continuously"
-msgstr "NepÄrtraukti"
+msgstr "NepÄrtraukti Atjaunot"
#: editor/editor_node.cpp
msgid "Update When Changed"
@@ -3093,9 +3034,8 @@ msgid "Thumbnail..."
msgstr ""
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Main Script:"
-msgstr "Savieno SignÄlu:"
+msgstr "Galvenais Skripts:"
#: editor/editor_plugin_settings.cpp
msgid "Edit Plugin"
@@ -3167,9 +3107,8 @@ msgid "Calls"
msgstr ""
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Edit Text:"
-msgstr "Savieno SignÄlu:"
+msgstr "Rediģēt Tekstu:"
#: editor/editor_properties.cpp editor/script_create_dialog.cpp
msgid "On"
@@ -3192,9 +3131,8 @@ msgid "Assign..."
msgstr ""
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Invalid RID"
-msgstr "Nederīgs nosaukums."
+msgstr "Nederīgs RID"
#: editor/editor_properties.cpp
msgid ""
@@ -3313,6 +3251,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3437,9 +3379,8 @@ msgid "Download Complete."
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cannot remove temporary file:"
-msgstr "Nevar noņemt:"
+msgstr "Nevar noņemt pagaidu failu:"
#: editor/export_template_manager.cpp
msgid ""
@@ -3448,9 +3389,8 @@ msgid ""
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error requesting URL:"
-msgstr "Kļūme lÄdÄ“jot:"
+msgstr "Kļūda pieprasot URL:"
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror..."
@@ -3519,9 +3459,8 @@ msgid "Remove Template"
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select Template File"
-msgstr "Izvēlēties šo Mapi"
+msgstr "Izvēlēties Šablona Failu"
#: editor/export_template_manager.cpp
msgid "Godot Export Templates"
@@ -3540,9 +3479,8 @@ msgid "Select mirror from list: (Shift+Click: Open in Browser)"
msgstr ""
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Favorites"
-msgstr "Favorīti:"
+msgstr "Favorīti"
#: editor/filesystem_dock.cpp
msgid "Status: Import of file failed. Please fix file and reimport manually."
@@ -3605,28 +3543,24 @@ msgid "New Inherited Scene"
msgstr ""
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Set As Main Scene"
-msgstr "SaglabÄt KÄ"
+msgstr "IestatÄ«t KÄ Galveno Ainu"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Open Scenes"
-msgstr "Atjaunina Ainu"
+msgstr "Atvērt Ainas"
#: editor/filesystem_dock.cpp
msgid "Instance"
msgstr ""
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Add to Favorites"
-msgstr "Favorīti:"
+msgstr "Pievienot Favorītiem"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Remove from Favorites"
-msgstr "Favorīti:"
+msgstr "Noņemt no Favorītiem"
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies..."
@@ -3649,18 +3583,16 @@ msgid "Move To..."
msgstr ""
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Scene..."
-msgstr "Resurs"
+msgstr "Jauna Aina..."
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "New Script..."
msgstr ""
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Resource..."
-msgstr "Resurs"
+msgstr "Jauns Resurss..."
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
@@ -3680,14 +3612,12 @@ msgid "Rename"
msgstr ""
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Previous Folder/File"
-msgstr "Izvēlēties šo Mapi"
+msgstr "IepriekÅ¡Ä“jÄ Mape/Fails"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Next Folder/File"
-msgstr "Izvēlēties šo Mapi"
+msgstr "NÄkamÄ Mape/Fails"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
@@ -3698,9 +3628,8 @@ msgid "Toggle Split Mode"
msgstr ""
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Search files"
-msgstr "Meklēt:"
+msgstr "Meklēt failus"
#: editor/filesystem_dock.cpp
msgid ""
@@ -3721,18 +3650,16 @@ msgid "Overwrite"
msgstr ""
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Create Scene"
-msgstr "Izveidot"
+msgstr "Izveidot Ainu"
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
msgstr ""
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Find in Files"
-msgstr "Nederīgs nosaukums."
+msgstr "Atrast Failos"
#: editor/find_in_files.cpp
msgid "Find:"
@@ -3770,18 +3697,16 @@ msgid "Find: "
msgstr ""
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace: "
-msgstr "Aizvietot"
+msgstr "Aizvietot: "
#: editor/find_in_files.cpp
msgid "Replace all (no undo)"
msgstr ""
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Searching..."
-msgstr "Meklēt:"
+msgstr "Meklē..."
#: editor/find_in_files.cpp
msgid "Search complete"
@@ -3800,19 +3725,16 @@ msgid "Group name already exists."
msgstr ""
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Invalid group name."
-msgstr "Nederīgs nosaukums."
+msgstr "Nederīgs grupas nosaukums."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Rename Group"
-msgstr "PÄrsaukt Audio Kopni"
+msgstr "PÄrsaukt Grupu"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Delete Group"
-msgstr "Izdzēst"
+msgstr "Izdzēst Grupu"
#: editor/groups_editor.cpp editor/node_dock.cpp
msgid "Groups"
@@ -3836,9 +3758,8 @@ msgid "Empty groups will be automatically removed."
msgstr ""
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Group Editor"
-msgstr "Rediģēt"
+msgstr "Grupas Redaktors"
#: editor/groups_editor.cpp
msgid "Manage Groups"
@@ -3918,13 +3839,16 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
#: editor/import_dock.cpp
-#, fuzzy
msgid "%d Files"
-msgstr "Nederīgs nosaukums."
+msgstr "%d FailÄ"
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
@@ -3939,9 +3863,8 @@ msgid "Import As:"
msgstr ""
#: editor/import_dock.cpp
-#, fuzzy
msgid "Preset"
-msgstr "AtiestatÄ«t tÄlummaiņu"
+msgstr "Sagatave"
#: editor/import_dock.cpp
msgid "Reimport"
@@ -4075,16 +3998,14 @@ msgstr ""
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon"
-msgstr "Izveidot"
+msgstr "Izveidot Daudzstūri"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Create points."
-msgstr "Izveidot"
+msgstr "Izveidot punktus."
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid ""
@@ -4099,9 +4020,8 @@ msgid "Erase points."
msgstr ""
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Edit Polygon"
-msgstr "Izveidot"
+msgstr "Rediģēt Daudzstūri"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Insert Point"
@@ -4127,9 +4047,8 @@ msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Load..."
-msgstr "IelÄdÄ“t"
+msgstr "IelÄdÄ“..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4152,15 +4071,13 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Node Point"
-msgstr "Favorīti:"
+msgstr "Pievienot Mezgla Punktu"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Animation Point"
-msgstr "AnimÄciju Cilpa"
+msgstr "Pievienot AnimÄcijas Punktu"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Remove BlendSpace1D Point"
@@ -4209,18 +4126,16 @@ msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Open Animation Node"
-msgstr "AnimÄcijas tÄlummaiņa."
+msgstr "AtvÄ“rt AnimÄcijas Mezglu"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Triangle already exists."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Triangle"
-msgstr "Pievienot celiņu"
+msgstr "Pievienot Trijstūri"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Change BlendSpace2D Limits"
@@ -4295,9 +4210,8 @@ msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Nodes Connected"
-msgstr "Savienot"
+msgstr "Mezgli Savienoti"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -4305,15 +4219,13 @@ msgid "Nodes Disconnected"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Set Animation"
-msgstr "OptimizÄ“t animÄciju"
+msgstr "IestatÄ«t AnimÄciju"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Delete Node"
-msgstr "Izdzēst"
+msgstr "Izdzēst Mezglu"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/scene_tree_dock.cpp
@@ -4325,9 +4237,8 @@ msgid "Toggle Filter On/Off"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Change Filter"
-msgstr "Nomainīt"
+msgstr "Nomainīt Filtru"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
@@ -4345,19 +4256,16 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Anim Clips"
-msgstr "AnimÄcijas klipi:"
+msgstr "Anim. Klipi"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Audio Clips"
-msgstr "Audio klipi:"
+msgstr "Audio Klipi"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Functions"
-msgstr "Funkcijas:"
+msgstr "Funkcijas"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
@@ -4375,9 +4283,8 @@ msgid "Edit Filtered Tracks:"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Enable Filtering"
-msgstr "Nomainīt"
+msgstr "Ieslēgt Filtrēšanu"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
@@ -4406,9 +4313,8 @@ msgid "Remove Animation"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Invalid animation name!"
-msgstr "Nederīgs nosaukums."
+msgstr "NederÄ«gs animÄcijas nosaukums!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation name already exists!"
@@ -4436,9 +4342,8 @@ msgid "Duplicate Animation"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation to copy!"
-msgstr "AnimÄcijas tÄlummaiņa."
+msgstr "Nav animÄcijas ko kopÄ“t!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation resource on clipboard!"
@@ -4592,14 +4497,12 @@ msgid "Move Node"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition exists!"
-msgstr "Pievienot celiņu"
+msgstr "PÄreja eksistÄ“!"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Add Transition"
-msgstr "Pievienot celiņu"
+msgstr "Pievienot PÄreju"
#: editor/plugins/animation_state_machine_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -4635,9 +4538,8 @@ msgid "No playback resource set at path: %s."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Node Removed"
-msgstr "Noņemt"
+msgstr "Mezgls Noņemts"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Transition Removed"
@@ -4655,19 +4557,16 @@ msgid ""
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Create new nodes."
-msgstr "Izveidot Jaunu %s"
+msgstr "Izveidot jaunus mezglus."
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Connect nodes."
-msgstr "Savienot"
+msgstr "Savienot mezglus."
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Remove selected node or transition."
-msgstr "Noņemt Izvēlēto"
+msgstr "Noņemt izvÄ“lÄ“to mezglu vai pÄreju."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Toggle autoplay this animation on start, restart or seek to zero."
@@ -4682,9 +4581,8 @@ msgid "Transition: "
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Play Mode:"
-msgstr "Mēroga Attiecība:"
+msgstr "Atskaņošanas Režīms:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -4860,9 +4758,8 @@ msgid "Request failed."
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Cannot save response to:"
-msgstr "Nevar noņemt:"
+msgstr "Nevar saglabÄt atbildi uz:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Write error."
@@ -4925,9 +4822,8 @@ msgid "Idle"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Install..."
-msgstr "Ieinstalēt"
+msgstr "Instalēt..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
@@ -4958,14 +4854,12 @@ msgid "Name (Z-A)"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (A-Z)"
-msgstr "Licence"
+msgstr "Licence (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (Z-A)"
-msgstr "Licence"
+msgstr "Licence (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "First"
@@ -5025,9 +4919,8 @@ msgid "Testing"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Loading..."
-msgstr "IelÄdÄ“t"
+msgstr "IelÄdÄ“t..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
@@ -5088,37 +4981,32 @@ msgid "Rotation Step:"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Scale Step:"
-msgstr "Mēroga Attiecība:"
+msgstr "Mainīt Soļa Mērogu:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Vertical Guide"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Vertical Guide"
-msgstr "Izveidot"
+msgstr "Izveidot VertikÄlu Vadotni"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Vertical Guide"
-msgstr "Noņemt Izvēlēto"
+msgstr "Noņemt VertikÄlo Vadotni"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Horizontal Guide"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Horizontal Guide"
-msgstr "Izveidot Jaunu %s"
+msgstr "Izveidot HorizontÄlu Vadotni"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Horizontal Guide"
-msgstr "Noņemt Izvēlēto"
+msgstr "Noņemt HorizontÄlo Vadotni"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create Horizontal and Vertical Guides"
@@ -5201,18 +5089,16 @@ msgid "Center"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Left Wide"
-msgstr "LineÄrs"
+msgstr "Pa Kreisi, Plašs"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Top Wide"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Right Wide"
-msgstr "LineÄrs"
+msgstr "Pa labi, Plašs"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Bottom Wide"
@@ -5231,9 +5117,8 @@ msgid "Full Rect"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Keep Ratio"
-msgstr "Mēroga Attiecība:"
+msgstr "Ievērot Attiecību"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Anchors only"
@@ -5273,24 +5158,21 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Group Selected"
-msgstr "Noņemt Izvēlēto"
+msgstr "Grupa Izvēlēta"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Ungroup Selected"
-msgstr "Noņemt Izvēlēto"
+msgstr "PÄrtraukt IzvÄ“lÄ“tÄ GrupÄ“Å¡anu"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Clear Guides"
-msgstr "Izveidot"
+msgstr "Notīrīt Vadotnes"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create Custom Bone(s) from Node(s)"
@@ -5317,9 +5199,8 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
-#, fuzzy
msgid "Zoom Reset"
-msgstr "AttÄlinÄt"
+msgstr "AtiestatÄ«t TuvinÄjumu"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5354,9 +5235,8 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale Mode"
-msgstr "Mēroga Attiecība:"
+msgstr "Mēroga Režīms"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5374,9 +5254,8 @@ msgid "Pan Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Ruler Mode"
-msgstr "Mēroga Attiecība:"
+msgstr "LineÄla Režīms"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle smart snapping."
@@ -5553,14 +5432,12 @@ msgid ""
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Auto Insert Key"
-msgstr "Anim ievietot atslēgievietni"
+msgstr "AutomÄtiski Ievietot AtslÄ“gu"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Animation Key and Pose Options"
-msgstr "AnimÄcijas Garums (sekundes)"
+msgstr "AnimÄcijas AtslÄ“ga un Pozas IestatÄ«jumi"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
@@ -5609,9 +5486,8 @@ msgid "Error instancing scene from %s"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Change Default Type"
-msgstr "Nomainīt %s Tipu"
+msgstr "Nomainīt Noklusējuma Tipu"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5620,9 +5496,8 @@ msgid ""
msgstr ""
#: editor/plugins/collision_polygon_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon3D"
-msgstr "Izveidot"
+msgstr "Izveidot Daudzstūris3D"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Edit Poly"
@@ -5741,29 +5616,24 @@ msgid "Load Curve Preset"
msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Add Point"
-msgstr "Favorīti:"
+msgstr "Pievienot Punktu"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove Point"
-msgstr "Noņemt Izvēlēto"
+msgstr "Noņemt Punktu"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Left Linear"
-msgstr "LineÄrs"
+msgstr "Pa Kreisi, LineÄrs"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Right Linear"
-msgstr "LineÄrs"
+msgstr "Pa Labi, LineÄrs"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Load Preset"
-msgstr "IelÄdÄ“t NoklusÄ“jumu"
+msgstr "IelÄdÄ“t Sagatavi"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Remove Curve Point"
@@ -5834,9 +5704,8 @@ msgid "Couldn't create a single convex collision shape."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Single Convex Shape"
-msgstr "Izveidot Jaunu %s"
+msgstr "Izveidot Vienu Izliektu Formu"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Can't create multiple convex collision shapes for the scene root."
@@ -5847,9 +5716,8 @@ msgid "Couldn't create any collision shapes."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Multiple Convex Shapes"
-msgstr "Izveidot Jaunu %s"
+msgstr "Izveidot VairÄkas Izliektas Formas"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
@@ -5917,9 +5785,8 @@ msgid ""
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Single Convex Collision Sibling"
-msgstr "Izveidot"
+msgstr "Izveidot Vienu Izliektu Sadursmes Uzmavu"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -5928,9 +5795,8 @@ msgid ""
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Multiple Convex Collision Siblings"
-msgstr "Izveidot"
+msgstr "Izveidot VairÄkas Izliektas Sadursmes Uzmavas"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6591,14 +6457,12 @@ msgid "Error saving file!"
msgstr "Kļūmes lÄdÄ“jot!"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error while saving theme."
-msgstr "Kļūmes lÄdÄ“jot!"
+msgstr "Kļūda saglabÄjot motÄ«vu."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error Saving"
-msgstr "Kļūme lÄdÄ“jot:"
+msgstr "Kļūda SaglabÄjot"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
@@ -6606,9 +6470,8 @@ msgid "Error importing theme."
msgstr "Kļūda lÄdÄ“jot fontu."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error Importing"
-msgstr "Kļūme lÄdÄ“jot:"
+msgstr "Kļūda Importējot"
#: editor/plugins/script_editor_plugin.cpp
msgid "New Text File..."
@@ -6620,9 +6483,8 @@ msgid "Open File"
msgstr "Atvērt"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Save File As..."
-msgstr "SaglabÄt KÄ"
+msgstr "SaglabÄt Failu KÄ..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Can't obtain the script for running."
@@ -6712,9 +6574,8 @@ msgid "File"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Open..."
-msgstr "Atvērt"
+msgstr "Atvērt..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reopen Closed Script"
@@ -6835,9 +6696,8 @@ msgid "Debugger"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Search Results"
-msgstr "Meklēt:"
+msgstr "MeklÄ“Å¡anas RezultÄti"
#: editor/plugins/script_editor_plugin.cpp
msgid "Clear Recent Scripts"
@@ -6857,19 +6717,18 @@ msgid "Target"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid ""
"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'."
-msgstr "Atvienot '%s' no '%s'"
+msgstr ""
+"TrÅ«kst savienoÅ¡anas metode '%s' signÄlam '%s' no mezgla '%s' uz mezglu '%s'."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Line"
-msgstr "Rinda:"
+msgid "[Ignore]"
+msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
+msgid "Line"
+msgstr "Rinda"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
@@ -7022,14 +6881,12 @@ msgid "Remove All Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Function..."
-msgstr "Izveidot Funkciju"
+msgstr "Doties uz Funkciju..."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Line..."
-msgstr "Doties uz Rindu"
+msgstr "Doties uz Rindu..."
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -7348,6 +7205,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -7700,9 +7566,8 @@ msgid "Loop"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Animation Frames:"
-msgstr "AnimÄcijas Ä«paÅ¡Ä«bas."
+msgstr "AnimÄcijas Kadri:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
#, fuzzy
@@ -7960,9 +7825,8 @@ msgid "Erase Selection"
msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Fix Invalid Tiles"
-msgstr "Nederīgs nosaukums."
+msgstr "Salabot NederÄ«gÄs FlÄ«zes"
#: editor/plugins/tile_map_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8053,9 +7917,8 @@ msgid "Add Texture(s) to TileSet."
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove selected Texture from TileSet."
-msgstr "Noņemt Izvēlēto"
+msgstr "Noņemt izvÄ“lÄ“tÄs TekstÅ«ras no Flīžu Komplekta."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
@@ -8154,9 +8017,8 @@ msgid "Priority Mode"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Icon Mode"
-msgstr "Mēroga Attiecība:"
+msgstr "Ikonu Režīms"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Z Index Mode"
@@ -8167,23 +8029,20 @@ msgid "Copy bitmask."
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Paste bitmask."
-msgstr "Ielīmēt celiņus"
+msgstr "Ielīmēt bitu masku."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Erase bitmask."
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create a new rectangle."
-msgstr "Izveidot Jaunu %s"
+msgstr "Izveidot jaunu taisnstūri."
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create a new polygon."
-msgstr "Izveidot"
+msgstr "Izveidot jaunu daudzstūri."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Keep polygon inside region Rect."
@@ -8203,9 +8062,9 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove selected texture? This will remove all tiles which use it."
-msgstr "Noņemt Izvēlēto"
+msgstr ""
+"Noņemt Izvēlēto tekstūru? Šī darbība noņems visas flīzes, kas to izmanto."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "You haven't selected a texture to remove."
@@ -8235,9 +8094,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete selected Rect."
-msgstr "Izdzēst izvēlētos failus?"
+msgstr "Izdzēst izvēlēto Taisnstūri."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -8246,9 +8104,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete polygon."
-msgstr "Izveidot"
+msgstr "Izdzēst daudzstūri."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -8485,9 +8342,8 @@ msgid "(GLES3 only)"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Add Output"
-msgstr "Favorīti:"
+msgstr "Pievienot Izeju"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Scalar"
@@ -8506,9 +8362,8 @@ msgid "Sampler"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Add input port"
-msgstr "Favorīti:"
+msgstr "Pievienot ieejas pieslēgvietu"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add output port"
@@ -8593,9 +8448,8 @@ msgid "Light"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Show resulted shader code."
-msgstr "Izveidot Jaunu %s"
+msgstr "AttÄ“lot rezultÄ“joÅ¡o Ä“notÄja kodu."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -8603,18 +8457,16 @@ msgid "Create Shader Node"
msgstr "Izveidot Jaunu %s"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color function."
-msgstr "Izveidot Funkciju"
+msgstr "KrÄsas funkcija."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color operator."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Grayscale function."
-msgstr "Izveidot Funkciju"
+msgstr "Pelēktoņu funkcija."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts HSV vector to RGB equivalent."
@@ -8625,9 +8477,8 @@ msgid "Converts RGB vector to HSV equivalent."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Sepia function."
-msgstr "Izveidot Funkciju"
+msgstr "SÄ“pija funkcija."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Burn operator."
@@ -8780,9 +8631,8 @@ msgid "'%s' input parameter for vertex and fragment shader mode."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar function."
-msgstr "Mēroga Izvēle"
+msgstr "SkalÄra funkcija."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Scalar operator."
@@ -9039,9 +8889,8 @@ msgid "2D texture uniform lookup with triplanar."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform function."
-msgstr "Izveidot"
+msgstr "Transformēšanas funkcija."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9083,19 +8932,16 @@ msgid "Multiplies vector by transform."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform constant."
-msgstr "Izveidot"
+msgstr "Transformēt konstanti."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform uniform."
-msgstr "Izveidot"
+msgstr "Transformēt vienmērīgo."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Vector function."
-msgstr "Izveidot Funkciju"
+msgstr "Vektora funkcija."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector operator."
@@ -9305,9 +9151,8 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
msgid "Add initial export..."
-msgstr "Favorīti:"
+msgstr "Pievienot sÄkuma eksportu..."
#: editor/project_export.cpp
msgid "Add previous patches..."
@@ -10011,7 +9856,7 @@ msgstr ""
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "General"
-msgstr ""
+msgstr "VispÄrÄ“ji"
#: editor/project_settings_editor.cpp
msgid "Override For..."
@@ -10221,9 +10066,8 @@ msgid "Initial value for the counter"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Step"
-msgstr "Solis (ļi):"
+msgstr "Solis"
#: editor/rename_dialog.cpp
msgid "Amount by which counter is incremented for each node"
@@ -10277,9 +10121,8 @@ msgid "Regular Expression Error"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "At character %s"
-msgstr "Derīgie simboli:"
+msgstr "Pie rakstzīmes %s"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent Node"
@@ -10344,8 +10187,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Galvenais Skripts:"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10380,9 +10224,8 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete %d nodes?"
-msgstr "Izdzēst"
+msgstr "Izdzēst %d mezglus?"
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
@@ -10393,9 +10236,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "Izdzēst"
+msgstr "Izdzēst mezglu \"%s\"?"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -10430,9 +10272,8 @@ msgid "New Scene Root"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Create Root Node:"
-msgstr "Izveidot Jaunu %s"
+msgstr "Izveidot Cilmes Mezglu:"
#: editor/scene_tree_dock.cpp
msgid "2D Scene"
@@ -10506,6 +10347,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10543,9 +10391,8 @@ msgid "Delete (No Confirm)"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Add/Create a New Node."
-msgstr "Izveidot Jaunu %s"
+msgstr "Pievienot/Izveidot Jaunu Mezglu."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -10554,11 +10401,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10586,9 +10433,8 @@ msgid "Button Group"
msgstr ""
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "(Connecting From)"
-msgstr "Savieno SignÄlu:"
+msgstr "(Savienojas No)"
#: editor/scene_tree_editor.cpp
msgid "Node configuration warning:"
@@ -10659,14 +10505,12 @@ msgid "Select a Node"
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Path is empty."
-msgstr "Starpliktuve ir tukša"
+msgstr "Ceļš nav definēts."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Filename is empty."
-msgstr "Starpliktuve ir tukša"
+msgstr "Faila Nosaukums nav definēts."
#: editor/script_create_dialog.cpp
msgid "Path is not local."
@@ -10682,6 +10526,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "Nederīgs fonta izmērs."
@@ -10723,6 +10571,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Nederīgs ceļš."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid class name."
msgstr "Nederīgs nosaukums."
@@ -10744,9 +10596,8 @@ msgid "Built-in script (into scene file)."
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Will create a new script file."
-msgstr "Izveidot Jaunu %s"
+msgstr "Izveidos jaunu skripta failu."
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -10811,14 +10662,12 @@ msgid "C++ Source"
msgstr "Resurs"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Source:"
-msgstr "Resurs"
+msgstr "Avots:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Source:"
-msgstr "Resurs"
+msgstr "C++ Avots:"
#: editor/script_editor_debugger.cpp
msgid "Stack Trace"
@@ -10829,9 +10678,8 @@ msgid "Errors"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Child process connected."
-msgstr "Savienot"
+msgstr "BÄ“rna process savienots."
#: editor/script_editor_debugger.cpp
msgid "Copy Error"
@@ -11373,14 +11221,12 @@ msgid "Set Variable Type"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Input Port"
-msgstr "Favorīti:"
+msgstr "Pievienot Ieejas Pieslēgvietu"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Output Port"
-msgstr "Favorīti:"
+msgstr "Pievienot Izejas Pieslēgvietu"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -11390,27 +11236,24 @@ msgstr ""
"nosaukumu."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new function."
-msgstr "Izveidot Jaunu %s"
+msgstr "Izveidot jaunu funkciju."
#: modules/visual_script/visual_script_editor.cpp
msgid "Variables:"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new variable."
-msgstr "Izveidot Jaunu %s"
+msgstr "Izveidot jaunu mainīgo."
#: modules/visual_script/visual_script_editor.cpp
msgid "Signals:"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new signal."
-msgstr "Izveidot"
+msgstr "Izveidot jaunu signÄlu."
#: modules/visual_script/visual_script_editor.cpp
msgid "Name is not a valid identifier:"
@@ -11620,24 +11463,20 @@ msgid "Members:"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Base Type:"
-msgstr "Nomainīt %s Tipu"
+msgstr "NomainÄ«t BÄzes Tipu:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Nodes..."
-msgstr "Favorīti:"
+msgstr "Pievienot Mezglus..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function..."
-msgstr "Izveidot Funkciju"
+msgstr "Pievienot Funkciju..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "function_name"
-msgstr "Funkcijas:"
+msgstr "funkcijas_nosaukums"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit its graph."
@@ -11660,9 +11499,8 @@ msgid "Cut Nodes"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Function"
-msgstr "Funkcijas:"
+msgstr "Izveidot Funkciju"
#: modules/visual_script/visual_script_editor.cpp
msgid "Refresh Graph"
@@ -11779,6 +11617,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11797,9 +11639,34 @@ msgid "Invalid public key for APK expansion."
msgstr ""
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Invalid package name:"
-msgstr "Nederīgs nosaukums."
+msgstr "Nederīgs paketes nosaukums:"
+
+#: platform/android/export/export.cpp
+msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
#: platform/android/export/export.cpp
msgid ""
@@ -11842,9 +11709,8 @@ msgid "App Store Team ID not specified - cannot configure the project."
msgstr ""
#: platform/iphone/export/export.cpp
-#, fuzzy
msgid "Invalid Identifier:"
-msgstr "Nederīgs fonta izmērs."
+msgstr "Nederīgs Identifikators:"
#: platform/iphone/export/export.cpp
msgid "Required icon is not specified in the preset."
@@ -12299,9 +12165,8 @@ msgid "On BlendTree node '%s', animation not found: '%s'"
msgstr ""
#: scene/animation/animation_blend_tree.cpp
-#, fuzzy
msgid "Animation not found: '%s'"
-msgstr "AnimÄcijas garums (sekundÄ“s)."
+msgstr "AnimÄcija netika atrasta: '%s'"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
@@ -12313,9 +12178,8 @@ msgid "Invalid animation: '%s'."
msgstr "Nederīgs fonta izmērs."
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "Nothing connected to input '%s' of node '%s'."
-msgstr "Atvienot '%s' no '%s'"
+msgstr "Nekas nav savienots ar ieeju '%s' mezglam '%s'."
#: scene/animation/animation_tree.cpp
msgid "No root AnimationNode for the graph is set."
@@ -12361,9 +12225,8 @@ msgid "Switch between hexadecimal and code values."
msgstr ""
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Add current color as a preset."
-msgstr "Pievienot paÅ¡reizÄ“jo krÄsu kÄ iepriekÅ¡noteiktu krÄsu"
+msgstr "Pievienot paÅ¡reizÄ“jo krÄsu kÄ iepriekÅ¡noteiktu krÄsu."
#: scene/gui/container.cpp
msgid ""
diff --git a/editor/translations/mi.po b/editor/translations/mi.po
index 5c33f2e72e..fbf4bce3d6 100644
--- a/editor/translations/mi.po
+++ b/editor/translations/mi.po
@@ -807,7 +807,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1407,16 +1406,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2336,11 +2327,13 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
+msgid "Reload Saved Scene"
msgstr ""
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2606,10 +2599,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3215,6 +3204,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3799,6 +3792,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6670,11 +6667,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7144,6 +7141,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10061,7 +10067,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10219,6 +10225,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10265,11 +10278,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10389,6 +10402,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10429,6 +10446,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11453,6 +11474,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11476,6 +11501,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/ml.po b/editor/translations/ml.po
index e46fd5a10d..77ac327f71 100644
--- a/editor/translations/ml.po
+++ b/editor/translations/ml.po
@@ -817,7 +817,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1417,16 +1416,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2348,11 +2339,13 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
+msgid "Reload Saved Scene"
msgstr ""
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2618,10 +2611,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3227,6 +3216,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3811,6 +3804,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6686,11 +6683,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7160,6 +7157,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10077,7 +10083,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10235,6 +10241,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10281,11 +10294,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10405,6 +10418,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10445,6 +10462,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11470,6 +11491,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11493,6 +11518,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/mr.po b/editor/translations/mr.po
index 902c243d16..38e3ee7185 100644
--- a/editor/translations/mr.po
+++ b/editor/translations/mr.po
@@ -814,7 +814,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1414,16 +1413,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2343,11 +2334,13 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
+msgid "Reload Saved Scene"
msgstr ""
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2613,10 +2606,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3222,6 +3211,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3806,6 +3799,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6677,11 +6674,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7151,6 +7148,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10068,7 +10074,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10226,6 +10232,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10272,11 +10285,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10396,6 +10409,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10436,6 +10453,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11460,6 +11481,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11483,6 +11508,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/ms.po b/editor/translations/ms.po
index 09e2bcc096..233b5cb428 100644
--- a/editor/translations/ms.po
+++ b/editor/translations/ms.po
@@ -837,7 +837,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1437,16 +1436,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2368,11 +2359,13 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
+msgid "Reload Saved Scene"
msgstr ""
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2639,10 +2632,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3249,6 +3238,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3834,6 +3827,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6724,11 +6721,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7199,6 +7196,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10135,7 +10141,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10296,6 +10302,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10342,11 +10355,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10466,6 +10479,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10506,6 +10523,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11540,6 +11561,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11563,6 +11588,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index 34d6e9dc76..5c80321d03 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -19,8 +19,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-04-16 11:03+0000\n"
-"Last-Translator: Petter Reinholdtsen <pere-weblate@hungry.com>\n"
+"PO-Revision-Date: 2020-06-03 20:09+0000\n"
+"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/godot-"
"engine/godot/nb_NO/>\n"
"Language: nb\n"
@@ -28,7 +28,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.0.1-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -883,7 +883,6 @@ msgstr "Kobler Til Signal:"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1527,18 +1526,9 @@ msgstr "Aktiver"
msgid "Rearrange Autoloads"
msgstr "Omorganiser Autoloads"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "Ugyldig Filsti."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Fil eksisterer ikke."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Ikke i resource path."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2556,12 +2546,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Kan ikke laste en scene som aldri ble lagret."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "GÃ¥ tilbake"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Lagre Scene"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Denne handlingen kan ikke angres. GÃ¥ tilbake likevel?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2856,10 +2849,6 @@ msgid "Redo"
msgstr "Gjenta"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Tilbakestille Scene"
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Miscellaneous project or scene-wide tools."
msgstr "Diverse prosjekt- eller scene-relaterte verktøy"
@@ -3401,9 +3390,8 @@ msgid "Assign..."
msgstr "Tilordne..."
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Invalid RID"
-msgstr ": Ugyldige argumenter: "
+msgstr "Ugyldig RID"
#: editor/editor_properties.cpp
#, fuzzy
@@ -3533,6 +3521,10 @@ msgstr "Kunne ikke kjøre skript:"
msgid "Did you forget the '_run' method?"
msgstr "Glemte du '_run'-metoden?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Velg Node(r) for Importering"
@@ -3678,9 +3670,8 @@ msgid ""
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error requesting URL:"
-msgstr "Error ved forespørsel av url: "
+msgstr "Feil ved nettadresse-forespørsel:"
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror..."
@@ -3772,9 +3763,8 @@ msgid "Download Templates"
msgstr "Last ned Mal"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select mirror from list: (Shift+Click: Open in Browser)"
-msgstr "Velg fillager fra liste: "
+msgstr "Velg speil fra liste: (Shift+Klikk: Ã…pne i nettleser)"
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -4027,14 +4017,12 @@ msgid "Cancel"
msgstr "Avbryt"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Find: "
-msgstr "Finn"
+msgstr "Finn: "
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace: "
-msgstr "Erstatt"
+msgstr "Erstatt: "
#: editor/find_in_files.cpp
#, fuzzy
@@ -4188,6 +4176,10 @@ msgid "Error running post-import script:"
msgstr "Error ved kjøring av post-import script:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Lagrer..."
@@ -5002,9 +4994,8 @@ msgid "Set the end animation. This is useful for sub-transitions."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition: "
-msgstr "Overgang"
+msgstr "Overgang: "
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
@@ -7313,15 +7304,15 @@ msgid ""
msgstr "Koble '%s' fra '%s'"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "Linje:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "Fjern Funksjon"
@@ -7816,6 +7807,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Snap Nodes To Floor"
msgstr "Snap til rutenett"
@@ -10937,8 +10937,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Nytt Skript"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -11105,6 +11106,13 @@ msgid "Open Documentation"
msgstr "Ã…pne Godots nettbaserte dokumentasjon"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -11158,12 +11166,13 @@ msgstr ""
"finnes en rot-node."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr ""
+#, fuzzy
+msgid "Detach the script from the selected node."
+msgstr "Instanser den valgte scene(r) som barn av den valgte noden."
#: editor/scene_tree_dock.cpp
#, fuzzy
@@ -11293,6 +11302,10 @@ msgid "A directory with the same name exists."
msgstr "En fil eller mappe med dette navnet eksisterer allerede."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Fil eksisterer ikke."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "MÃ¥ ha en gyldig filutvidelse."
@@ -11338,6 +11351,11 @@ msgstr ""
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "Ugyldig Filsti."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "Ugyldig navn."
@@ -11403,7 +11421,7 @@ msgstr ""
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "Remote "
-msgstr "Fjern Funksjon"
+msgstr "Fjern-funksjon "
#: editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -12440,6 +12458,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -12464,6 +12486,32 @@ msgstr "Ugyldig navn."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12575,7 +12623,7 @@ msgstr "Prosjektnavn:"
#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid publisher GUID."
-msgstr ": Ugyldige argumenter: "
+msgstr "Ugyldig forlags-GUID."
#: platform/uwp/export/export.cpp
#, fuzzy
@@ -13123,6 +13171,18 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstanter kan ikke endres."
+#~ msgid "Not in resource path."
+#~ msgstr "Ikke i resource path."
+
+#~ msgid "Revert"
+#~ msgstr "GÃ¥ tilbake"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Denne handlingen kan ikke angres. GÃ¥ tilbake likevel?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Tilbakestille Scene"
+
#~ msgid "Issue Tracker"
#~ msgstr "Problemtracker"
@@ -13369,10 +13429,6 @@ msgstr "Konstanter kan ikke endres."
#~ msgstr "Sett inn Nøkler"
#, fuzzy
-#~ msgid "Instance the selected scene(s) as child of the selected node."
-#~ msgstr "Instanser den valgte scene(r) som barn av den valgte noden."
-
-#, fuzzy
#~ msgid "Font Size:"
#~ msgstr "Frontvisning"
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index 93219f8bfc..8e6c4bcfa4 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -44,7 +44,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-04 15:12+0000\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
"Last-Translator: Stijn Hinlopen <f.a.hinlopen@gmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/"
"nl/>\n"
@@ -873,7 +873,6 @@ msgstr "Kan signaal niet verbinden"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1488,17 +1487,9 @@ msgstr "Inschakelen"
msgid "Rearrange Autoloads"
msgstr "Autoloads opnieuw ordenen"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Ongeldig pad."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Bestand bestaat niet."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Niet in bronpad."
+msgid "Can't add autoload:"
+msgstr "Autoload kon niet toevoegd worden:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2458,13 +2449,16 @@ msgid "Can't reload a scene that was never saved."
msgstr "Een scène die nooit opgeslagen is kan niet opnieuw laden worden."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Herstellen"
+msgid "Reload Saved Scene"
+msgstr "Opgeslagen scène herladen"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
-"Deze actie kan niet ongedaan gemaakt worden. WIlt u desondanks terugzetten?"
+"De huidige scène bevat niet opgeslagen veranderingen.\n"
+"Scène desondanks herladen? Dit kan niet ongedaan gemaakt worden."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2751,10 +2745,6 @@ msgid "Redo"
msgstr "Opnieuw"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Scène terugzetten"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Overig project of scène-brede hulpmiddelen."
@@ -3404,6 +3394,12 @@ msgstr "Script kon niet uitgevoerd worden:"
msgid "Did you forget the '_run' method?"
msgstr "Ben je de '_run' methode vergeten?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Houdt Ctrl ingedrukt om op gehele getallen af te ronden. Houdt Shift "
+"ingedrukt voor preciezere veranderingen."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Selecteer een of meer knopen om te importeren"
@@ -4001,6 +3997,11 @@ msgid "Error running post-import script:"
msgstr "Fout bij uitvoeren post-import script:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+"Gaf je een van Node afstammend object terug in de `post_import()`-methode?"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Opslaan..."
@@ -6955,12 +6956,12 @@ msgid ""
msgstr "Ontbrekende verbonden methode '%s' voor signaal '%s' naar knoop '%s'."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Regel"
+msgid "[Ignore]"
+msgstr "[Negeren]"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(negeren)"
+msgid "Line"
+msgstr "Regel"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7435,6 +7436,20 @@ msgid "XForm Dialog"
msgstr "XForm Dialoog"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+"Klik om te wisselen tussen zichtbaarheidsweergaven.\n"
+"\n"
+"Open oog: handvat is zichtbaar.\n"
+"Gesloten oog: handvat is verborgen.\n"
+"Half open oog: handvat is ook zichtbaar door ondoorzichtige oppervlaktes."
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Knopen aan vloer kleven"
@@ -10538,8 +10553,8 @@ msgid "Instance Child Scene"
msgstr "Scène instantiëren"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Script wissen"
+msgid "Detach Script"
+msgstr "Script losmaken"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10705,6 +10720,15 @@ msgid "Open Documentation"
msgstr "Open Godot online documentatie"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+"Script kon niet aangebracht worden: er zijn geen talen ingesteld.\n"
+"Dit is waarschijnlijk omdat deze editor zonder taalmodules was gecompileerd."
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Knoop hieronder toevoegen"
@@ -10753,12 +10777,12 @@ msgstr ""
"wortelknoop bestaat."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
-msgstr "Verbind een nieuw of bestaand script aan de geselecteerde knoop."
+msgid "Attach a new or existing script to the selected node."
+msgstr "Een nieuw of bestaand script verbinden aan de geselecteerde knoop."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr "Script van geselecteerde knopen wissen."
+msgid "Detach the script from the selected node."
+msgstr "Script van geselecteerde knoop losmaken."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10889,6 +10913,10 @@ msgid "A directory with the same name exists."
msgstr "Een map met dezelfde naam bestaat al."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Bestand bestaat niet."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Ongeldige extentie."
@@ -10929,6 +10957,10 @@ msgid "File exists, it will be reused."
msgstr "Bestand Bestaat, zal hergebruikt worden."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Ongeldig pad."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Ongeldige klassenaam."
@@ -11978,6 +12010,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr "Debug Keystore is niet ingesteld of aanwezig in de Editor Settings."
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr "Release-Keystore is verkeerd ingesteld in de exportinstelingen."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"Eigen build vereist een geldige Android SDK pad in de Editorinstellingen."
@@ -12004,6 +12040,40 @@ msgstr "Ongeldige pakketnaam:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+"Ongeldige \"GodotPaymentV3\" module ingesloten in de projectinstelling "
+"\"android/modules\" (veranderd in Godot 3.2.2).\n"
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr "\"Use Custom Build\" moet geactiveerd zijn om plugins te gebruiken."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+"\"Degrees Of Freedom\" is alleen geldig als \"Xr Mode\" op \"Oculus Mobile VR"
+"\" staat."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"\"Hand Tracking\" is alleen geldig als \"Xr Mode\" op \"Oculus Mobile VR\" "
+"staat."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"\"Focus Awareness\" is alleen geldig als \"Xr Mode\" op \"Oculus Mobile VR\" "
+"staat."
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12787,6 +12857,23 @@ msgstr "Varyings kunnen alleen worden toegewezenin vertex functies."
msgid "Constants cannot be modified."
msgstr "Constanten kunnen niet worden aangepast."
+#~ msgid "Not in resource path."
+#~ msgstr "Niet in bronpad."
+
+#~ msgid "Revert"
+#~ msgstr "Herstellen"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr ""
+#~ "Deze actie kan niet ongedaan gemaakt worden. WIlt u desondanks "
+#~ "terugzetten?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Scène terugzetten"
+
+#~ msgid "Clear Script"
+#~ msgstr "Script wissen"
+
#~ msgid "Issue Tracker"
#~ msgstr "Issue Tracker"
diff --git a/editor/translations/or.po b/editor/translations/or.po
index 2ce05efe5d..afff834dee 100644
--- a/editor/translations/or.po
+++ b/editor/translations/or.po
@@ -813,7 +813,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1413,16 +1412,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2342,11 +2333,13 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
+msgid "Reload Saved Scene"
msgstr ""
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2612,10 +2605,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3221,6 +3210,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3805,6 +3798,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6676,11 +6673,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7150,6 +7147,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10067,7 +10073,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10225,6 +10231,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10271,11 +10284,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10395,6 +10408,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10435,6 +10452,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11459,6 +11480,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11482,6 +11507,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index a7b57f31ba..414e66685a 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -19,7 +19,7 @@
# NeverK <neverkoxu@gmail.com>, 2018, 2019.
# Rafal Brozio <rafal.brozio@gmail.com>, 2016, 2019.
# Rafał Ziemniak <synaptykq@gmail.com>, 2017.
-# RM <synaptykq@gmail.com>, 2018.
+# RM <synaptykq@gmail.com>, 2018, 2020.
# Sebastian Krzyszkowiak <dos@dosowisko.net>, 2017.
# Sebastian Pasich <sebastian.pasich@gmail.com>, 2017, 2019.
# siatek papieros <sbigneu@gmail.com>, 2016.
@@ -38,11 +38,12 @@
# Myver <igormakarowicz@gmail.com>, 2019.
# Maciej Chamera <chameramaciej@gmail.com>, 2019.
# Cezary Stasiak <cezary.p.stasiak@gmail.com>, 2019.
+# Jan Ligudziński <jan.ligudzinski@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-01 11:42+0000\n"
+"PO-Revision-Date: 2020-06-06 10:15+0000\n"
"Last-Translator: Tomek <kobewi4e@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot/pl/>\n"
@@ -52,7 +53,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.0.2\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -177,11 +178,11 @@ msgstr "Usuń klucze animacji"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Time"
-msgstr "Zmiana czasu klatki kluczowej"
+msgstr "Zmień wartość czasu klatki kluczowej"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
-msgstr "Zmiana przejścia"
+msgstr "Przejście zmiany animacji"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
@@ -872,7 +873,6 @@ msgstr "Nie można połączyć sygnału"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1482,17 +1482,9 @@ msgstr "WÅ‚Ä…cz"
msgid "Rearrange Autoloads"
msgstr "Przestaw Autoloady"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Niepoprawna ścieżka."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Plik nie istnieje."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Nie znaleziono w ścieżce zasobów."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2448,12 +2440,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Nie można przeładować sceny która nie została zapisana."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Przywróć"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Zapisz scenÄ™"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Tego nie można cofnąć. Przywrócić mimo to?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2740,10 +2735,6 @@ msgid "Redo"
msgstr "Ponów"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Przywróć scenę"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Różne narzędzia dla scen lub projektu."
@@ -3111,7 +3102,7 @@ msgstr "Nowa dziedziczÄ…ca scena"
#: editor/editor_node.cpp
msgid "Load Errors"
-msgstr "Wczytaj błędy"
+msgstr "Błędy wczytywania"
#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
msgid "Select"
@@ -3386,6 +3377,13 @@ msgstr "Nie można uruchomić skryptu:"
msgid "Did you forget the '_run' method?"
msgstr "Zapomniano metody \"_run\"?"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Przytrzymaj Ctrl, by upuścić pobieracz (Getter). Przytrzymaj Shift, by "
+"upuścić generyczną sygnaturę."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Wybierz węzły do importu"
@@ -3627,7 +3625,7 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Cannot move/rename resources root."
-msgstr "Nie można przenieść/zmienić nazwy źródłowego zasobu."
+msgstr "Nie można przenieść/zmienić nazwy korzenia zasobów."
#: editor/filesystem_dock.cpp
msgid "Cannot move a folder into itself."
@@ -3984,6 +3982,10 @@ msgid "Error running post-import script:"
msgstr "BÅ‚Ä…d podczas uruchamiania skryptu po imporcie:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Zapisywanie..."
@@ -5701,7 +5703,7 @@ msgstr "Edytuj wielokąt (usuń punkty)"
#: editor/plugins/collision_shape_2d_editor_plugin.cpp
msgid "Set Handle"
-msgstr "Ustaw Uchwyt"
+msgstr "Ustaw uchwyt"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -6936,12 +6938,13 @@ msgstr ""
"\"%s\"."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Linia"
+#, fuzzy
+msgid "[Ignore]"
+msgstr "(ignoruj)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ignoruj)"
+msgid "Line"
+msgstr "Linia"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7415,6 +7418,15 @@ msgid "XForm Dialog"
msgstr "Okno dialogowe XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Przyciągnij węzły do podłogi"
@@ -10503,8 +10515,9 @@ msgid "Instance Child Scene"
msgstr "Dodaj instancjÄ™ sceny"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Usuń skrypt"
+#, fuzzy
+msgid "Detach Script"
+msgstr "Dodaj skrypt"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10669,6 +10682,13 @@ msgid "Open Documentation"
msgstr "Otwórz dokumentację"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Dodaj węzeł"
@@ -10717,11 +10737,13 @@ msgstr ""
"główny nie istnieje."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "Dołącz nowy lub istniejący skrypt do zaznaczonego węzła."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "Wyczyść skrypt dla zaznaczonego węzła."
#: editor/scene_tree_dock.cpp
@@ -10853,6 +10875,10 @@ msgid "A directory with the same name exists."
msgstr "Katalog o tej nazwie już istnieje."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Plik nie istnieje."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Niepoprawne rozszerzenie."
@@ -10893,6 +10919,10 @@ msgid "File exists, it will be reused."
msgstr "Plik istnieje, zostanie użyty ponownie."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Niepoprawna ścieżka."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Niepoprawna nazwa klasy."
@@ -11939,6 +11969,13 @@ msgstr ""
"eksportu."
#: platform/android/export/export.cpp
+#, fuzzy
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"Debugowy keystore nieskonfigurowany w Ustawieniach Edytora ani w profilu "
+"eksportu."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"Własny build wymaga poprawnej ścieżki do SDK Androida w Ustawieniach Edytora."
@@ -11967,6 +12004,32 @@ msgstr "Niepoprawna nazwa paczki:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12752,6 +12815,21 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchołków."
msgid "Constants cannot be modified."
msgstr "Stałe nie mogą być modyfikowane."
+#~ msgid "Not in resource path."
+#~ msgstr "Nie znaleziono w ścieżce zasobów."
+
+#~ msgid "Revert"
+#~ msgstr "Przywróć"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Tego nie można cofnąć. Przywrócić mimo to?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Przywróć scenę"
+
+#~ msgid "Clear Script"
+#~ msgstr "Usuń skrypt"
+
#~ msgid "Issue Tracker"
#~ msgstr "Lista problemów"
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index 646d14c2cf..9d46edcbae 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -851,7 +851,6 @@ msgstr "Slit th' Node"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1461,17 +1460,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr ": Evil arguments: "
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2421,11 +2411,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Yar, Blow th' Selected Down!"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2696,10 +2689,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3319,6 +3308,13 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Smash yer Ctrl key t' sink yer Getter. Smash yer Shift t' sink a generic "
+"signature."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3931,6 +3927,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6890,11 +6890,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7380,6 +7380,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10400,8 +10409,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Discharge ye' Variable"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10562,6 +10572,13 @@ msgid "Open Documentation"
msgstr "Yer functions:"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10611,11 +10628,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10742,6 +10759,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "Yer Calligraphy be wrongly sized."
@@ -10785,6 +10806,11 @@ msgstr ""
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr ": Evil arguments: "
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "Yer unique name be evil."
@@ -11879,6 +11905,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11903,6 +11933,32 @@ msgstr "Yer unique name be evil."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index d38c4186c7..199d828897 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -88,12 +88,17 @@
# Lucas Araujo <lucassants2808@gmail.com>, 2020.
# Sr Half <flavio05@outlook.com>, 2020.
# Matheus Pesegoginski <pese.ek.tk@outlook.com>, 2020.
+# DeeJayLSP <djlsplays@gmail.com>, 2020.
+# Anonymous <noreply@weblate.org>, 2020.
+# André Sousa <andrelvsousa@gmail.com>, 2020.
+# Kleyton Luiz de Sousa Vieira <kleytonluizdesouzavieira@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: 2016-05-30\n"
-"PO-Revision-Date: 2020-05-04 15:12+0000\n"
-"Last-Translator: Anonymous <noreply@weblate.org>\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
+"Last-Translator: Kleyton Luiz de Sousa Vieira "
+"<kleytonluizdesouzavieira@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
@@ -106,11 +111,11 @@ msgstr ""
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Tipo de argumento inválido para converter(), use TYPE_* constantes."
+msgstr "Tipo de argumento inválido para convert(), use constantes TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "Esperado uma corda de comprimento 1 (um caractere)."
+msgstr "Esperado uma string de comprimento 1 (um caractere)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -920,7 +925,6 @@ msgstr "Não foi possível conectar o sinal"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1531,17 +1535,9 @@ msgstr "Habilitar"
msgid "Rearrange Autoloads"
msgstr "Reordenar Autoloads"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Caminho inválido."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "O arquivo não existe."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Não está no caminho de recursos."
+msgid "Can't add autoload:"
+msgstr "Não pode adicionar autoload:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2497,12 +2493,16 @@ msgid "Can't reload a scene that was never saved."
msgstr "Não foi possível recarregar a cena pois nunca foi salva."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Reverter"
+msgid "Reload Saved Scene"
+msgstr "Recarregar Cena Salva"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Esta ação não pode ser desfeita. Reverter mesmo assim?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
+"A cena atual possui alterações não salvas.\n"
+"Recarregar a cena salva mesmo assim? Essa ação não poderá ser desfeita."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2733,11 +2733,11 @@ msgstr "Copiar Texto"
#: editor/editor_node.cpp
msgid "Next tab"
-msgstr "Próxima guia"
+msgstr "Próxima aba"
#: editor/editor_node.cpp
msgid "Previous tab"
-msgstr "Guia anterior"
+msgstr "Aba anterior"
#: editor/editor_node.cpp
msgid "Filter Files..."
@@ -2794,10 +2794,6 @@ msgid "Redo"
msgstr "Refazer"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Reverter Cena"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Ferramentas diversas atuantes no projeto ou cena."
@@ -2849,7 +2845,7 @@ msgstr "Sair para a Lista de Projetos"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
msgid "Debug"
-msgstr "Depurar"
+msgstr "Depuração"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
@@ -2960,7 +2956,7 @@ msgstr "Capturas de Telas ficam salvas na Pasta Editor Data/Settings."
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr "Alternar Tela-Cheia"
+msgstr "Alternar Tela Cheia"
#: editor/editor_node.cpp
msgid "Toggle System Console"
@@ -3030,7 +3026,7 @@ msgstr "Roda o projeto."
#: editor/editor_node.cpp
msgid "Play"
-msgstr "Tocar"
+msgstr "Rodar"
#: editor/editor_node.cpp
msgid "Pause the scene execution for debugging."
@@ -3038,7 +3034,7 @@ msgstr "Pausar a execução da cena para depuração."
#: editor/editor_node.cpp
msgid "Pause Scene"
-msgstr "Pausa a cena"
+msgstr "Pausar Cena"
#: editor/editor_node.cpp
msgid "Stop the scene."
@@ -3186,7 +3182,7 @@ msgstr "Abrir Editor 3D"
#: editor/editor_node.cpp
msgid "Open Script Editor"
-msgstr "Abrir Editor de Scripts"
+msgstr "Abrir Editor de Script"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
@@ -3446,6 +3442,12 @@ msgstr "Não foi possível rodar o script:"
msgid "Did you forget the '_run' method?"
msgstr "Você esqueceu o método '_run'?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Segure Ctrl para arredondar para números inteiros. Segure Shift para aplicar "
+"mudanças mais precisas."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Selecione Nó(s) para Importar"
@@ -4044,6 +4046,10 @@ msgid "Error running post-import script:"
msgstr "Erro ao rodar script pós-importação:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Salvando..."
@@ -5376,7 +5382,7 @@ msgid ""
"Game Camera Override\n"
"Overrides game camera with editor viewport camera."
msgstr ""
-"Sobrepor câmera de Jogo\n"
+"Sobrepor Câmera de Jogo\n"
"Sobrepõe a câmera de jogo com a janela de exibição da câmera."
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5385,8 +5391,8 @@ msgid ""
"Game Camera Override\n"
"No game instance running."
msgstr ""
-"Sobrepor câmera de Jogo\n"
-"Sem instancia de jogo rodando."
+"Sobrepor Câmera de Jogo\n"
+"Sem instância de jogo em execução."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5472,17 +5478,17 @@ msgstr "Alt + botão direito do mouse: Lista de seleção de profundidade"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Move Mode"
-msgstr "Modo Mover"
+msgstr "Modo de Movimentação"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Mode"
-msgstr "Modo Rotacionar"
+msgstr "Modo de Rotação"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Mode"
-msgstr "Modo Escala"
+msgstr "Modo de Escalonamento"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5503,7 +5509,7 @@ msgstr "Modo Panorâmico"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Ruler Mode"
-msgstr "Modo Régua"
+msgstr "Modo de Régua"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle smart snapping."
@@ -5617,7 +5623,7 @@ msgstr "Visualizar"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Always Show Grid"
-msgstr "Sempre Mostrar a Grade"
+msgstr "Sempre Mostrar Grade"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Helpers"
@@ -5645,11 +5651,11 @@ msgstr "Exibir grupo e travar ícones"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
-msgstr "Centralizar Seleção"
+msgstr "Seleção Central"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Frame Selection"
-msgstr "Seleção de Quadros"
+msgstr "Seleção de Frame"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Preview Canvas Scale"
@@ -5657,7 +5663,7 @@ msgstr "Visualizar Canvas Scale"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Translation mask for inserting keys."
-msgstr "Máscara de tradução para inserção de chaves"
+msgstr "Máscara de tradução para inserção de chaves."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation mask for inserting keys."
@@ -5714,7 +5720,7 @@ msgstr "Dividir o passo da grade por 2"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan View"
-msgstr "Vista Panorâmica"
+msgstr "Deslocar Visão"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6999,12 +7005,13 @@ msgid ""
msgstr "Falta método conectado '%s' para sinal '%s' do nó '%s' para nó '%s'."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Linha"
+#, fuzzy
+msgid "[Ignore]"
+msgstr "(ignore)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ignore)"
+msgid "Line"
+msgstr "Linha"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7478,6 +7485,15 @@ msgid "XForm Dialog"
msgstr "Diálogo XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Encaixar Nó(s) no Chão"
@@ -7533,7 +7549,7 @@ msgstr "Alternar Visão Perspectiva/Ortogonal"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Insert Animation Key"
-msgstr "Inserir Chanve de Animação"
+msgstr "Inserir Chave de Animação"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
@@ -8508,7 +8524,7 @@ msgstr "Confirmação"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "VCS Addon is not initialized"
-msgstr "Extensão VCS não inicializado"
+msgstr "Extensão VCS não está inicializada"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Version Control System"
@@ -8983,7 +8999,7 @@ msgstr "Encontra o inteiro mais próximo que é menor ou igual ao parâmetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Computes the fractional part of the argument."
-msgstr "Calcula a parte decimal do argumento."
+msgstr "Calcula a parte fracional do argumento."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse of the square root of the parameter."
@@ -9036,7 +9052,7 @@ msgstr "Encontra o inteiro mais próximo do parâmetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest even integer to the parameter."
-msgstr "Encontra o inteiro par mais próximo do parâmetro."
+msgstr "Encontra o número inteiro par mais próximo do parâmetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Clamps the value between 0.0 and 1.0."
@@ -9194,11 +9210,11 @@ msgstr "Multiplica vetor por transformação."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform constant."
-msgstr "Constante da transformada."
+msgstr "Constante de transformação."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform uniform."
-msgstr "Transformada uniforme."
+msgstr "Uniforme de transformação."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector function."
@@ -10296,11 +10312,11 @@ msgstr "Filtro de Idiomas"
#: editor/project_settings_editor.cpp
msgid "Show All Locales"
-msgstr "Mostrar todos os idiomas"
+msgstr "Mostrar todos os Locales"
#: editor/project_settings_editor.cpp
msgid "Show Selected Locales Only"
-msgstr "Mostrar apenas os idiomas selecionados"
+msgstr "Mostrar apenas os Locales selecionados"
#: editor/project_settings_editor.cpp
msgid "Filter mode:"
@@ -10563,8 +10579,9 @@ msgid "Instance Child Scene"
msgstr "Instânciar Cena Filha"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Remover Script"
+#, fuzzy
+msgid "Detach Script"
+msgstr "Adicionar Script"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10729,12 +10746,19 @@ msgid "Open Documentation"
msgstr "Abrir Documentação"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Adicionar Nó Filho"
#: editor/scene_tree_dock.cpp
msgid "Expand/Collapse All"
-msgstr "Expandir/Colapsar Tudo"
+msgstr "Expandir/Recolher Tudo"
#: editor/scene_tree_dock.cpp
msgid "Change Type"
@@ -10777,11 +10801,13 @@ msgstr ""
"existir um nó raiz."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "Adicionar um script novo ou existente para o nó selecionado."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "Remove um script do nó selecionado."
#: editor/scene_tree_dock.cpp
@@ -10913,6 +10939,10 @@ msgid "A directory with the same name exists."
msgstr "Existe um diretório com o mesmo nome."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "O arquivo não existe."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Extensão inválida."
@@ -10953,6 +10983,10 @@ msgid "File exists, it will be reused."
msgstr "O arquivo existe, será reaproveitado."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Caminho inválido."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Nome da classe inválido."
@@ -10989,7 +11023,7 @@ msgid ""
"Note: Built-in scripts have some limitations and can't be edited using an "
"external editor."
msgstr ""
-"Nota: Os scripts internos têm algumas limitações e não podem ser editados "
+"Nota: Scripts embutidos possuem algumas limitações e não podem ser editados "
"usando um editor externo."
#: editor/script_create_dialog.cpp
@@ -11858,7 +11892,7 @@ msgstr "function_name"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit its graph."
-msgstr "Selecione ou crie uma função para editar o grafo."
+msgstr "Selecione ou crie uma função para editar seu gráfico."
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
@@ -12004,9 +12038,16 @@ msgstr ""
"na predefinição."
#: platform/android/export/export.cpp
+#, fuzzy
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"Porta-chaves de depuração não configurado nas Configurações do Editor e nem "
+"na predefinição."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
-"Compilação personalizada requer um caminho do Android SDK válido para as "
+"A compilação personalizada requer um caminho SDK do Android válido nas "
"Configurações do Editor."
#: platform/android/export/export.cpp
@@ -12033,6 +12074,32 @@ msgstr "Nome de pacote inválido:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12811,6 +12878,21 @@ msgstr "Variáveis só podem ser atribuídas na função de vértice."
msgid "Constants cannot be modified."
msgstr "Constantes não podem serem modificadas."
+#~ msgid "Not in resource path."
+#~ msgstr "Não está no caminho de recursos."
+
+#~ msgid "Revert"
+#~ msgstr "Reverter"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Esta ação não pode ser desfeita. Reverter mesmo assim?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Reverter Cena"
+
+#~ msgid "Clear Script"
+#~ msgstr "Remover Script"
+
#~ msgid "Issue Tracker"
#~ msgstr "Rastreador de Problemas"
diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po
index 6314d31908..40a83eaa87 100644
--- a/editor/translations/pt_PT.po
+++ b/editor/translations/pt_PT.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-01 11:42+0000\n"
+"PO-Revision-Date: 2020-06-15 12:01+0000\n"
"Last-Translator: João Lopes <linux-man@hotmail.com>\n"
"Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_PT/>\n"
@@ -29,7 +29,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.0.2\n"
+"X-Generator: Weblate 4.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -851,7 +851,6 @@ msgstr "Não consigo conectar sinal"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -893,7 +892,7 @@ msgstr "Desligar"
#: editor/connections_dialog.cpp
msgid "Connect a Signal to a Method"
-msgstr "Conectar Sinal a Método"
+msgstr "Conectar Sinal a Método"
#: editor/connections_dialog.cpp
msgid "Edit Connection:"
@@ -1212,7 +1211,7 @@ msgstr "A Descomprimir Ativos"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "The following files failed extraction from package:"
-msgstr "Falhou a extração dos seguintes Ficheiros do pacote:"
+msgstr "Falhou a extração dos seguintes Ficheiros do pacote:"
#: editor/editor_asset_installer.cpp
msgid "And %s more files."
@@ -1253,7 +1252,7 @@ msgstr "Renomear o barramento de áudio"
#: editor/editor_audio_buses.cpp
msgid "Change Audio Bus Volume"
-msgstr "Alterar Volume do barramento de áudio"
+msgstr "Alterar Volume do Barramento de Ãudio"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
@@ -1463,17 +1462,9 @@ msgstr "Ativar"
msgid "Rearrange Autoloads"
msgstr "Reorganizar Carregamentos Automáticos"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Caminho inválido."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "O Ficheiro não existe."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Não está no caminho do recurso."
+msgid "Can't add autoload:"
+msgstr "Não consigo adicionar carregamento automático:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2431,12 +2422,16 @@ msgid "Can't reload a scene that was never saved."
msgstr "Não consigo recarregar uma cena que nunca foi guardada."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Reverter"
+msgid "Reload Saved Scene"
+msgstr "Recarregar Cena Guardada"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Esta acção não pode ser desfeita. Reverter na mesma?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
+"A cena atual tem alterações não guardadas.\n"
+"Recarregar a cena guardada? Esta ação não pode ser revertida."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2725,10 +2720,6 @@ msgid "Redo"
msgstr "Refazer"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Reverter Cena"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Ferramentas diversas de projeto ou cena."
@@ -3374,6 +3365,12 @@ msgstr "Não consegui executar o script:"
msgid "Did you forget the '_run' method?"
msgstr "Esqueceu-se do médodo '_run'?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Pressione Ctrl para arredondar para inteiro. Pressione Shift para mudanças "
+"mais precisas."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Selecionar Nó(s) para Importar"
@@ -3971,6 +3968,10 @@ msgid "Error running post-import script:"
msgstr "Erro na execução do Script de pós-importação:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr "Devolveu um objeto derivado de Nó no método `post_import()`?"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "A guardar..."
@@ -4023,7 +4024,7 @@ msgstr "Expandir Todas as Propriedades"
#: editor/inspector_dock.cpp
msgid "Collapse All Properties"
-msgstr "Colapsar Todas as Propriedades"
+msgstr "Colapsar Todas as Propriedades"
#: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -4602,7 +4603,7 @@ msgstr "Forçar modulação branca"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr "Incluir ferramentas (3D)"
+msgstr "Incluir Bugigangas (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pin AnimationPlayer"
@@ -5193,7 +5194,7 @@ msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
msgstr ""
-"As âncoras e margens de filhos de um contentores são sobrescritas pelo seu "
+"As âncoras e margens de filhos de um contentores são sobrescritas pelo seu "
"pai."
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6912,12 +6913,12 @@ msgid ""
msgstr "Falta método conectado '%s' para sinal '%s' do nó '%s' para nó '%s'."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Linha"
+msgid "[Ignore]"
+msgstr "[Ignorar]"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ignorar)"
+msgid "Line"
+msgstr "Linha"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7311,7 +7312,7 @@ msgstr "Ver ambiente"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Gizmos"
-msgstr "Ver ferramentas"
+msgstr "Ver Bugigangas"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Information"
@@ -7390,6 +7391,21 @@ msgid "XForm Dialog"
msgstr "Diálogo XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+"Clique para alternar entre estados de visibilidade.\n"
+"\n"
+"Olho aberto: Bugiganga é visível.\n"
+"Olho fechado: Bugiganga está escondida.\n"
+"Olho meio-aberto: Bugiganga também é visível através de superfícies opacas "
+"(\"raios X\")."
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Ajustar Nós ao Fundo"
@@ -10472,8 +10488,8 @@ msgid "Instance Child Scene"
msgstr "Instanciar Cena Filha"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Limpar Script"
+msgid "Detach Script"
+msgstr "Separar Script"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10637,6 +10653,16 @@ msgid "Open Documentation"
msgstr "Abrir documentação"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+"Não consigo anexar um script: não há linguagens registadas.\n"
+"Isto provavelmente acontece porque o editor foi compilado com todos os "
+"módulos de linguagem desativados."
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Adicionar Nó Filho"
@@ -10685,12 +10711,12 @@ msgstr ""
"existir nó raiz."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr "Anexar script novo ou existente ao nó selecionado."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr "Limpar script do nó selecionado."
+msgid "Detach the script from the selected node."
+msgstr "Separar o script do nó selecionado."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10821,6 +10847,10 @@ msgid "A directory with the same name exists."
msgstr "Já existe diretoria com o mesmo nome."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "O Ficheiro não existe."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Extensão inválida."
@@ -10861,6 +10891,10 @@ msgid "File exists, it will be reused."
msgstr "O Ficheiro já existe, será reutilizado."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Caminho inválido."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Nome de classe inválido."
@@ -10874,7 +10908,7 @@ msgstr "Caminho/nome de script é válido."
#: editor/script_create_dialog.cpp
msgid "Allowed: a-z, A-Z, 0-9, _ and ."
-msgstr "Permitido: a-z, A-Z, 0-9, _ e ."
+msgstr "Permitido: a-z, A-Z, 0-9, _ e ."
#: editor/script_create_dialog.cpp
msgid "Built-in script (into scene file)."
@@ -11906,10 +11940,15 @@ msgstr "O jarsigner do OpenJDK não está configurado nas Definições do Editor
#: platform/android/export/export.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-"Depuração de keystore não configurado nas Configurações do Editor e nem na "
+"Depuração de keystore não configurada nas Configurações do Editor e nem na "
"predefinição."
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"Lançamento de keystore configurado incorretamente na predefinição exportada."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"Compilação personalizada necessita de um caminho válido para Android SDK no "
@@ -11939,6 +11978,40 @@ msgstr "Nome de pacote inválido:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+"Módulo inválido \"GodotPaymentV3\" incluído na configuração do projeto "
+"\"android/modules\" (alterado em Godot 3.2.2).\n"
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+"\"Usar Compilação Personalizada\" têm de estar ativa para usar os plugins."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+"\"Graus de Liberdade\" só é válido quando \"Modo Xr\" é \"Oculus Mobile VR\"."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"\"Rastreamento de Mão\" só é válido quando \"Modo Xr\" é \"Oculus Mobile VR"
+"\"."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"\"Consciência do Foco\" só é válido quando \"Modo Xr\" é \"Oculus Mobile VR"
+"\"."
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12504,7 +12577,7 @@ msgid ""
"order for AnimatedSprite3D to display frames."
msgstr ""
"Um recurso SpriteFrames tem de ser criado ou definido na Propriedade \"Frames"
-"\" de forma a que AnimatedSprite3D mostre frames."
+"\" de forma a que AnimatedSprite3D mostre frames."
#: scene/3d/vehicle_body.cpp
msgid ""
@@ -12535,7 +12608,7 @@ msgid ""
"this environment's Background Mode to Canvas (for 2D scenes)."
msgstr ""
"Este WorldEnvironment Ä— ignorado. Pode adicionar uma Camera (para cenas 3D) "
-"ou definir o Modo Background deste ambiente como Canvas (para cenas 2D)."
+"ou definir o Modo Background deste ambiente como Canvas (para cenas 2D)."
#: scene/animation/animation_blend_tree.cpp
msgid "On BlendTree node '%s', animation not found: '%s'"
@@ -12716,6 +12789,21 @@ msgstr "Variações só podem ser atribuídas na função vértice."
msgid "Constants cannot be modified."
msgstr "Constantes não podem ser modificadas."
+#~ msgid "Not in resource path."
+#~ msgstr "Não está no caminho do recurso."
+
+#~ msgid "Revert"
+#~ msgstr "Reverter"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Esta acção não pode ser desfeita. Reverter na mesma?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Reverter Cena"
+
+#~ msgid "Clear Script"
+#~ msgstr "Limpar Script"
+
#~ msgid "Issue Tracker"
#~ msgstr "Rastreador de Problemas"
diff --git a/editor/translations/ro.po b/editor/translations/ro.po
index 624ae005f2..5e362de330 100644
--- a/editor/translations/ro.po
+++ b/editor/translations/ro.po
@@ -830,7 +830,6 @@ msgstr "Nu se poate conecta semnalul"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1445,17 +1444,9 @@ msgstr "Activați"
msgid "Rearrange Autoloads"
msgstr "Rearanjați Autoload-urile"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Cale nevalidă."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Fișierul nu există."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Nu în calea de resurse."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2404,12 +2395,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Nu se poate reîncărca o scenă care nu a fost salvată niciodată."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "ÃŽntoarcere"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Salvează Scena"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Această acțiune nu poate fi recuperată. Te reîntorci oricum?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2707,10 +2701,6 @@ msgid "Redo"
msgstr "Reîntoarcere"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Restabilește Scena"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Proiect Divers sau unelte pentru scenă."
@@ -3368,6 +3358,10 @@ msgstr "Nu a putut fi executat scriptul:"
msgid "Did you forget the '_run' method?"
msgstr "Ai uitat cumva metoda '_run' ?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Selectează Nodul(rile) pentru Importare"
@@ -4001,6 +3995,10 @@ msgid "Error running post-import script:"
msgstr "Eroare la executarea scripyului post-importare:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Se Salvează..."
@@ -7101,15 +7099,15 @@ msgid ""
msgstr "Deconectați '%s' de la '%s'"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "Linie:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "Faceți Funcția"
@@ -7596,6 +7594,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Snap Nodes To Floor"
msgstr "Snap pe grilă"
@@ -10682,7 +10689,8 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+#, fuzzy
+msgid "Detach Script"
msgstr "Curăță Scriptul"
#: editor/scene_tree_dock.cpp
@@ -10851,6 +10859,13 @@ msgid "Open Documentation"
msgstr "Deschide Recente"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10901,11 +10916,13 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
-msgstr ""
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
+msgstr "Curăță un script pentru nodul selectat."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "Curăță un script pentru nodul selectat."
#: editor/scene_tree_dock.cpp
@@ -11034,6 +11051,10 @@ msgid "A directory with the same name exists."
msgstr "Un fișier sau un director cu acest nume există deja."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Fișierul nu există."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "Trebuie să utilizaţi o extensie valida."
@@ -11077,6 +11098,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Cale nevalidă."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid class name."
msgstr "Nume nevalid."
@@ -12154,6 +12179,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -12178,6 +12207,32 @@ msgstr "Nume nevalid."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12830,6 +12885,18 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Not in resource path."
+#~ msgstr "Nu în calea de resurse."
+
+#~ msgid "Revert"
+#~ msgstr "ÃŽntoarcere"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Această acțiune nu poate fi recuperată. Te reîntorci oricum?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Restabilește Scena"
+
#~ msgid "Issue Tracker"
#~ msgstr "Agent de Monitorizare al Problemelor"
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index d8c55d825e..8bae9207d0 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -71,12 +71,17 @@
# Super Pracion <superpracion2@gmail.com>, 2020.
# PizzArt <7o7goo7o7@gmail.com>, 2020.
# TheGracekale <mrsmailbot.lg@gmail.com>, 2020.
+# Климентий Титов <titoffklim@cclc.tech>, 2020.
+# Richard Urban <redasuio1@gmail.com>, 2020.
+# Nikita <Kulacnikita@ya.ru>, 2020.
+# Alexander <ramzi7208@gmail.com>, 2020.
+# Alex Tern <ternvein@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-05 14:01+0000\n"
-"Last-Translator: Super Pracion <superpracion2@gmail.com>\n"
+"PO-Revision-Date: 2020-06-15 12:01+0000\n"
+"Last-Translator: Alex Tern <ternvein@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ru/>\n"
"Language: ru\n"
@@ -85,12 +90,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Ðеверный тип аргумента Ð´Ð»Ñ convert(), иÑпользуйте TYPE_* конÑтанты."
+msgstr "Ðеверный тип аргумента Ð´Ð»Ñ convert(), иÑпользуйте конÑтанты TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
@@ -129,7 +134,7 @@ msgstr "ÐедопуÑтимые аргументы Ð´Ð»Ñ Ð¿Ð¾ÑтроениÑ
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr "Ðа вызове '%s':"
+msgstr "Ðа вызове '%s':"
#: core/ustring.cpp
msgid "B"
@@ -340,7 +345,7 @@ msgstr "Ð’Ñ€ÐµÐ¼Ñ (Ñек.): "
#: editor/animation_track_editor.cpp
msgid "Toggle Track Enabled"
-msgstr "Переключатель дорожки включен"
+msgstr "Включить/выключить дорожку"
#: editor/animation_track_editor.cpp
msgid "Continuous"
@@ -906,7 +911,6 @@ msgstr "Ðе удаетÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ñигнал"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1516,17 +1520,9 @@ msgstr "Включить"
msgid "Rearrange Autoloads"
msgstr "ПереÑтановка автозагрузок"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "ÐедопуÑтимый путь."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Файл не ÑущеÑтвует."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Ðе в пути реÑурÑов."
+msgid "Can't add autoload:"
+msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð²Ð°Ð¸Ñ‚ÑŒ автозагрузку:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2041,7 +2037,7 @@ msgstr "КонÑтанты"
#: editor/editor_help.cpp
msgid "Property Descriptions"
-msgstr "ОпиÑание ÑвойÑтв"
+msgstr "ОпиÑÐ°Ð½Ð¸Ñ ÑвойÑтв"
#: editor/editor_help.cpp
msgid "(value)"
@@ -2057,7 +2053,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Method Descriptions"
-msgstr "ОпиÑание методов"
+msgstr "ОпиÑÐ°Ð½Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð¾Ð²"
#: editor/editor_help.cpp
msgid ""
@@ -2485,12 +2481,16 @@ msgid "Can't reload a scene that was never saved."
msgstr "Ðе возможно загрузить Ñцену, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ðµ была Ñохранена."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "ВоÑÑтановить"
+msgid "Reload Saved Scene"
+msgstr "Перезагрузить Ñохранённую Ñцену"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Это дейÑтвие Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ. ВоÑÑтановить в любом Ñлучае?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
+"Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ñцена имеет неÑохраненные изменениÑ. \n"
+"Ð’ÑÑ‘ равно перезагрузить Ñцену? Это дейÑтвие Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2539,7 +2539,7 @@ msgstr "Закрыть Ñцену"
#: editor/editor_node.cpp
msgid "Reopen Closed Scene"
-msgstr "Открыть ранее закрытую Ñцену"
+msgstr "Открыть закрытую Ñцену"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
@@ -2776,10 +2776,6 @@ msgid "Redo"
msgstr "Повторить"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "ВоÑÑтановить Ñцену"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Прочие инÑтрументы."
@@ -2861,8 +2857,8 @@ msgstr ""
"Когда Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, ÑкÑпорт или развёртывание будет Ñоздавать "
"минимальный иÑполнÑемый файл.\n"
"Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема проекта будет предоÑтавлÑÑ‚ÑŒÑÑ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð¾Ð¼ через Ñеть.\n"
-"Ðа Android развёртывание будет быÑтрее при подключении через USB.\n"
-"Эта Ð¾Ð¿Ñ†Ð¸Ñ ÑƒÑкорÑет теÑтирование больших проектов."
+"Ðа Android развёртывание будет быÑтрее при подключении через USB. Эта Ð¾Ð¿Ñ†Ð¸Ñ "
+"уÑкорÑет теÑтирование игр Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ объемом памÑти."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
@@ -3161,11 +3157,11 @@ msgstr "Выделение"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
-msgstr "Открыть 2D редактор"
+msgstr "Открыть 2D-редактор"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
-msgstr "Открыть 3D редактор"
+msgstr "Открыть 3D-редактор"
#: editor/editor_node.cpp
msgid "Open Script Editor"
@@ -3427,6 +3423,12 @@ msgstr "Ðевозможно запуÑтить Ñкрипт:"
msgid "Did you forget the '_run' method?"
msgstr "Быть может вы забыли метод _run()?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Зажмите Ctrl, чтобы округлить до целых. Зажмите Shift Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ точных "
+"изменений."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Выберите узлы Ð´Ð»Ñ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ð°"
@@ -4022,6 +4024,10 @@ msgid "Error running post-import script:"
msgstr "Ошибка запуÑка поÑÑ‚-импорт Ñкрипта:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Сохранение..."
@@ -6044,17 +6050,16 @@ msgid "Create Outline Mesh..."
msgstr "Создать полиÑетку обводки..."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid ""
"Creates a static outline mesh. The outline mesh will have its normals "
"flipped automatically.\n"
"This can be used instead of the SpatialMaterial Grow property when using "
"that property isn't possible."
msgstr ""
-"Создаёт Ñтатичную контурную полиÑетку. Её нормали будут перевёрнуты "
+"Создаёт Ñтатичную обводочную полиÑетку. Её нормали переворачиваютÑÑ "
"автоматичеÑки.\n"
-"Она может быть заменой ÑвойÑтву Grow реÑурÑа SpatialMaterial, когда Ñто "
-"ÑвойÑтво невозможно иÑпользовать."
+"Она может быть иÑпользована в Ñлучае, еÑли иÑпользовать ÑвойÑтво Grow "
+"материала SpatialMaterial не предÑтавлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹Ð¼."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "View UV1"
@@ -6678,7 +6683,7 @@ msgstr "AnimationTree - не задан путь к AnimationPlayer"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "Path to AnimationPlayer is invalid"
-msgstr "Путь к AnimationPlayer недейÑтвительный"
+msgstr "Путь к AnimationPlayer недейÑтвительный"
#: editor/plugins/script_editor_plugin.cpp
msgid "Clear Recent Files"
@@ -6969,12 +6974,13 @@ msgstr ""
"'%s'."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Строка"
+#, fuzzy
+msgid "[Ignore]"
+msgstr "(игнорировать)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(игнорировать)"
+msgid "Line"
+msgstr "Строка"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7340,7 +7346,6 @@ msgid "This operation requires a single selected node."
msgstr "Эта Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ одного выбранного узла."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Auto Orthogonal Enabled"
msgstr "Ортогональный"
@@ -7450,6 +7455,15 @@ msgid "XForm Dialog"
msgstr "XForm диалоговое окно"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "ПривÑзать узлы к полу"
@@ -9113,9 +9127,8 @@ msgid "2D texture uniform lookup."
msgstr "Равномерный поиÑк 2D-текÑтур."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "2D texture uniform lookup with triplanar."
-msgstr "Форменный поиÑк 2d текÑтуры Ñ Ñ‚Ñ€Ð¸Ð¿Ð»Ð°Ð½Ð°Ñ€Ð¾Ð¼."
+msgstr "Равномерный поиÑк 2d текÑтуры Ñ Ñ‚Ñ€Ð¸Ð¿Ð»Ð°Ð½Ð°Ñ€Ð¾Ð¼."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform function."
@@ -10152,7 +10165,6 @@ msgid "Settings saved OK."
msgstr "ÐаÑтройки Ñохранены нормально."
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Moved Input Action Event"
msgstr "Событие ввода дейÑÑ‚Ð²Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¾"
@@ -10471,7 +10483,6 @@ msgid "Regular Expression Error"
msgstr "Ошибка в регулÑрном выражении"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "At character %s"
msgstr "Ðа Ñимволе %s"
@@ -10540,8 +10551,9 @@ msgid "Instance Child Scene"
msgstr "Добавить дочернюю Ñцену"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Убрать Ñкрипт"
+#, fuzzy
+msgid "Detach Script"
+msgstr "Прикрепить Ñкрипт"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10707,6 +10719,13 @@ msgid "Open Documentation"
msgstr "Открыть документацию"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Добавить дочерний узел"
@@ -10755,11 +10774,13 @@ msgstr ""
"не ÑущеÑтвует."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "Прикрепить новый или ÑущеÑтвующий Ñкрипт к выбранному узлу."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "Убрать Ñкрипт у выбранного узла."
#: editor/scene_tree_dock.cpp
@@ -10891,6 +10912,10 @@ msgid "A directory with the same name exists."
msgstr "Каталог Ñ Ñ‚Ð°ÐºÐ¸Ð¼ же именем ÑущеÑтвует."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Файл не ÑущеÑтвует."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "ÐедопуÑтимое раÑширение."
@@ -10931,6 +10956,10 @@ msgid "File exists, it will be reused."
msgstr "Файл ÑущеÑтвует, будет иÑпользован повторно."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "ÐедопуÑтимый путь."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "ÐедопуÑтимое Ð¸Ð¼Ñ ÐºÐ»Ð°ÑÑа."
@@ -11979,6 +12008,13 @@ msgstr ""
"предуÑтановках."
#: platform/android/export/export.cpp
+#, fuzzy
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"ÐžÑ‚Ð»Ð°Ð´Ð¾Ñ‡Ð½Ð°Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð° не наÑтроена ни в наÑтройках редактора, ни в "
+"предуÑтановках."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"ПользовательÑÐºÐ°Ñ Ñборка требует Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð³Ð¾ пути к Android SDK в "
@@ -12007,6 +12043,32 @@ msgstr "ÐедопуÑтимое Ð¸Ð¼Ñ Ð¿Ð°ÐºÐµÑ‚Ð°:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12039,7 +12101,6 @@ msgstr ""
"Android."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "No build apk generated at: "
msgstr "Ðет Ñборки apk в: "
@@ -12235,10 +12296,9 @@ msgstr ""
"чтобы работать."
#: scene/2d/light_occluder_2d.cpp
-#, fuzzy
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
-"ЗаÑлонÑющий полигон Ð´Ð»Ñ Ñтого окклюдера пуÑÑ‚. ПожалуйÑта, нариÑуйте полигон!"
+"ЗаÑлонÑющий полигон Ð´Ð»Ñ Ñтого окклюдера пуÑÑ‚. ПожалуйÑта, нариÑуйте полигон."
#: scene/2d/navigation_polygon.cpp
msgid ""
@@ -12725,8 +12785,7 @@ msgid ""
msgstr ""
"ScrollContainer предназначен Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð¾Ð´Ð½Ð¸Ð¼ дочерним Ñлементом "
"управлениÑ.\n"
-"ИÑпользуйте дочерний контейнер (VBox, HBox и Ñ‚.д.), или Control и "
-"уÑтановите\n"
+"ИÑпользуйте дочерний контейнер (VBox, HBox и Ñ‚.д.), или Control и уÑтановите "
"минимальный размер вручную."
#: scene/gui/tree.cpp
@@ -12786,6 +12845,21 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð
msgid "Constants cannot be modified."
msgstr "КонÑтанты не могут быть изменены."
+#~ msgid "Not in resource path."
+#~ msgstr "Ðе в пути реÑурÑов."
+
+#~ msgid "Revert"
+#~ msgstr "ВоÑÑтановить"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Это дейÑтвие Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ. ВоÑÑтановить в любом Ñлучае?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "ВоÑÑтановить Ñцену"
+
+#~ msgid "Clear Script"
+#~ msgstr "Убрать Ñкрипт"
+
#~ msgid "Issue Tracker"
#~ msgstr "СиÑтема отÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¾ÑˆÐ¸Ð±Ð¾Ðº"
diff --git a/editor/translations/si.po b/editor/translations/si.po
index 2eb9cad3f8..4d252a53d6 100644
--- a/editor/translations/si.po
+++ b/editor/translations/si.po
@@ -836,7 +836,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1436,16 +1435,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2366,11 +2357,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "à·ƒà·à¶¯à¶±à·Šà¶±"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2636,10 +2630,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3246,6 +3236,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3832,6 +3826,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6727,11 +6725,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7202,6 +7200,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10143,7 +10150,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10304,6 +10311,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10350,11 +10364,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10474,6 +10488,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10514,6 +10532,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11551,6 +11573,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11574,6 +11600,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index 295b7ac429..a341552d1c 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -9,11 +9,12 @@
# Michal <alladinsiffon@gmail.com>, 2019.
# Richard <rgarlik@gmail.com>, 2019.
# Richard Urban <redasuio1@gmail.com>, 2020.
+# Anonymous <noreply@weblate.org>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-01 11:42+0000\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
"Last-Translator: Richard Urban <redasuio1@gmail.com>\n"
"Language-Team: Slovak <https://hosted.weblate.org/projects/godot-engine/"
"godot/sk/>\n"
@@ -22,7 +23,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.0.2\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -31,17 +32,17 @@ msgstr "Chybný argument convert(), použite TYPE_* konštanty."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "OÄakávaná dĺžka stringu 1 (písmeno)."
+msgstr "dĺžka oÄakávaného stringu 1 (písmeno)"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "Nedostatok bajtov na dekódovanie, možný chybný formát."
+msgstr "Nedostatok bajtov na dekódovanie, alebo chybný formát."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "Nesprávny vstup %i (chýba) vo výraze"
+msgstr "Neplatný vstup %i (neprešlo) vo výraze"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
@@ -97,7 +98,7 @@ msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
-msgstr "Voľné"
+msgstr "zadarmo"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
@@ -117,7 +118,7 @@ msgstr "Hodnota:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr "VložiÅ¥ tu kľúÄ"
+msgstr "Sem Vložte KľúÄ"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
@@ -125,7 +126,7 @@ msgstr "DuplikovaÅ¥ kľúÄ(e)"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr "ZmazaÅ¥ kľúÄ(e)"
+msgstr "ZmazaÅ¥ oznaÄené kľúÄ(e)"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
@@ -133,64 +134,64 @@ msgstr "Pridať Bezierov bod"
#: editor/animation_bezier_editor.cpp
msgid "Move Bezier Points"
-msgstr "Presunúť Vybraté Body"
+msgstr "Presunúť Bazier Points"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "Animácia DuplikovaÅ¥ KľúÄe"
+msgstr "Anim DuplikovaÅ¥ KľúÄe"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
-msgstr "Animácia VymazaÅ¥ KľúÄe"
+msgstr "Anim ZmazaÅ¥ KľúÄe"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Time"
-msgstr "Animácia Zmeniť Keyframe Čas"
+msgstr "Anim Zmeniť Keyframe Čas"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
-msgstr "Animácia zmeniť prechod"
+msgstr "Anim zmeniť prechod"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
-msgstr "Zmeniť Veľkosť Animácie"
+msgstr "Anim Zmeniť Veľkosť"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
-msgstr "Animácia Zmeniť Keyframe Hodnotu"
+msgstr "Anim Zmeniť Hodnotu Keyframe"
#: editor/animation_track_editor.cpp
msgid "Anim Change Call"
-msgstr "Animácia zmenila Hovor"
+msgstr "Anim Change Call"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Keyframe Time"
-msgstr "Animácia ZmeniÅ¥ Äas Keyframe-u"
+msgstr "Anim ZmeniÅ¥ Äas Keyframe-u"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Transition"
-msgstr "Zmeniť Transition Animácie"
+msgstr "Animácia zmeniť prechod(Anim Multi Change Transition)"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Transform"
-msgstr "Animácia zmeniť Transform"
+msgstr "Anim zmeniť Transform"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Keyframe Value"
-msgstr "Animácia Zmeniť hodnotu Keyframe-u"
+msgstr "Animácia Zmeniť Keyframe Hodnotu (Anim Multi Change Keyframe Value)"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Call"
-msgstr "Animácia Zmenila Hovor"
+msgstr "Animácia Zmeniť Hovor (Anim Multi Change Call)"
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
-msgstr "Zmeniť Dĺžku Animácie"
+msgstr "Zmeniť Dĺžku Animácie (Change Animation Length)"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr "Zmeniť Dĺžku Animácie"
+msgstr "Zmeniť opakovanie Animácie (Change Animation Loop)"
#: editor/animation_track_editor.cpp
msgid "Property Track"
@@ -206,7 +207,7 @@ msgstr "Call Method Track"
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
-msgstr "Krivka Bezier Track"
+msgstr "Bezier Curve Track"
#: editor/animation_track_editor.cpp
msgid "Audio Playback Track"
@@ -214,7 +215,7 @@ msgstr "Audio Playback Track"
#: editor/animation_track_editor.cpp
msgid "Animation Playback Track"
-msgstr "Playback Track Animácie"
+msgstr "Animation Playback Track"
#: editor/animation_track_editor.cpp
msgid "Animation length (frames)"
@@ -836,7 +837,6 @@ msgstr "Nedá sa pripojiť signál"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1446,17 +1446,9 @@ msgstr "Povoliť"
msgid "Rearrange Autoloads"
msgstr "Rearandžovať AutoLoad-y"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Neplatná cesta."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Súbor neexistuje."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Nieje v resource path."
+msgid "Can't add autoload:"
+msgstr "Nepodarilo sa pridať autoload:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2414,12 +2406,16 @@ msgid "Can't reload a scene that was never saved."
msgstr "Nemožno naÄítaÅ¥ scénu, ktorá nikdy nebola uložená."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Revert"
+msgid "Reload Saved Scene"
+msgstr "Reloadnuť Uloženú Scénu"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Túto akciu nie je možné vrátiť späť. Chcete Revertovatť aj tak?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
+"Táto scéna má neuložené zmeny.\n"
+"Aj tak chcete scény reloadnuÅ¥? Táto akcia nomôže byÅ¥ nedokonÄená."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2705,10 +2701,6 @@ msgid "Redo"
msgstr "Prerobiť"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Vrátiť Scénu"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Zmiešanosti projektových alebo scénových wide tool-ov."
@@ -3075,176 +3067,172 @@ msgid "Open & Run a Script"
msgstr "Otvoriť & Spustiť Script"
#: editor/editor_node.cpp
-#, fuzzy
msgid "New Inherited"
-msgstr "Popis:"
+msgstr "Novo Zdedené"
#: editor/editor_node.cpp
msgid "Load Errors"
-msgstr ""
+msgstr "NaÄítaÅ¥ Chyby"
#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
msgid "Select"
-msgstr ""
+msgstr "Zvoliť"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open 2D Editor"
-msgstr "Otvorit prieÄinok"
+msgstr "Otvoriť 2D Editor"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open 3D Editor"
-msgstr "Otvorit prieÄinok"
+msgstr "Otvoriť 3D Editor"
#: editor/editor_node.cpp
msgid "Open Script Editor"
-msgstr ""
+msgstr "Otvoriť Editor Skriptov"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
-msgstr ""
+msgstr "Otvoriť Knižnicu \"Assetov\""
#: editor/editor_node.cpp
msgid "Open the next Editor"
-msgstr ""
+msgstr "Otvoriť následujúci Editor"
#: editor/editor_node.cpp
msgid "Open the previous Editor"
-msgstr ""
+msgstr "Otvoriť predchádzajúci Editor"
#: editor/editor_node.h
msgid "Warning!"
-msgstr ""
+msgstr "Varovanie!"
#: editor/editor_path.cpp
msgid "No sub-resources found."
-msgstr ""
+msgstr "Nenašli sa žiadne \"sub-resources\"."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
-msgstr ""
+msgstr "Vytváranie Zobrazenia \"Mesh-u\""
#: editor/editor_plugin.cpp
msgid "Thumbnail..."
-msgstr ""
+msgstr "\"Thumbnail\"..."
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Main Script:"
-msgstr "Popis:"
+msgstr "Hlavný Script:"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Edit Plugin"
-msgstr "Signály:"
+msgstr "Editovať Plugin"
#: editor/editor_plugin_settings.cpp
msgid "Installed Plugins:"
-msgstr ""
+msgstr "Nainštalované Plugins:"
#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
msgid "Update"
-msgstr ""
+msgstr "Update"
#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Version:"
-msgstr ""
+msgstr "Verzia:"
#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
msgid "Author:"
-msgstr ""
+msgstr "Autor:"
#: editor/editor_plugin_settings.cpp
msgid "Status:"
-msgstr ""
+msgstr "Status:"
#: editor/editor_plugin_settings.cpp
msgid "Edit:"
-msgstr ""
+msgstr "Edit:"
#: editor/editor_profiler.cpp
msgid "Measure:"
-msgstr ""
+msgstr "Opatrenia:"
#: editor/editor_profiler.cpp
msgid "Frame Time (sec)"
-msgstr ""
+msgstr "Čas Snímky (v sek.)"
#: editor/editor_profiler.cpp
msgid "Average Time (sec)"
-msgstr ""
+msgstr "Priemerný Čas (v sek.)"
#: editor/editor_profiler.cpp
msgid "Frame %"
-msgstr ""
+msgstr "Snímka %"
#: editor/editor_profiler.cpp
msgid "Physics Frame %"
-msgstr ""
+msgstr "Fyzická Snímka %"
#: editor/editor_profiler.cpp
msgid "Inclusive"
-msgstr ""
+msgstr "Inkluzívne"
#: editor/editor_profiler.cpp
msgid "Self"
-msgstr ""
+msgstr "Vlastné"
#: editor/editor_profiler.cpp
msgid "Frame #:"
-msgstr ""
+msgstr "Snímka #:"
#: editor/editor_profiler.cpp
msgid "Time"
-msgstr ""
+msgstr "ÄŒas"
#: editor/editor_profiler.cpp
msgid "Calls"
-msgstr ""
+msgstr "Volania"
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Edit Text:"
-msgstr "Súbor:"
+msgstr "Editovať Text:"
#: editor/editor_properties.cpp editor/script_create_dialog.cpp
msgid "On"
-msgstr ""
+msgstr "Zapnúť"
#: editor/editor_properties.cpp
msgid "Layer"
-msgstr ""
+msgstr "Vrstva"
#: editor/editor_properties.cpp
msgid "Bit %d, value %d"
-msgstr ""
+msgstr "Bit %d, hodnota %d"
#: editor/editor_properties.cpp
msgid "[Empty]"
-msgstr ""
+msgstr "[Prázdne]"
#: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp
msgid "Assign..."
-msgstr ""
+msgstr "Priradiť..."
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Invalid RID"
-msgstr "Nesprávna veľkosť písma."
+msgstr "Nesprávny \"RID\""
#: editor/editor_properties.cpp
msgid ""
"The selected resource (%s) does not match any type expected for this "
"property (%s)."
msgstr ""
+"Vybraný prostriedok (%s) sa nezhoduje žiadnemu typu pre túto vlastnosť (%s)."
#: editor/editor_properties.cpp
msgid ""
"Can't create a ViewportTexture on resources saved as a file.\n"
"Resource needs to belong to a scene."
msgstr ""
+"Nepodarilo sa vytvoriť ViewportTextúru na zdroj uložený ako súbor.\n"
+"Zdroj musí patriť scéne."
#: editor/editor_properties.cpp
msgid ""
@@ -3253,28 +3241,30 @@ msgid ""
"Please switch on the 'local to scene' property on it (and all resources "
"containing it up to a node)."
msgstr ""
+"Nepodarilo sa vytvoriť ViewportTextúru na tomto zdroji lebo není nastavený "
+"ako lokálna scéna.\n"
+"Prosím zmeňte ho vo vlastnosti 'local to scene' (a všetky zdroje ktoré ho "
+"obsahujú hore v node-e)."
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Pick a Viewport"
-msgstr ""
+msgstr "Vybrať Viewport"
#: editor/editor_properties.cpp editor/property_editor.cpp
-#, fuzzy
msgid "New Script"
-msgstr "Popis:"
+msgstr "Nový Script"
#: editor/editor_properties.cpp editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Extend Script"
-msgstr "Popis:"
+msgstr "\"Extendovaný\" Script"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "New %s"
-msgstr ""
+msgstr "Nový %s"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Make Unique"
-msgstr ""
+msgstr "SpraviÅ¥ JedineÄným"
#: editor/editor_properties.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
@@ -3292,845 +3282,837 @@ msgstr "Vložiť"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Convert To %s"
-msgstr ""
+msgstr "Konvertovať Do %s"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Selected node is not a Viewport!"
-msgstr ""
+msgstr "Vybraný node není Viewport!"
#: editor/editor_properties_array_dict.cpp
msgid "Size: "
-msgstr ""
+msgstr "Veľkosť: "
#: editor/editor_properties_array_dict.cpp
msgid "Page: "
-msgstr ""
+msgstr "Strana: "
#: editor/editor_properties_array_dict.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Item"
-msgstr ""
+msgstr "Vymazať Predmet"
#: editor/editor_properties_array_dict.cpp
msgid "New Key:"
-msgstr ""
+msgstr "Nový KľúÄ:"
#: editor/editor_properties_array_dict.cpp
msgid "New Value:"
-msgstr ""
+msgstr "Nová Hodnota:"
#: editor/editor_properties_array_dict.cpp
msgid "Add Key/Value Pair"
-msgstr ""
+msgstr "PridaÅ¥ KľúÄ/Hodnota \"Pair\""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the export menu."
msgstr ""
+"Pre túto platformu sa nenašiel žiadny spustiteľný \"export preset\" .\n"
+"Prosím pridajte spustiteľný \"preset\" v export menu."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
-msgstr ""
+msgstr "Napíšte svoju logiku v metóde _run()."
#: editor/editor_run_script.cpp
msgid "There is an edited scene already."
-msgstr ""
+msgstr "Už tu je editovaná scéna."
#: editor/editor_run_script.cpp
msgid "Couldn't instance script:"
-msgstr ""
+msgstr "Nepodarilo sa inštancovať script:"
#: editor/editor_run_script.cpp
msgid "Did you forget the 'tool' keyword?"
-msgstr ""
+msgstr "Zabudli ste skratku pre 'tool'?"
#: editor/editor_run_script.cpp
msgid "Couldn't run script:"
-msgstr ""
+msgstr "Nepodarilo sa spustiť script:"
#: editor/editor_run_script.cpp
msgid "Did you forget the '_run' method?"
+msgstr "Nezabudli ste na metódu '_run'?"
+
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
msgstr ""
+"Podržte Ctrl na zaokrúhlenie na celé Äísla. Podržte Shift pre viac precízne "
+"zmeny."
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
-msgstr ""
+msgstr "Vyberte Node(y) pre Importovanie"
#: editor/editor_sub_scene.cpp editor/project_manager.cpp
msgid "Browse"
-msgstr ""
+msgstr "Vyhladať"
#: editor/editor_sub_scene.cpp
msgid "Scene Path:"
-msgstr ""
+msgstr "Cesta Scény:"
#: editor/editor_sub_scene.cpp
msgid "Import From Node:"
-msgstr ""
+msgstr "Importovať Z Node-u:"
#: editor/export_template_manager.cpp
msgid "Redownload"
-msgstr ""
+msgstr "Preinštalovať"
#: editor/export_template_manager.cpp
msgid "Uninstall"
-msgstr ""
+msgstr "Odinštalovať"
#: editor/export_template_manager.cpp
msgid "(Installed)"
-msgstr ""
+msgstr "(Nainštalované)"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download"
-msgstr ""
+msgstr "Stiahnuté"
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
-msgstr ""
+msgstr "Oficiálne export šablóny niesu dostupné pre \"development builds\"."
#: editor/export_template_manager.cpp
msgid "(Missing)"
-msgstr ""
+msgstr "(Chýba)"
#: editor/export_template_manager.cpp
msgid "(Current)"
-msgstr ""
+msgstr "(Aktuálny)"
#: editor/export_template_manager.cpp
msgid "Retrieving mirrors, please wait..."
-msgstr ""
+msgstr "NaÄítavanie zrkadiel, prosím Äakajte..."
#: editor/export_template_manager.cpp
msgid "Remove template version '%s'?"
-msgstr ""
+msgstr "Vymazať verziu šablóny '%s'?"
#: editor/export_template_manager.cpp
msgid "Can't open export templates zip."
-msgstr ""
+msgstr "Nedá sa otvoriť export templates zip."
#: editor/export_template_manager.cpp
msgid "Invalid version.txt format inside templates: %s."
-msgstr ""
+msgstr "Neplatný version.txt formát vo vnútri šablón: %s."
#: editor/export_template_manager.cpp
msgid "No version.txt found inside templates."
-msgstr ""
+msgstr "Nenašla sa žiadny version.txt vo vnútri šablón."
#: editor/export_template_manager.cpp
msgid "Error creating path for templates:"
-msgstr ""
+msgstr "Chyba pri vytváraní cesty pre šablóny:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
-msgstr ""
+msgstr "Extrahovanie exportných šablón"
#: editor/export_template_manager.cpp
msgid "Importing:"
-msgstr ""
+msgstr "Importovanie:"
#: editor/export_template_manager.cpp
msgid "Error getting the list of mirrors."
-msgstr ""
+msgstr "Chyba pri získavaní listu zrkadiel."
#: editor/export_template_manager.cpp
msgid "Error parsing JSON of mirror list. Please report this issue!"
-msgstr ""
+msgstr "Chyba pri rozbore JSON listu zrkadiel. Prosím nahláste túto chybu!"
#: editor/export_template_manager.cpp
msgid ""
"No download links found for this version. Direct download is only available "
"for official releases."
msgstr ""
+"Nenašli sa žiadne download linky pre túto verziu. Priame stiahnutie je "
+"dostupný iba pre \"official releases\"."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve."
-msgstr ""
+msgstr "Nerozpoznané."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect."
-msgstr ""
+msgstr "Nedá sa pripojiť."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No response."
-msgstr ""
+msgstr "Žiadna odozva."
#: editor/export_template_manager.cpp
msgid "Request Failed."
-msgstr ""
+msgstr "Žiadosť Zlihala."
#: editor/export_template_manager.cpp
msgid "Redirect Loop."
-msgstr ""
+msgstr "Presmerovanie \"Loop-u\"."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed:"
-msgstr ""
+msgstr "Zlihalo:"
#: editor/export_template_manager.cpp
msgid "Download Complete."
-msgstr ""
+msgstr "InÅ¡talácia je DokonÄená."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cannot remove temporary file:"
-msgstr "Nemôžete odstrániť:"
+msgstr "Nepodarilo sa vymazaÅ¥ doÄasné súbory:"
#: editor/export_template_manager.cpp
msgid ""
"Templates installation failed.\n"
"The problematic templates archives can be found at '%s'."
msgstr ""
+"Inštalácia šablón zlihala.\n"
+"Archívy problémových šablón nájdete v '%s'."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
-msgstr ""
+msgstr "Chyba pri zadávaní URL:"
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror..."
-msgstr ""
+msgstr "Prebieha Pripájanie do Zrkadla..."
#: editor/export_template_manager.cpp
msgid "Disconnected"
-msgstr ""
+msgstr "Odpojené"
#: editor/export_template_manager.cpp
msgid "Resolving"
-msgstr ""
+msgstr "Riešenie"
#: editor/export_template_manager.cpp
msgid "Can't Resolve"
-msgstr ""
+msgstr "Nepodarilo sa Vyriešiť"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Connecting..."
-msgstr ""
+msgstr "Pripájanie..."
#: editor/export_template_manager.cpp
msgid "Can't Connect"
-msgstr ""
+msgstr "Nepodarilo sa pripojiť"
#: editor/export_template_manager.cpp
msgid "Connected"
-msgstr ""
+msgstr "Pripojené"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Requesting..."
-msgstr ""
+msgstr "Requestuje sa..."
#: editor/export_template_manager.cpp
msgid "Downloading"
-msgstr ""
+msgstr "Inštalovanie"
#: editor/export_template_manager.cpp
msgid "Connection Error"
-msgstr ""
+msgstr "Chyba pri Pripájaní"
#: editor/export_template_manager.cpp
msgid "SSL Handshake Error"
-msgstr ""
+msgstr "Chyba SSL Handshake"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
-msgstr ""
+msgstr "Nekompresované \"Android Build Sources\""
#: editor/export_template_manager.cpp
msgid "Current Version:"
-msgstr ""
+msgstr "Aktuálna Verzia:"
#: editor/export_template_manager.cpp
msgid "Installed Versions:"
-msgstr ""
+msgstr "Inštalované Verzie:"
#: editor/export_template_manager.cpp
msgid "Install From File"
-msgstr ""
+msgstr "Inštalovať Zo Súboru"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove Template"
-msgstr "Všetky vybrané"
+msgstr "Vymazať Šablónu"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select Template File"
-msgstr "Vytvoriť adresár"
+msgstr "Vybrať Súbor Šablóny"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Godot Export Templates"
-msgstr "Všetky vybrané"
+msgstr "Godot Exportovanie Šablón"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
-msgstr ""
+msgstr "Exportovať Manažera Šablón"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download Templates"
-msgstr "Všetky vybrané"
+msgstr "Stiahnuť Šablónu"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: (Shift+Click: Open in Browser)"
-msgstr ""
+msgstr "Vybrať zrkadlo z listu: (Shift+Click: Open in Browser)"
#: editor/filesystem_dock.cpp
msgid "Favorites"
-msgstr ""
+msgstr "Obľúbené"
#: editor/filesystem_dock.cpp
msgid "Status: Import of file failed. Please fix file and reimport manually."
msgstr ""
+"Status:Import súboru zlihal. Prosím opravte súbor a manuálne reimportujte."
#: editor/filesystem_dock.cpp
msgid "Cannot move/rename resources root."
-msgstr ""
+msgstr "Nedá sa presunúť/premenovať \"resources root\"."
#: editor/filesystem_dock.cpp
msgid "Cannot move a folder into itself."
-msgstr ""
+msgstr "Nadá sa presunúť priÄinok do toho istého prieÄinku."
#: editor/filesystem_dock.cpp
msgid "Error moving:"
-msgstr ""
+msgstr "Chyba pri presúvaní:"
#: editor/filesystem_dock.cpp
msgid "Error duplicating:"
-msgstr ""
+msgstr "Chyba pri duplikovaní:"
#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:"
-msgstr ""
+msgstr "Nepodarilo sa update-nuť závislosti:"
#: editor/filesystem_dock.cpp editor/scene_tree_editor.cpp
msgid "No name provided."
-msgstr ""
+msgstr "Nieje uvedené žiadne meno."
#: editor/filesystem_dock.cpp
msgid "Provided name contains invalid characters."
-msgstr ""
+msgstr "Toto meno obsahuje nepodporované písmená."
#: editor/filesystem_dock.cpp
msgid "A file or folder with this name already exists."
-msgstr ""
+msgstr "Súbor alebo prieÄinok s tímto menom už existuje."
#: editor/filesystem_dock.cpp
msgid "Name contains invalid characters."
-msgstr ""
+msgstr "Meno obsahuje neplatné písmená."
#: editor/filesystem_dock.cpp
msgid "Renaming file:"
-msgstr ""
+msgstr "Zostávajúce súbory:"
#: editor/filesystem_dock.cpp
msgid "Renaming folder:"
-msgstr ""
+msgstr "Zostávajúce prieÄinky:"
#: editor/filesystem_dock.cpp
msgid "Duplicating file:"
-msgstr ""
+msgstr "Duplikovanie súborov:"
#: editor/filesystem_dock.cpp
msgid "Duplicating folder:"
-msgstr ""
+msgstr "Duplikovanie prieÄinka:"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Inherited Scene"
-msgstr "Popis:"
+msgstr "Nová Zdedená Scéna"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Set As Main Scene"
-msgstr "Uložiť súbor"
+msgstr "Nastaviť ako Hlavnú Scénu"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Open Scenes"
-msgstr "Otvoriť súbor(y)"
+msgstr "Otvoriť Scény"
#: editor/filesystem_dock.cpp
msgid "Instance"
-msgstr ""
+msgstr "Inštancie"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Add to Favorites"
-msgstr "Obľúbené:"
+msgstr "Pridať do Obľúbených"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Remove from Favorites"
-msgstr "Všetky vybrané"
+msgstr "Odstrániť z Obľúbených"
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies..."
-msgstr ""
+msgstr "Editovať Závislosti..."
#: editor/filesystem_dock.cpp
msgid "View Owners..."
-msgstr ""
+msgstr "Zobraziť Majiteľov..."
#: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Rename..."
-msgstr ""
+msgstr "Premenovať..."
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
-msgstr ""
+msgstr "Duplikovať..."
#: editor/filesystem_dock.cpp
msgid "Move To..."
-msgstr ""
+msgstr "Presunúť Do..."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Scene..."
-msgstr "Popis:"
+msgstr "Nová Scéna..."
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "New Script..."
-msgstr "Popis:"
+msgstr "Nový Script..."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Resource..."
-msgstr "Vytvoriť adresár"
+msgstr "Nový Prostriedok..."
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
msgid "Expand All"
-msgstr ""
+msgstr "Expandovať Všetky"
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
msgid "Collapse All"
-msgstr ""
+msgstr "Collapse All"
#: editor/filesystem_dock.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#: editor/project_manager.cpp editor/rename_dialog.cpp
#: editor/scene_tree_dock.cpp
msgid "Rename"
-msgstr ""
+msgstr "Premenovať"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Previous Folder/File"
-msgstr "Vytvoriť adresár"
+msgstr "Minulý PrieÄinok/Súbor"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Next Folder/File"
-msgstr "Vytvoriť adresár"
+msgstr "ÄŽalší PrieÄinok/Súbor"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
-msgstr ""
+msgstr "Preskenovať Filesystem"
#: editor/filesystem_dock.cpp
msgid "Toggle Split Mode"
-msgstr ""
+msgstr "Prepnúť Split Mode"
#: editor/filesystem_dock.cpp
msgid "Search files"
-msgstr ""
+msgstr "Vyhľadať súbory"
#: editor/filesystem_dock.cpp
msgid ""
"Scanning Files,\n"
"Please Wait..."
msgstr ""
+"Skenujem Súbory,\n"
+"PoÄkajte Prosím..."
#: editor/filesystem_dock.cpp
msgid "Move"
-msgstr ""
+msgstr "Presunúť"
#: editor/filesystem_dock.cpp
msgid "There is already file or folder with the same name in this location."
-msgstr ""
+msgstr "Už tu je súbor alebo prieÄinok pomenovaný rovnako."
#: editor/filesystem_dock.cpp
msgid "Overwrite"
-msgstr ""
+msgstr "Prepísať"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Create Scene"
-msgstr "Vytvoriť adresár"
+msgstr "Vytvoriť Scénu"
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
-msgstr ""
+msgstr "Vytvoriť Script"
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Find in Files"
-msgstr "Súbor:"
+msgstr "Nájsť v Súboroch"
#: editor/find_in_files.cpp
msgid "Find:"
-msgstr ""
+msgstr "Nájsť:"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Folder:"
-msgstr "Vytvoriť adresár"
+msgstr "PrieÄinok:"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Filters:"
-msgstr "Filter:"
+msgstr "Filtre:"
#: editor/find_in_files.cpp
msgid ""
"Include the files with the following extensions. Add or remove them in "
"ProjectSettings."
msgstr ""
+"Obsahuje súbory s následujúcimi extensiami. Pridajte ich alebo Odstránte v "
+"NastaveniachProjektu."
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find..."
-msgstr ""
+msgstr "Nájsť..."
#: editor/find_in_files.cpp editor/plugins/script_text_editor.cpp
msgid "Replace..."
-msgstr ""
+msgstr "Nahradiť..."
#: editor/find_in_files.cpp editor/progress_dialog.cpp scene/gui/dialogs.cpp
msgid "Cancel"
-msgstr ""
+msgstr "Zrušiť"
#: editor/find_in_files.cpp
msgid "Find: "
-msgstr ""
+msgstr "Nájsť: "
#: editor/find_in_files.cpp
msgid "Replace: "
-msgstr ""
+msgstr "Nahradiť: "
#: editor/find_in_files.cpp
msgid "Replace all (no undo)"
-msgstr ""
+msgstr "Nahradiť všetky (nedá sa vrátiť späť)"
#: editor/find_in_files.cpp
msgid "Searching..."
-msgstr ""
+msgstr "Vyhľadávam..."
#: editor/find_in_files.cpp
msgid "Search complete"
-msgstr ""
+msgstr "Vyhľadávanie bolo dokonÄené"
#: editor/groups_editor.cpp
msgid "Add to Group"
-msgstr ""
+msgstr "Pridať do Skupiny"
#: editor/groups_editor.cpp
msgid "Remove from Group"
-msgstr ""
+msgstr "Vymazať zo Skupiny"
#: editor/groups_editor.cpp
msgid "Group name already exists."
-msgstr ""
+msgstr "Meno skupiny už existuje."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Invalid group name."
-msgstr "Nesprávna veľkosť písma."
+msgstr "Neplatné meno skupiny."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Rename Group"
-msgstr "Všetky vybrané"
+msgstr "Premenovať Skupinu"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Delete Group"
-msgstr "Všetky vybrané"
+msgstr "Zmazať Skupinu"
#: editor/groups_editor.cpp editor/node_dock.cpp
msgid "Groups"
-msgstr ""
+msgstr "Skupiny"
#: editor/groups_editor.cpp
msgid "Nodes Not in Group"
-msgstr ""
+msgstr "Node-y Nie sú v Skupine"
#: editor/groups_editor.cpp editor/scene_tree_dock.cpp
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Filter nodes"
-msgstr "Filter:"
+msgstr "Filter Node-y"
#: editor/groups_editor.cpp
msgid "Nodes in Group"
-msgstr ""
+msgstr "Node-y v Skupine"
#: editor/groups_editor.cpp
msgid "Empty groups will be automatically removed."
-msgstr ""
+msgstr "Prázdne Skupiny budú automaticky zmazané."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Group Editor"
-msgstr "Otvorit prieÄinok"
+msgstr "Editor Skupín"
#: editor/groups_editor.cpp
msgid "Manage Groups"
-msgstr ""
+msgstr "Spravovať Skupiny"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Single Scene"
-msgstr ""
+msgstr "Importovať ako Samostatnú Scénu"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Animations"
-msgstr ""
+msgstr "Importovať z Oddelenými Animáciami"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials"
-msgstr ""
+msgstr "Importovať z Oddelenými Materiálmi"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects"
-msgstr ""
+msgstr "Importovať z Oddelenými Objektami"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials"
-msgstr ""
+msgstr "Importovať z Oddelenými Objektami+Materiálmi"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Animations"
-msgstr ""
+msgstr "Importovať z Oddelenými Objektami+Animáciami"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials+Animations"
-msgstr ""
+msgstr "Importovať z Oddelenými Materiálmi+Animáciami"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials+Animations"
-msgstr ""
+msgstr "Importovať z Oddelenými Objektami+Materiálmi+Animáciami"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes"
-msgstr ""
+msgstr "Importovať ako Dvojité Scény"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes+Materials"
-msgstr ""
+msgstr "Importovať ako Dvojité Scény+Materiály"
#: editor/import/resource_importer_scene.cpp
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Import Scene"
-msgstr ""
+msgstr "Importovať Scénu"
#: editor/import/resource_importer_scene.cpp
msgid "Importing Scene..."
-msgstr ""
+msgstr "Importujem Scénu..."
#: editor/import/resource_importer_scene.cpp
msgid "Generating Lightmaps"
-msgstr ""
+msgstr "Generovanie Lightmaps"
#: editor/import/resource_importer_scene.cpp
msgid "Generating for Mesh: "
-msgstr ""
+msgstr "Generovanie pre Mesh: "
#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script..."
-msgstr ""
+msgstr "Spustiť Vlastný Script..."
#: editor/import/resource_importer_scene.cpp
msgid "Couldn't load post-import script:"
-msgstr ""
+msgstr "Nepodarilo sa naÄítaÅ¥ post-import script:"
#: editor/import/resource_importer_scene.cpp
msgid "Invalid/broken script for post-import (check console):"
-msgstr ""
+msgstr "Neplatný/rozbitý script pre post-import (prezrite konzolu):"
#: editor/import/resource_importer_scene.cpp
msgid "Error running post-import script:"
-msgstr ""
+msgstr "Chyba pri spustení post-import scriptu:"
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr "Vrátili ste Node-derived objekt v `post_import()` metóde?"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
-msgstr ""
+msgstr "Ukladám..."
#: editor/import_dock.cpp
-#, fuzzy
msgid "%d Files"
-msgstr "Súbor:"
+msgstr "%d Súbory"
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
-msgstr ""
+msgstr "Nastaviť ako Štandardné pre '%s'"
#: editor/import_dock.cpp
msgid "Clear Default for '%s'"
-msgstr ""
+msgstr "VyÄistiÅ¥ Å tandardné pre '%s'"
#: editor/import_dock.cpp
msgid "Import As:"
-msgstr ""
+msgstr "Importovať Ako:"
#: editor/import_dock.cpp
-#, fuzzy
msgid "Preset"
-msgstr "NaÄítaÅ¥ predvolené"
+msgstr "Preset"
#: editor/import_dock.cpp
msgid "Reimport"
-msgstr ""
+msgstr "Reimportovať"
#: editor/import_dock.cpp
msgid "Save Scenes, Re-Import, and Restart"
-msgstr ""
+msgstr "Uložiť Scény, Re-Importovať, a Reštartovať"
#: editor/import_dock.cpp
msgid "Changing the type of an imported file requires editor restart."
-msgstr ""
+msgstr "Mení sa typ impotovaného súboru, treba reštartovať editor."
#: editor/import_dock.cpp
msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+"VAROVANIE: Položky ktoré existujú v tomto prostriedku, Sa nemusia naÄitaÅ¥ "
+"správne."
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
-msgstr ""
+msgstr "Nepodarilo sa naÄítaÅ¥ prostriedok."
#: editor/inspector_dock.cpp
msgid "Expand All Properties"
-msgstr ""
+msgstr "Expandovať Všetky Vlastnosti"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Collapse All Properties"
-msgstr "Filter:"
+msgstr "Collapsovať Všetky Vlastnosti"
#: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
msgid "Save As..."
-msgstr ""
+msgstr "Uložiť Ako..."
#: editor/inspector_dock.cpp
msgid "Copy Params"
-msgstr ""
+msgstr "Skopírovať Parametre"
#: editor/inspector_dock.cpp
msgid "Edit Resource Clipboard"
-msgstr ""
+msgstr "Editovať Clipboard Prostriedku"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
-msgstr ""
+msgstr "Skopírovať Prostriedok"
#: editor/inspector_dock.cpp
msgid "Make Built-In"
-msgstr ""
+msgstr "Spraviť Built-In"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
-msgstr ""
+msgstr "Spraviť Sub-Prostriedky Unikátne"
#: editor/inspector_dock.cpp
msgid "Open in Help"
-msgstr ""
+msgstr "Otvoriť v Pomoci"
#: editor/inspector_dock.cpp
msgid "Create a new resource in memory and edit it."
-msgstr ""
+msgstr "Vytvoriť nový prostriedok v pamäti a upraviť ho."
#: editor/inspector_dock.cpp
msgid "Load an existing resource from disk and edit it."
-msgstr ""
+msgstr "NaÄítaÅ¥ existujúci prostriedok z disku a upraviÅ¥ ho."
#: editor/inspector_dock.cpp
msgid "Save the currently edited resource."
-msgstr ""
+msgstr "Uložiť aktuálne upravený prostriedok."
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
-msgstr ""
+msgstr "ÃsÅ¥ do histórie predchádzajúceho upravovaného objekta."
#: editor/inspector_dock.cpp
msgid "Go to the next edited object in history."
-msgstr ""
+msgstr "ÃsÅ¥ do ÄalÅ¡ej histórie upraveného objekta."
#: editor/inspector_dock.cpp
msgid "History of recently edited objects."
-msgstr ""
+msgstr "História upravených objektov."
#: editor/inspector_dock.cpp
msgid "Object properties."
-msgstr ""
+msgstr "Vlastnosti Objekta."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Filter properties"
-msgstr "Filter:"
+msgstr "Vlastnosti Filtra"
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
-msgstr ""
+msgstr "Zmeny môžu byť stratené!"
#: editor/multi_node_edit.cpp
msgid "MultiNode Set"
-msgstr ""
+msgstr "MultiNode Set"
#: editor/node_dock.cpp
msgid "Select a single node to edit its signals and groups."
-msgstr ""
+msgstr "Vyberte jeden node aby ste mohli upraviť jeho signály a skupiny."
#: editor/plugin_config_dialog.cpp
msgid "Edit a Plugin"
-msgstr ""
+msgstr "Upraviť Plugin"
#: editor/plugin_config_dialog.cpp
-#, fuzzy
msgid "Create a Plugin"
-msgstr "Vytvoriť adresár"
+msgstr "Vytvoriť Plugin"
#: editor/plugin_config_dialog.cpp
msgid "Plugin Name:"
-msgstr ""
+msgstr "Meno Pluginu:"
#: editor/plugin_config_dialog.cpp
msgid "Subfolder:"
-msgstr ""
+msgstr "Subfolder:"
#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp
msgid "Language:"
-msgstr ""
+msgstr "Jazyk:"
#: editor/plugin_config_dialog.cpp
msgid "Script Name:"
-msgstr ""
+msgstr "Meno Skriptu:"
#: editor/plugin_config_dialog.cpp
msgid "Activate now?"
-msgstr ""
+msgstr "Aktivovať teraz?"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon"
-msgstr "Vytvoriť adresár"
+msgstr "Vytvoriť Polygon"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Create points."
-msgstr "Všetky vybrané"
+msgstr "Vytvoriť body."
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid ""
@@ -4138,30 +4120,30 @@ msgid ""
"LMB: Move Point\n"
"RMB: Erase Point"
msgstr ""
+"Upraviť body.\n"
+"LMB: Presunúť Bod\n"
+"RMB: Zmazať Bod"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
msgid "Erase points."
-msgstr "Všetky vybrané"
+msgstr "Zmazať body."
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Edit Polygon"
-msgstr "Signály:"
+msgstr "Upraviť Polygon"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Insert Point"
-msgstr ""
+msgstr "Vložiť Bod"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Edit Polygon (Remove Point)"
-msgstr ""
+msgstr "Upraviť Polygon (Zmazať Bod)"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Remove Polygon And Point"
-msgstr "Všetky vybrané"
+msgstr "Zmazať Polygon A Bod"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4169,55 +4151,51 @@ msgstr "Všetky vybrané"
#: editor/plugins/animation_state_machine_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Animation"
-msgstr ""
+msgstr "Pridať Animáciu"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Load..."
-msgstr ""
+msgstr "NaÄítaÅ¥..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Move Node Point"
-msgstr "Všetky vybrané"
+msgstr "Presunúť Bod Node-u"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Change BlendSpace1D Limits"
-msgstr ""
+msgstr "Zmeniť BlendSpace1D Limity"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Change BlendSpace1D Labels"
-msgstr ""
+msgstr "ZmeniÅ¥ BlendSpace1D OznaÄenia"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
-msgstr ""
+msgstr "Tento typ node-u nemôže byť použitý. Iba ak povolíte root node-y."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Node Point"
-msgstr "Signály:"
+msgstr "Pridať Bod Node-u"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Animation Point"
-msgstr "Popis:"
+msgstr "Pridať Bod Animácie"
#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
msgid "Remove BlendSpace1D Point"
-msgstr "Všetky vybrané"
+msgstr "Zmazať BlendSpace1D Bod"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Move BlendSpace1D Node Point"
-msgstr ""
+msgstr "Presunúť BlendSpace1D Node Bod"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4227,49 +4205,50 @@ msgid ""
"AnimationTree is inactive.\n"
"Activate to enable playback, check node warnings if activation fails."
msgstr ""
+"StromAnimácie je neaktívny.\n"
+"Aktivujte aby ste povolili playback, zaškrtnite node warnings ak aktívacia "
+"nepôjde."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Set the blending position within the space"
-msgstr ""
+msgstr "Nastaviť pozíciu blending v priestore"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Select and move points, create points with RMB."
-msgstr ""
+msgstr "Vyberte a premiestnite body, vytvorte body z RMB."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp
msgid "Enable snap and show grid."
-msgstr ""
+msgstr "Povoliť snap a show grid."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Point"
-msgstr ""
+msgstr "Bod"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Open Editor"
-msgstr "Otvorit prieÄinok"
+msgstr "Otvorit Editor"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Open Animation Node"
-msgstr ""
+msgstr "Otvoriť Node Animácie"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Triangle already exists."
-msgstr ""
+msgstr "Trojuholník už existuje."
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Triangle"
-msgstr "Signály:"
+msgstr "Pridať Trojuholník"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Change BlendSpace2D Limits"
@@ -6942,11 +6921,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7429,6 +7408,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10463,7 +10451,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
-msgid "Clear Script"
+msgid "Detach Script"
msgstr "Popis:"
#: editor/scene_tree_dock.cpp
@@ -10627,6 +10615,13 @@ msgid "Open Documentation"
msgstr "Popis:"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10675,11 +10670,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10805,6 +10800,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Súbor neexistuje."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "Nesprávna veľkosť písma."
@@ -10847,6 +10846,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Neplatná cesta."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid class name."
msgstr "Neplatný Názov."
@@ -11920,6 +11923,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11944,6 +11951,32 @@ msgstr "Nesprávna veľkosť písma."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12610,6 +12643,22 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Not in resource path."
+#~ msgstr "Nieje v resource path."
+
+#~ msgid "Revert"
+#~ msgstr "Revert"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Túto akciu nie je možné vrátiť späť. Chcete Revertovatť aj tak?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Vrátiť Scénu"
+
+#, fuzzy
+#~ msgid "Clear Script"
+#~ msgstr "Popis:"
+
#, fuzzy
#~ msgid "Brief Description"
#~ msgstr "Popis:"
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index a4a668f76b..faec304f67 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -886,7 +886,6 @@ msgstr "Povezovanje Signala:"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1523,18 +1522,9 @@ msgstr "OmogoÄi"
msgid "Rearrange Autoloads"
msgstr "Preuredi SamodejnoNalaganje"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "Neveljavna Pot."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Datoteka ne obstaja."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Ni na poti virov."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2538,12 +2528,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Ni mogoÄe osvežiti scene, ki ni bila shranjena."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Povrni"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Shrani Prizor"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Tega dejanja ni mogoÄe razveljaviti. Vseeno povrni?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2840,10 +2833,6 @@ msgid "Redo"
msgstr "Ponovi"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Povrni Prizor"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "RazliÄna projektna ali prizorska orodja."
@@ -3498,6 +3487,10 @@ msgstr "Ni mogoÄe zagnati skripte:"
msgid "Did you forget the '_run' method?"
msgstr "Ali si pozabil metodo '_run' ?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Izberi Gradnik(e) za Uvoz"
@@ -4130,6 +4123,10 @@ msgid "Error running post-import script:"
msgstr "Napaka pri zagonu skripte po uvozu:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Shranjevanje..."
@@ -7211,15 +7208,15 @@ msgid ""
msgstr "Odklopite '%s' iz '%s'"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "Vrstica:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "Dodaj Funkcijo"
@@ -7704,6 +7701,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Snap Nodes To Floor"
msgstr "Pripni na mrežo"
@@ -10790,8 +10796,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Odstrani Gradnik VizualnaSkripta"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10957,6 +10964,13 @@ msgid "Open Documentation"
msgstr "Odpri Nedavne"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -11007,12 +11021,14 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr ""
+"Naredi primer iz izbranih prizorov, ki bo naslednik izbranega gradnika."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -11141,6 +11157,10 @@ msgid "A directory with the same name exists."
msgstr "Datoteka ali mapa s tem imenom že obstaja."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Datoteka ne obstaja."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "Uporabiti moraš valjavno razširitev."
@@ -11185,6 +11205,11 @@ msgstr ""
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "Neveljavna Pot."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "Neveljavno ime."
@@ -12273,6 +12298,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -12297,6 +12326,32 @@ msgstr "Neveljavno ime."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12979,6 +13034,18 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstante ni možno spreminjati."
+#~ msgid "Not in resource path."
+#~ msgstr "Ni na poti virov."
+
+#~ msgid "Revert"
+#~ msgstr "Povrni"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Tega dejanja ni mogoÄe razveljaviti. Vseeno povrni?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Povrni Prizor"
+
#~ msgid "Issue Tracker"
#~ msgstr "Sledilnik Napak"
@@ -13179,10 +13246,6 @@ msgstr "Konstante ni možno spreminjati."
#~ msgid "Edit Variable:"
#~ msgstr "Uredi Spremenljivko:"
-#~ msgid "Instance the selected scene(s) as child of the selected node."
-#~ msgstr ""
-#~ "Naredi primer iz izbranih prizorov, ki bo naslednik izbranega gradnika."
-
#~ msgid "Line:"
#~ msgstr "Vrstica:"
diff --git a/editor/translations/sq.po b/editor/translations/sq.po
index f24645059a..5bcf15eb82 100644
--- a/editor/translations/sq.po
+++ b/editor/translations/sq.po
@@ -829,7 +829,6 @@ msgstr "Lidh Sinjalin: "
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1460,18 +1459,9 @@ msgstr "Lejo"
msgid "Rearrange Autoloads"
msgstr "Riorganizo Autoload-et"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "Rruga e pasaktë."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Skedari nuk egziston."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Jo në rrugën e resurseve."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2468,12 +2458,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Nuk mund të ringarkojë një skenë që nuk është ruajtur më parë."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Rikthe"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Ruaj Skenën"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Ky veprim nuk mund të çbëhet. Rikthe gjithsesi?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2768,10 +2761,6 @@ msgid "Redo"
msgstr "Ribëj"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Rikthe Skenën"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Vegla të ndryshme për projektin ose skenën."
@@ -3424,6 +3413,10 @@ msgstr "Nuk mund të ekzekutonte shkrimin:"
msgid "Did you forget the '_run' method?"
msgstr "A mos harrove metodën '_run'?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Zgjidh Nyjet Për ti Importuar"
@@ -4041,6 +4034,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Duke Ruajtur..."
@@ -6967,11 +6964,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7448,6 +7445,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10425,8 +10431,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Shkrim i Ri"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10587,6 +10594,13 @@ msgid "Open Documentation"
msgstr "Hap të Fundit"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10636,11 +10650,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10767,6 +10781,10 @@ msgid "A directory with the same name exists."
msgstr "Një skedar ose folder me këtë emër ekziston që më parë."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Skedari nuk egziston."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "Duhet të perdorësh një shtesë të lejuar."
@@ -10810,6 +10828,11 @@ msgstr ""
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "Rruga e pasaktë."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "Emër i palejuar."
@@ -11868,6 +11891,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11891,6 +11918,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12533,6 +12586,18 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Not in resource path."
+#~ msgstr "Jo në rrugën e resurseve."
+
+#~ msgid "Revert"
+#~ msgstr "Rikthe"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Ky veprim nuk mund të çbëhet. Rikthe gjithsesi?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Rikthe Skenën"
+
#~ msgid "Issue Tracker"
#~ msgstr "Gjurmuesi i Problemeve"
diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po
index 52639bbeeb..4e7064f00c 100644
--- a/editor/translations/sr_Cyrl.po
+++ b/editor/translations/sr_Cyrl.po
@@ -4,12 +4,13 @@
# This file is distributed under the same license as the Godot source code.
#
# ÐлекÑандар Урошевић <nicecubedude@gmail.com>, 2017.
-#
+# Младен Габић <cupakabra@protonmail.com>, 2020.
+# Anonymous <noreply@weblate.org>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-12-14 23:08+0000\n"
-"Last-Translator: ÐлекÑандар Урошевић <alek.sandar0@yandex.com>\n"
+"PO-Revision-Date: 2020-05-22 21:01+0000\n"
+"Last-Translator: Младен Габић <cupakabra@protonmail.com>\n"
"Language-Team: Serbian (cyrillic) <https://hosted.weblate.org/projects/godot-"
"engine/godot/sr_Cyrl/>\n"
"Language: sr_Cyrl\n"
@@ -17,79 +18,78 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 2.18-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr ""
+msgstr "Погрешан тип аргумента за функију convert(), кориÑти TYPE_* конÑтанте."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "Очекиван Ñтринг дужине 1 (карактер)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
+msgstr "Ðедовољно бајтова за дешифровање бајтова, или неважећи формат."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr ""
+msgstr "Ðеважећи ÑƒÐ½Ð¾Ñ %i (није прошао) у изразу"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr ""
+msgstr "self не може бити примењен јер је инÑтанца нула(није прошао)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr ""
+msgstr "Ðеважећи поÑтупци оператора %s, %s и %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr ""
+msgstr "Ðеважећи Ð¸Ð½Ð´ÐµÐºÑ Ð²Ñ€Ñте %s за оÑновну врÑту %s"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr ""
+msgstr "Ðеважећи именовани Ð¸Ð½Ð´ÐµÐºÑ '%s' за оÑновну врÑту %s"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr ""
+msgstr "Ðеважећи аргументи ка конÑтрукту '%s'"
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr ""
+msgstr "Ðа позиву за '%s':"
#: core/ustring.cpp
msgid "B"
-msgstr ""
+msgstr "Б"
#: core/ustring.cpp
msgid "KiB"
-msgstr ""
+msgstr "КиБ"
#: core/ustring.cpp
-#, fuzzy
msgid "MiB"
-msgstr "МикÑ"
+msgstr "МиБ"
#: core/ustring.cpp
msgid "GiB"
-msgstr ""
+msgstr "ГиБ"
#: core/ustring.cpp
msgid "TiB"
-msgstr ""
+msgstr "ТиБ"
#: core/ustring.cpp
msgid "PiB"
-msgstr ""
+msgstr "ПиБ"
#: core/ustring.cpp
msgid "EiB"
-msgstr ""
+msgstr "ЕиБ"
#: editor/animation_bezier_editor.cpp
msgid "Free"
@@ -97,12 +97,12 @@ msgstr "Слободно"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
-msgstr ""
+msgstr "БаланÑирано"
#: editor/animation_bezier_editor.cpp
#, fuzzy
msgid "Mirror"
-msgstr "Огледало X оÑе"
+msgstr "Огледало"
#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
msgid "Time:"
@@ -111,32 +111,30 @@ msgstr "Време:"
#: editor/animation_bezier_editor.cpp
#, fuzzy
msgid "Value:"
-msgstr "Ðово име:"
+msgstr "ВредноÑÑ‚:"
#: editor/animation_bezier_editor.cpp
#, fuzzy
msgid "Insert Key Here"
-msgstr "Убаци кључеве"
+msgstr "Убаци кључ"
#: editor/animation_bezier_editor.cpp
#, fuzzy
msgid "Duplicate Selected Key(s)"
-msgstr "Дуплирај одабрано"
+msgstr "Дуплирај одабрани Кључ/еве"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Delete Selected Key(s)"
-msgstr "Обриши одабране датотеке?"
+msgstr "Обриши одабрани Кључ/еве"
#: editor/animation_bezier_editor.cpp
#, fuzzy
msgid "Add Bezier Point"
-msgstr "Додај тачку"
+msgstr "Додај Безиер Тачку"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Move Bezier Points"
-msgstr "Помери тачку"
+msgstr "Помери Безиер Тачку"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
@@ -149,7 +147,7 @@ msgstr "Уколни кључеве"
#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Anim Change Keyframe Time"
-msgstr "Промени вредноÑÑ‚"
+msgstr "Промени време КључОквира"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
@@ -204,25 +202,29 @@ msgid "Change Animation Loop"
msgstr "Промени Ñ†Ð¸ÐºÐ»ÑƒÑ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ˜Ðµ"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Property Track"
-msgstr ""
+msgstr "ОÑобине Трака"
#: editor/animation_track_editor.cpp
#, fuzzy
msgid "3D Transform Track"
-msgstr "Тип транÑформације"
+msgstr "3Д Трака ТранÑформа"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Call Method Track"
-msgstr ""
+msgstr "Метод Позива Трака"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Bezier Curve Track"
-msgstr ""
+msgstr "Безиер Крива Трака"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Audio Playback Track"
-msgstr ""
+msgstr "Ðудио Репродукција Трака"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -251,8 +253,9 @@ msgstr "Скала анимације."
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Functions:"
-msgstr ""
+msgstr "Функције:"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -261,7 +264,7 @@ msgstr "Звучни Ñлушалац"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
-msgstr ""
+msgstr "Ðним Клипови:"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -274,8 +277,9 @@ msgid "Toggle this track on/off."
msgstr "Укљ./ИÑкљ. режим без Ñметње."
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Update Mode (How this property is set)"
-msgstr ""
+msgstr "Режим ажурирања (Како је поÑтављена ова оÑобина)"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -283,8 +287,9 @@ msgid "Interpolation Mode"
msgstr "Ðнимациони чвор"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr ""
+msgstr "Круг Увијени Режим( Интерполирај крај Ñа почетком на кругу)"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -319,8 +324,9 @@ msgid "Capture"
msgstr "КарактериÑтике"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Nearest"
-msgstr ""
+msgstr "Ðајближи"
#: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp
#: editor/property_editor.cpp
@@ -328,16 +334,19 @@ msgid "Linear"
msgstr "Линеаран"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Cubic"
-msgstr ""
+msgstr "Кубни"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Clamp Loop Interp"
-msgstr ""
+msgstr "Притегнут Круг Интерп"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Wrap Loop Interp"
-msgstr ""
+msgstr "Увијен Круг Интерп"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -398,8 +407,9 @@ msgid "Anim Insert"
msgstr "Ðалепи"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "AnimationPlayer can't animate itself, only other players."
-msgstr ""
+msgstr "AnimationPlayer не може Ñам Ñебе да анимира, Ñамо друге плејере."
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -425,31 +435,40 @@ msgstr "Преуреди аутоматÑка учитавања"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr ""
+msgstr "ТранÑформа траке Ñамо важи за ПроÑторно-базиране нодове."
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid ""
"Audio tracks can only point to nodes of type:\n"
"-AudioStreamPlayer\n"
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
msgstr ""
+"Ðудио траке могу Ñамо уÑмеравати ка нодовима врÑте:\n"
+"-AudioStreamPlayer\n"
+"-AudioStreamPlayer2D\n"
+"-AudioStreamPlayer3D"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr ""
+msgstr "Ðнимационе траке могу Ñамо уÑмеравати ка AnimationPlayer нодовима"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "An animation player can't animate itself, only other players."
-msgstr ""
+msgstr "Ðнимациони плејер не може анимирати Ñамог Ñебе, Ñамо друге плејере."
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Not possible to add a new track without a root"
-msgstr ""
+msgstr "Ðије могуже додати нову траку без корена"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr ""
+msgstr "Ðеважећа трака за Безиер ( нема прикладних под-оÑобина)"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -457,12 +476,14 @@ msgid "Add Bezier Track"
msgstr "Додај нову траку"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Track path is invalid, so can't add a key."
-msgstr ""
+msgstr "Путања траке је неважећа, па је кључ немогуће додати."
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Track is not of type Spatial, can't insert key"
-msgstr ""
+msgstr "Трака није врÑте ПроÑторна, немогуће убацити кључ."
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -475,8 +496,9 @@ msgid "Add Track Key"
msgstr "Додај нову траку"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Track path is invalid, so can't add a method key."
-msgstr ""
+msgstr "Трака путање је неважећа, немогуће додати кључ методе."
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -484,8 +506,9 @@ msgid "Add Method Track Key"
msgstr "Уметни траку и кључ"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Method not found in object: "
-msgstr ""
+msgstr "Метода није нађена у објекту:"
#: editor/animation_track_editor.cpp
msgid "Anim Move Keys"
@@ -506,11 +529,13 @@ msgid "Anim Scale Keys"
msgstr "Увећај кључеве"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid ""
"This option does not work for Bezier editing, as it's only a single track."
-msgstr ""
+msgstr "Ова операција не ради за Безиер уређивање, пошто је Ñамо једна трака."
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -522,10 +547,20 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
+"Ова анимација припада увезеној Ñцени, па промене на увезеној траци неће бити "
+"Ñачуване.\n"
+"\n"
+"Да омогућиш ÑпоÑобноÑÑ‚ додавања прилагођених трака, упути Ñе ка увозним "
+"подешавањима Ñцене и поÑтави\n"
+"\"Ðнимација > Складиште\" у \"Фајлови\", омогући \"Ðнимација > Сачувај "
+"прилагођене траке\", онда поново увези.\n"
+"Ðлтернативно, кориÑти увозна подешавања која увозе анимације у заÑебне "
+"фајлове."
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Warning: Editing imported animation"
-msgstr ""
+msgstr "Упозорење: Уређивање увезене анимације"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -533,12 +568,14 @@ msgid "Select an AnimationPlayer node to create and edit animations."
msgstr "Одабери AnimationPlayer из дрвета Ñцене за уређивање анимација."
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Only show tracks from nodes selected in tree."
-msgstr ""
+msgstr "Прикажи Ñамо траке из нодова одабраних у Ñтаблу"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Group tracks by node or display them as plain list."
-msgstr ""
+msgstr "Групиши траке по нодовима или их прикажи као чиÑÑ‚ текÑÑ‚."
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -551,8 +588,9 @@ msgid "Animation step value."
msgstr "Ðнимационо дрво је важеће."
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Seconds"
-msgstr ""
+msgstr "Секунди"
#: editor/animation_track_editor.cpp
msgid "FPS"
@@ -618,12 +656,14 @@ msgid "Clean-Up Animation"
msgstr "ОчиÑтите анимацију"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Pick the node that will be animated:"
-msgstr ""
+msgstr "Одабери нод који ће бити анимиран:"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Use Bezier Curves"
-msgstr ""
+msgstr "КориÑти Безиер Криве"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -694,12 +734,14 @@ msgid "Add Audio Track Clip"
msgstr "Звучни Ñлушалац"
#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
msgid "Change Audio Track Clip Start Offset"
-msgstr ""
+msgstr "Промени Размак Ðудио Траке од Почетка"
#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
msgid "Change Audio Track Clip End Offset"
-msgstr ""
+msgstr "Промени Размак Ðудио Траке од Краја"
#: editor/array_property_edit.cpp
msgid "Resize Array"
@@ -727,13 +769,14 @@ msgid "%d replaced."
msgstr "Замени..."
#: editor/code_editor.cpp editor/editor_help.cpp
+#, fuzzy
msgid "%d match."
-msgstr ""
+msgstr "%d подударања."
#: editor/code_editor.cpp editor/editor_help.cpp
#, fuzzy
msgid "%d matches."
-msgstr "Ðема подудара"
+msgstr "Ðема подударања."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
@@ -757,8 +800,9 @@ msgstr "Само одабрано"
#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp
#: editor/plugins/text_editor.cpp
+#, fuzzy
msgid "Standard"
-msgstr ""
+msgstr "Стандард"
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
@@ -781,12 +825,14 @@ msgid "Reset Zoom"
msgstr "РеÑетуј увеличање"
#: editor/code_editor.cpp
+#, fuzzy
msgid "Warnings"
-msgstr ""
+msgstr "Упозорење"
#: editor/code_editor.cpp
+#, fuzzy
msgid "Line and column numbers."
-msgstr ""
+msgstr "Линија и колона бројева."
#: editor/connections_dialog.cpp
#, fuzzy
@@ -862,17 +908,19 @@ msgid "Deferred"
msgstr "Одложен"
#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Defers the signal, storing it in a queue and only firing it at idle time."
-msgstr ""
+msgstr "Одлаже Ñигнал, памти га у ред и пали га Ñамо за време чекања."
#: editor/connections_dialog.cpp
msgid "Oneshot"
msgstr "Једном"
#: editor/connections_dialog.cpp
+#, fuzzy
msgid "Disconnects the signal after its first emission."
-msgstr ""
+msgstr "Одкачиње Ñигнал поÑле првог емитовања."
#: editor/connections_dialog.cpp
#, fuzzy
@@ -883,7 +931,6 @@ msgstr "Везујући Ñигнал:"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -937,16 +984,18 @@ msgid "Edit Connection:"
msgstr "Повезивање не уÑпешно"
#: editor/connections_dialog.cpp
+#, fuzzy
msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
-msgstr ""
+msgstr "Сигурно желиш да уклониш Ñве везе Ñа \"%s\" Ñигналом?"
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
msgstr "Сигнали"
#: editor/connections_dialog.cpp
+#, fuzzy
msgid "Are you sure you want to remove all connections from this signal?"
-msgstr ""
+msgstr "Сугурно желиш да уклониш Ñве везе Ñа овог Ñигнала?"
#: editor/connections_dialog.cpp
#, fuzzy
@@ -969,8 +1018,9 @@ msgid "Change %s Type"
msgstr "Измени уобичајен тип"
#: editor/create_dialog.cpp editor/project_settings_editor.cpp
+#, fuzzy
msgid "Change"
-msgstr ""
+msgstr "Промени"
#: editor/create_dialog.cpp
#, fuzzy
@@ -1263,8 +1313,9 @@ msgid "Uncompressing Assets"
msgstr "ДекомпреÑија ÑредÑтва"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
+#, fuzzy
msgid "The following files failed extraction from package:"
-msgstr ""
+msgstr "ÐеуÑпело извлачење Ñледећих фалова из паковања:"
#: editor/editor_asset_installer.cpp
#, fuzzy
@@ -1374,8 +1425,9 @@ msgid "Delete Effect"
msgstr "Обриши ефекат"
#: editor/editor_audio_buses.cpp
+#, fuzzy
msgid "Audio"
-msgstr ""
+msgstr "Ðудио"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
@@ -1414,8 +1466,9 @@ msgid "Open Audio Bus Layout"
msgstr "Отвори раÑпоред звучног баÑа"
#: editor/editor_audio_buses.cpp
+#, fuzzy
msgid "There is no '%s' file."
-msgstr ""
+msgstr "Ðема '%s' фајла."
#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp
msgid "Layout"
@@ -1493,8 +1546,9 @@ msgid "Must not collide with an existing global constant name."
msgstr "Ðеважеће име. Име је резервиÑано за поÑтојећу глобалну конÑтанту."
#: editor/editor_autoload_settings.cpp
+#, fuzzy
msgid "Keyword cannot be used as an autoload name."
-msgstr ""
+msgstr "Кључна реч не може бити употребљена као ауто-учитавајуће име"
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
@@ -1524,18 +1578,9 @@ msgstr "Укључи"
msgid "Rearrange Autoloads"
msgstr "Преуреди аутоматÑка учитавања"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "Ðеважећи пут."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Датотека не поÑтоји."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Ðије на пут реÑурÑа."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1584,8 +1629,9 @@ msgid "[empty]"
msgstr "(празно)"
#: editor/editor_data.cpp
+#, fuzzy
msgid "[unsaved]"
-msgstr ""
+msgstr "[неÑачувано]"
#: editor/editor_dir_dialog.cpp
#, fuzzy
@@ -1623,32 +1669,44 @@ msgid "Storing File:"
msgstr "Складиштење датотеке:"
#: editor/editor_export.cpp
+#, fuzzy
msgid "No export template found at the expected path:"
-msgstr ""
+msgstr "Извозни образац није нађен на очекиваној путањи:"
#: editor/editor_export.cpp
msgid "Packing"
msgstr "Паковање"
#: editor/editor_export.cpp
+#, fuzzy
msgid ""
"Target platform requires 'ETC' texture compression for GLES2. Enable 'Import "
"Etc' in Project Settings."
msgstr ""
+"Циљана платформа захтева 'ETC' компреÑију текÑтуре за GLES2. Омогући 'Увоз "
+"Etc' у подешавањима пројекта."
#: editor/editor_export.cpp
+#, fuzzy
msgid ""
"Target platform requires 'ETC2' texture compression for GLES3. Enable "
"'Import Etc 2' in Project Settings."
msgstr ""
+"Циљана платформа захтева 'ETC2 компреÑију текÑтуре за GLES3. Омогући 'Увоз "
+"Etc 2' у подешавањима пројекта."
#: editor/editor_export.cpp
+#, fuzzy
msgid ""
"Target platform requires 'ETC' texture compression for the driver fallback "
"to GLES2.\n"
"Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback "
"Enabled'."
msgstr ""
+"Циљана платформа захтева 'ETC' компреÑију текÑтуре за повратак управљача "
+"GLES2.\n"
+"Омогући 'Увоз Etc' у подешавањима пројекта, или онемогући 'Поваратак "
+"Управљача Омогућен'."
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
@@ -1660,8 +1718,9 @@ msgstr "ШаблонÑка датотека није пронађена:\n"
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
+#, fuzzy
msgid "Custom release template not found."
-msgstr ""
+msgstr "Прилагођени образци објаве ниÑу пронађени."
#: editor/editor_export.cpp platform/javascript/export/export.cpp
#, fuzzy
@@ -1669,8 +1728,9 @@ msgid "Template file not found:"
msgstr "ШаблонÑка датотека није пронађена:\n"
#: editor/editor_export.cpp
+#, fuzzy
msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
-msgstr ""
+msgstr "Ðа 32-битним извозима уграђени PCK не може бити већи од 4 GiB."
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -1688,8 +1748,9 @@ msgid "Asset Library"
msgstr "Отвори библиотеку ÑредÑтва"
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Scene Tree Editing"
-msgstr ""
+msgstr "Едитовање Стабла Сцене"
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -1712,8 +1773,9 @@ msgid "Erase profile '%s'? (no undo)"
msgstr "Замени Ñве"
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Profile must be a valid filename and must not contain '.'"
-msgstr ""
+msgstr "Профил мора имати важеће име фајла и не Ñме Ñадржати '.'"
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -1721,8 +1783,9 @@ msgid "Profile with this name already exists."
msgstr "Датотека или директоријум Ñа овим именом већ поÑтоји."
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "(Editor Disabled, Properties Disabled)"
-msgstr ""
+msgstr "(Уређивач Онемогућен, СвојÑтва Омогућена)"
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -1760,14 +1823,16 @@ msgid "Enabled Classes:"
msgstr "Потражи клаÑе"
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "File '%s' format is invalid, import aborted."
-msgstr ""
+msgstr "Фајл '%s' формат је неважећи, увоз отказан."
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid ""
"Profile '%s' already exists. Remove it first before importing, import "
"aborted."
-msgstr ""
+msgstr "Профил '%s' већ поÑтоји. Уклони га пре увоза, увоз отказан."
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -1775,8 +1840,9 @@ msgid "Error saving profile to path: '%s'."
msgstr "Грешка при чувању TileSet!"
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Unset"
-msgstr ""
+msgstr "Поништи"
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -2014,10 +2080,13 @@ msgid "ScanSources"
msgstr "Скенирање извора"
#: editor/editor_file_system.cpp
+#, fuzzy
msgid ""
"There are multiple importers for different types pointing to file %s, import "
"aborted"
msgstr ""
+"ПоÑтоји више увозника за различите врÑте који показују на фајл %s, увоз "
+"отказан"
#: editor/editor_file_system.cpp
msgid "(Re)Importing Assets"
@@ -2055,8 +2124,9 @@ msgid "Properties"
msgstr "ОÑобине"
#: editor/editor_help.cpp
+#, fuzzy
msgid "override:"
-msgstr ""
+msgstr "препиши"
#: editor/editor_help.cpp
#, fuzzy
@@ -2195,16 +2265,19 @@ msgid "Theme Property"
msgstr "ОÑобине"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
+#, fuzzy
msgid "Property:"
-msgstr ""
+msgstr "ОÑобина:"
#: editor/editor_inspector.cpp
+#, fuzzy
msgid "Set"
-msgstr ""
+msgstr "ПоÑтави"
#: editor/editor_inspector.cpp
+#, fuzzy
msgid "Set Multiple:"
-msgstr ""
+msgstr "ПоÑтави Више:"
#: editor/editor_log.cpp
msgid "Output:"
@@ -2242,8 +2315,9 @@ msgid "Start"
msgstr "Започни!"
#: editor/editor_network_profiler.cpp
+#, fuzzy
msgid "%s/s"
-msgstr ""
+msgstr "%s/s"
#: editor/editor_network_profiler.cpp
#, fuzzy
@@ -2251,51 +2325,62 @@ msgid "Down"
msgstr "Преучми"
#: editor/editor_network_profiler.cpp
+#, fuzzy
msgid "Up"
-msgstr ""
+msgstr "Горе"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
msgid "Node"
msgstr "Чвор"
#: editor/editor_network_profiler.cpp
+#, fuzzy
msgid "Incoming RPC"
-msgstr ""
+msgstr "Долазећи RPC"
#: editor/editor_network_profiler.cpp
+#, fuzzy
msgid "Incoming RSET"
-msgstr ""
+msgstr "Долазећи RSET"
#: editor/editor_network_profiler.cpp
+#, fuzzy
msgid "Outgoing RPC"
-msgstr ""
+msgstr "Одлазећи RPC"
#: editor/editor_network_profiler.cpp
+#, fuzzy
msgid "Outgoing RSET"
-msgstr ""
+msgstr "Одлазећи RSET"
#: editor/editor_node.cpp editor/project_manager.cpp
+#, fuzzy
msgid "New Window"
-msgstr ""
+msgstr "Ðов Прозор"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Imported resources can't be saved."
-msgstr ""
+msgstr "Увезени реÑурÑи не могу бити упамћени."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: scene/gui/dialogs.cpp
+#, fuzzy
msgid "OK"
-msgstr ""
+msgstr "ОК"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
msgstr "Грешка при чувању реÑурÑа!"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
"This resource can't be saved because it does not belong to the edited scene. "
"Make it unique first."
msgstr ""
+"Овај реÑÑƒÑ€Ñ Ð½Ðµ може бити упамћен пошто не припада едитованој Ñцени. Прво га "
+"учини јединÑтвеним."
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As..."
@@ -2314,8 +2399,9 @@ msgid "Error while saving."
msgstr "Грешка при чувању."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
msgid "Can't open '%s'. The file could have been moved or deleted."
-msgstr ""
+msgstr "ÐеуÑпело отварање '%s'. Фајл је можда померен или обриÑан."
#: editor/editor_node.cpp
msgid "Error while parsing '%s'."
@@ -2350,10 +2436,13 @@ msgid "This operation can't be done without a tree root."
msgstr "Ова операција Ñе не може обавити без корена дрвета."
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
"This scene can't be saved because there is a cyclic instancing inclusion.\n"
"Please resolve it and then attempt to save again."
msgstr ""
+"Ова Ñцена не може бити упамћена зато што има укључење кружног инÑтанцирања\n"
+"Прво га отклони и онда поново пробај да упамтиш."
#: editor/editor_node.cpp
#, fuzzy
@@ -2363,8 +2452,9 @@ msgid ""
msgstr "Ðе могу Ñачувати Ñцену. Вероватно завиÑноÑти ниÑу задовољене."
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Can't overwrite scene that is still open!"
-msgstr ""
+msgstr "Ðемогуће препиÑивање Ñцене која је и даље отворена!"
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
@@ -2496,8 +2586,9 @@ msgid "Saved %s modified resource(s)."
msgstr "Грешка при учитавању реÑурÑа."
#: editor/editor_node.cpp
+#, fuzzy
msgid "A root node is required to save the scene."
-msgstr ""
+msgstr "За памћене Ñцене неопходан је корени нод."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2544,12 +2635,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Ðе могу поново учитати Ñцену која није Ñачувана."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Врати"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Сачувај Ñцену"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Ова акција Ñе не може опозвати. ÐаÑтави?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2728,8 +2822,9 @@ msgid "Close Other Tabs"
msgstr "Затвори оÑтале зупчанике"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Close Tabs to the Right"
-msgstr ""
+msgstr "Затвори Табове Ñа ДеÑна"
#: editor/editor_node.cpp
#, fuzzy
@@ -2845,10 +2940,6 @@ msgid "Redo"
msgstr "Поново уради"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Поврати Ñцену"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Разни алати за пројекат или Ñцену."
@@ -2868,12 +2959,14 @@ msgid "Version Control"
msgstr "Верзија:"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "Set Up Version Control"
-msgstr ""
+msgstr "ПоÑтави Контролу Верзије"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Shut Down Version Control"
-msgstr ""
+msgstr "УгаÑи Контролу Верзије"
#: editor/editor_node.cpp
#, fuzzy
@@ -2881,8 +2974,9 @@ msgid "Export..."
msgstr "Извоз"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Install Android Build Template..."
-msgstr ""
+msgstr "ИнÑталирај Android образце градње"
#: editor/editor_node.cpp
#, fuzzy
@@ -3032,8 +3126,9 @@ msgid "Open Editor Data/Settings Folder"
msgstr "ПоÑтавке уредника"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Open Editor Data Folder"
-msgstr ""
+msgstr "Отвори Фолдер Уређивача Података"
#: editor/editor_node.cpp
#, fuzzy
@@ -3078,8 +3173,9 @@ msgid "Report a Bug"
msgstr "Поново увези"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Send Docs Feedback"
-msgstr ""
+msgstr "Пошаљи Подржку о Документацији"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
@@ -3087,7 +3183,7 @@ msgstr "Заједница"
#: editor/editor_node.cpp
msgid "About"
-msgstr "О програму"
+msgstr "О"
#: editor/editor_node.cpp
msgid "Play the project."
@@ -3098,8 +3194,9 @@ msgid "Play"
msgstr "Покрени"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Pause the scene execution for debugging."
-msgstr ""
+msgstr "Паузирај извршење Ñцене зарад отклањања грешки."
#: editor/editor_node.cpp
msgid "Pause Scene"
@@ -3126,8 +3223,9 @@ msgid "Play Custom Scene"
msgstr "Покрени Ñпецифичну Ñцену"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Changing the video driver requires restarting the editor."
-msgstr ""
+msgstr "Промена видео управљача захтева реÑтартовање уређивача."
#: editor/editor_node.cpp editor/project_settings_editor.cpp
#: editor/settings_config_dialog.cpp
@@ -3177,8 +3275,9 @@ msgid "Don't Save"
msgstr "Ðемој Ñачувати"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Android build template is missing, please install relevant templates."
-msgstr ""
+msgstr "ÐедоÑтаје Android образац за изградњу, инÑталирај релевантне обраÑце."
#: editor/editor_node.cpp
#, fuzzy
@@ -3186,6 +3285,7 @@ msgid "Manage Templates"
msgstr "Управљај извозним шаблонима"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
"This will set up your project for custom Android builds by installing the "
"source template to \"res://android/build\".\n"
@@ -3195,14 +3295,26 @@ msgid ""
"the \"Use Custom Build\" option should be enabled in the Android export "
"preset."
msgstr ""
+"Ово ће подеÑити твој пројекат за произвољну Android грању инÑталирајући "
+"изворни образац у \"res://android/build\".\n"
+"Затим можеш применити измене и изградити ÑопÑтвени APK на извозу (додајући "
+"модуле, променом AndroidManifest.xml, итд.).\n"
+"Имај на уму да за произвољну градњу умеÑто коришћења изграђеног APK-а, "
+"\"КориÑти Произвољну Градњу\" опција треба бити омогућена у Android извозним "
+"подешавањима."
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
"The Android build template is already installed in this project and it won't "
"be overwritten.\n"
"Remove the \"res://android/build\" directory manually before attempting this "
"operation again."
msgstr ""
+"Android образац градње је већ инÑталиран у овај пројекат и неће бити "
+"препиÑан.\n"
+"Уклони \"res://android/build\" директоријум ручно пре поновног покушавања "
+"ове операције."
#: editor/editor_node.cpp
msgid "Import Templates From ZIP File"
@@ -3262,8 +3374,9 @@ msgid "Open the previous Editor"
msgstr "Отвори претходни уредник"
#: editor/editor_node.h
+#, fuzzy
msgid "Warning!"
-msgstr ""
+msgstr "Упозорење!"
#: editor/editor_path.cpp
#, fuzzy
@@ -3366,12 +3479,14 @@ msgid "On"
msgstr ""
#: editor/editor_properties.cpp
+#, fuzzy
msgid "Layer"
-msgstr ""
+msgstr "Лајер"
#: editor/editor_properties.cpp
+#, fuzzy
msgid "Bit %d, value %d"
-msgstr ""
+msgstr "Бит %d, вредноÑÑ‚ %d"
#: editor/editor_properties.cpp
#, fuzzy
@@ -3379,8 +3494,9 @@ msgid "[Empty]"
msgstr "Додај празан"
#: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp
+#, fuzzy
msgid "Assign..."
-msgstr ""
+msgstr "Додели..."
#: editor/editor_properties.cpp
#, fuzzy
@@ -3388,45 +3504,60 @@ msgid "Invalid RID"
msgstr "Ðеважеће име."
#: editor/editor_properties.cpp
+#, fuzzy
msgid ""
"The selected resource (%s) does not match any type expected for this "
"property (%s)."
msgstr ""
+"Одабрани реÑÑƒÑ€Ñ (%s) не одговара ни једној очекиваној врÑти за ову оÑобину "
+"(%s)."
#: editor/editor_properties.cpp
+#, fuzzy
msgid ""
"Can't create a ViewportTexture on resources saved as a file.\n"
"Resource needs to belong to a scene."
msgstr ""
+"ÐеуÑпело креирање ViewportTexture на реÑурÑима упамћеним као фајл\n"
+"РеÑурÑи морају припадати Ñцени."
#: editor/editor_properties.cpp
+#, fuzzy
msgid ""
"Can't create a ViewportTexture on this resource because it's not set as "
"local to scene.\n"
"Please switch on the 'local to scene' property on it (and all resources "
"containing it up to a node)."
msgstr ""
+"ÐеуÑпело креирање ViewportTexture на реÑурÑима, није поÑтављено као локално "
+"према Ñцени\n"
+"Пребаци на 'локално према Ñцени' оÑобину ( и Ñви реÑурÑи који их Ñадрже "
+"Ñве до нода)."
#: editor/editor_properties.cpp editor/property_editor.cpp
+#, fuzzy
msgid "Pick a Viewport"
-msgstr ""
+msgstr "Одабери Viewport"
#: editor/editor_properties.cpp editor/property_editor.cpp
+#, fuzzy
msgid "New Script"
-msgstr ""
+msgstr "Ðова Скрипта"
#: editor/editor_properties.cpp editor/scene_tree_dock.cpp
#, fuzzy
msgid "Extend Script"
-msgstr "Покрени Ñкриптицу"
+msgstr "Ðадовежи Скрипту"
#: editor/editor_properties.cpp editor/property_editor.cpp
+#, fuzzy
msgid "New %s"
-msgstr ""
+msgstr "Ðов %s"
#: editor/editor_properties.cpp editor/property_editor.cpp
+#, fuzzy
msgid "Make Unique"
-msgstr ""
+msgstr "Учини ЈединÑтвеним"
#: editor/editor_properties.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
@@ -3443,20 +3574,24 @@ msgid "Paste"
msgstr "Ðалепи"
#: editor/editor_properties.cpp editor/property_editor.cpp
+#, fuzzy
msgid "Convert To %s"
-msgstr ""
+msgstr "Пребаци у %s"
#: editor/editor_properties.cpp editor/property_editor.cpp
+#, fuzzy
msgid "Selected node is not a Viewport!"
-msgstr ""
+msgstr "Одабрани нод није Viewport!"
#: editor/editor_properties_array_dict.cpp
+#, fuzzy
msgid "Size: "
-msgstr ""
+msgstr "Величина:"
#: editor/editor_properties_array_dict.cpp
+#, fuzzy
msgid "Page: "
-msgstr ""
+msgstr "Страна:"
#: editor/editor_properties_array_dict.cpp
#: editor/plugins/theme_editor_plugin.cpp
@@ -3466,16 +3601,17 @@ msgstr "Обриши Ñтавку"
#: editor/editor_properties_array_dict.cpp
#, fuzzy
msgid "New Key:"
-msgstr "Ðово име:"
+msgstr "Ðов кључ:"
#: editor/editor_properties_array_dict.cpp
#, fuzzy
msgid "New Value:"
-msgstr "Ðово име:"
+msgstr "Ðова вредноÑÑ‚:"
#: editor/editor_properties_array_dict.cpp
+#, fuzzy
msgid "Add Key/Value Pair"
-msgstr ""
+msgstr "Додај Кључ/ВредноÑÑ‚ пар"
#: editor/editor_run_native.cpp
msgid ""
@@ -3509,13 +3645,19 @@ msgstr "ÐеуÑпех при покретању Ñкриптице:"
msgid "Did you forget the '_run' method?"
msgstr "Да ли Ñте заборавили методу „_run“?"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr "Држи Ctrl да иÑпуÑтиш Узимача. Држи Shift да иÑпуÑтиш општи потпиÑ."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Одабери чвор/ове за увоз"
#: editor/editor_sub_scene.cpp editor/project_manager.cpp
+#, fuzzy
msgid "Browse"
-msgstr ""
+msgstr "Потражи"
#: editor/editor_sub_scene.cpp
msgid "Scene Path:"
@@ -3544,8 +3686,9 @@ msgid "Download"
msgstr "Преучми"
#: editor/export_template_manager.cpp
+#, fuzzy
msgid "Official export templates aren't available for development builds."
-msgstr ""
+msgstr "Званични извозни нацрти ниÑу доÑтупни за развојну градњу."
#: editor/export_template_manager.cpp
msgid "(Missing)"
@@ -3590,12 +3733,15 @@ msgid "Importing:"
msgstr "Увожење:"
#: editor/export_template_manager.cpp
+#, fuzzy
msgid "Error getting the list of mirrors."
-msgstr ""
+msgstr "Грешка у добијању лиÑте огледала."
#: editor/export_template_manager.cpp
+#, fuzzy
msgid "Error parsing JSON of mirror list. Please report this issue!"
msgstr ""
+"Грешка при JSON обради Ñа лиÑте огледала. Молимо пријавите овај проблем!"
#: editor/export_template_manager.cpp
msgid ""
@@ -3644,10 +3790,13 @@ msgid "Cannot remove temporary file:"
msgstr "ÐеуÑпех при чувању теме:"
#: editor/export_template_manager.cpp
+#, fuzzy
msgid ""
"Templates installation failed.\n"
"The problematic templates archives can be found at '%s'."
msgstr ""
+"ИнÑталација нацрта неуÑпешна.\n"
+"Ðрхиве проблематичних нацрта могу би нађене на '%s'."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3943,8 +4092,9 @@ msgid "There is already file or folder with the same name in this location."
msgstr "Датотека или директоријум Ñа овим именом већ поÑтоји."
#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Overwrite"
-msgstr ""
+msgstr "Препиши"
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -3976,10 +4126,13 @@ msgid "Filters:"
msgstr "Филтери..."
#: editor/find_in_files.cpp
+#, fuzzy
msgid ""
"Include the files with the following extensions. Add or remove them in "
"ProjectSettings."
msgstr ""
+"Урачунај фајлове Ñа Ñледећим екÑтензијама. Додај или обриши их у "
+"ПодешавањимаПројекта"
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -3991,8 +4144,9 @@ msgid "Replace..."
msgstr "Замени..."
#: editor/find_in_files.cpp editor/progress_dialog.cpp scene/gui/dialogs.cpp
+#, fuzzy
msgid "Cancel"
-msgstr ""
+msgstr "Откажи"
#: editor/find_in_files.cpp
#, fuzzy
@@ -4058,8 +4212,9 @@ msgstr "Додај у групу"
#: editor/groups_editor.cpp editor/scene_tree_dock.cpp
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid "Filter nodes"
-msgstr ""
+msgstr "Филтрирај чворове"
#: editor/groups_editor.cpp
#, fuzzy
@@ -4067,8 +4222,9 @@ msgid "Nodes in Group"
msgstr "Додај у групу"
#: editor/groups_editor.cpp
+#, fuzzy
msgid "Empty groups will be automatically removed."
-msgstr ""
+msgstr "Празне групе биће аутоматÑки уклоњене."
#: editor/groups_editor.cpp
#, fuzzy
@@ -4156,13 +4312,17 @@ msgid "Error running post-import script:"
msgstr "Грешка при обрађивању поÑÑ‚-увозне Ñкриптице:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Чување..."
#: editor/import_dock.cpp
#, fuzzy
msgid "%d Files"
-msgstr " Датотеке"
+msgstr " %d Датотеке"
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
@@ -4186,17 +4346,22 @@ msgid "Reimport"
msgstr "Поново увези"
#: editor/import_dock.cpp
+#, fuzzy
msgid "Save Scenes, Re-Import, and Restart"
-msgstr ""
+msgstr "Упамти Сцену, Опет Увези, и РеÑтартуј"
#: editor/import_dock.cpp
+#, fuzzy
msgid "Changing the type of an imported file requires editor restart."
-msgstr ""
+msgstr "Промена врÑте увезених фајлова захтева реÑтарт уређивача."
#: editor/import_dock.cpp
+#, fuzzy
msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+"УПОЗОРЕЊЕ: ПоÑтоје ÑредÑтва која кориÑте овај реÑурÑ, могу преÑтати да Ñе "
+"учитавају правилно."
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
@@ -4273,7 +4438,7 @@ msgstr "ПоÑтавке објекта."
#: editor/inspector_dock.cpp
#, fuzzy
msgid "Filter properties"
-msgstr "ПоÑтавке објекта."
+msgstr "ПречиÑти оÑобине"
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4291,33 +4456,37 @@ msgstr "Одабери чвор за мењање Ñигнала и група."
#: editor/plugin_config_dialog.cpp
#, fuzzy
msgid "Edit a Plugin"
-msgstr "Измени полигон"
+msgstr "Измени Прикључак"
#: editor/plugin_config_dialog.cpp
#, fuzzy
msgid "Create a Plugin"
-msgstr "Ðаправи ивице"
+msgstr "Ðаправи Прикључак"
#: editor/plugin_config_dialog.cpp
#, fuzzy
msgid "Plugin Name:"
-msgstr "Прикључци"
+msgstr "Име Прикључка :"
#: editor/plugin_config_dialog.cpp
+#, fuzzy
msgid "Subfolder:"
-msgstr ""
+msgstr "ПодФолдер:"
#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp
+#, fuzzy
msgid "Language:"
-msgstr ""
+msgstr "Језик:"
#: editor/plugin_config_dialog.cpp
+#, fuzzy
msgid "Script Name:"
-msgstr ""
+msgstr "Име Скрипте:"
#: editor/plugin_config_dialog.cpp
+#, fuzzy
msgid "Activate now?"
-msgstr ""
+msgstr "Ðктивирај Ñад?"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -4330,7 +4499,7 @@ msgstr "Ðаправи полигон"
#: editor/plugins/animation_blend_space_2d_editor.cpp
#, fuzzy
msgid "Create points."
-msgstr "Обриши тачке"
+msgstr "Ðаправи тачке."
#: editor/plugins/abstract_polygon_2d_editor.cpp
#, fuzzy
@@ -4404,8 +4573,10 @@ msgstr "Промени време мешања"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
+"Ова врÑта чвора Ñе не може кориÑтити. Само корени чворови Ñу дозвољени."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4425,32 +4596,40 @@ msgid "Remove BlendSpace1D Point"
msgstr "Обриши тачку путање"
#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
msgid "Move BlendSpace1D Node Point"
-msgstr ""
+msgstr "Помери BlendSpace1D Чворну Тачку"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid ""
"AnimationTree is inactive.\n"
"Activate to enable playback, check node warnings if activation fails."
msgstr ""
+"AnimationTree је неактивно.\n"
+"Ðктивирај да омогућиш репродукцију, провери чвор упозорења ако активација не "
+"уÑпе."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
msgid "Set the blending position within the space"
-msgstr ""
+msgstr "ПоÑтави Ñтопљиву позицију Ñа размаком"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
msgid "Select and move points, create points with RMB."
-msgstr ""
+msgstr "Одабери и помери тачке, направи тачке Ñа RMB."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp
+#, fuzzy
msgid "Enable snap and show grid."
-msgstr ""
+msgstr "Омогући лепљење и прикажи мрежу."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4476,12 +4655,12 @@ msgstr "Ðнимациони чвор"
#: editor/plugins/animation_blend_space_2d_editor.cpp
#, fuzzy
msgid "Triangle already exists."
-msgstr "Грешка: име анимације већ поÑтоји!"
+msgstr "Троугао већ поÑтоји."
#: editor/plugins/animation_blend_space_2d_editor.cpp
#, fuzzy
msgid "Add Triangle"
-msgstr "Додај нову траку"
+msgstr "Додај Троугао"
#: editor/plugins/animation_blend_space_2d_editor.cpp
#, fuzzy
@@ -4499,33 +4678,39 @@ msgid "Remove BlendSpace2D Point"
msgstr "Обриши тачку путање"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
msgid "Remove BlendSpace2D Triangle"
-msgstr ""
+msgstr "Уклони BlendSpace2D Троугао"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
msgid "BlendSpace2D does not belong to an AnimationTree node."
-msgstr ""
+msgstr "BlendSpace2D не припада AnimationTree чвору."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
msgid "No triangles exist, so no blending can take place."
-msgstr ""
+msgstr "Троуглови не поÑтоје, па Ñе утапање не може догодити."
#: editor/plugins/animation_blend_space_2d_editor.cpp
#, fuzzy
msgid "Toggle Auto Triangles"
-msgstr "Укљ./ИÑкљ. глобале аутоматÑког учитавања"
+msgstr "Укљ./ИÑкљ. Троуглове"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
msgid "Create triangles by connecting points."
-msgstr ""
+msgstr "Ðаправи троуглове Ñпајајући тачке."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
msgid "Erase points and triangles."
-msgstr ""
+msgstr "Обриши тачке и троуглове."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
msgid "Generate blend triangles automatically (instead of manually)"
-msgstr ""
+msgstr "Произведи Ñтопљене троуглове аутоматÑки (умеÑто ручно)"
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -4543,34 +4728,37 @@ msgid "Edit Filters"
msgstr "Уреди филтере"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
msgid "Output node can't be added to the blend tree."
-msgstr ""
+msgstr "Излазни чвор не може бити додат утапајућем Ñтаблу."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
msgid "Add Node to BlendTree"
-msgstr ""
+msgstr "Додај Чвор УтапајућемСтаблу"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
-msgstr "Режим померања"
+msgstr "Чвор Поморен"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
msgid "Unable to connect, port may be in use or connection may be invalid."
-msgstr ""
+msgstr "ÐеуÑпела веза, порт може бити заузет или не важећи."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Nodes Connected"
-msgstr "Повезан"
+msgstr "Чворови Спојени"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Nodes Disconnected"
-msgstr "Веза прекинута"
+msgstr "Чворови Раздвојени"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#, fuzzy
@@ -4581,37 +4769,43 @@ msgstr "Ðнимација"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Delete Node"
-msgstr "Ðаправи чвор"
+msgstr "Обриши Чвор"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete Node(s)"
-msgstr ""
+msgstr "Обриши Чвор(ове)"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#, fuzzy
msgid "Toggle Filter On/Off"
-msgstr "Укљ./ИÑкљ. режим без Ñметње."
+msgstr "Укљ./ИÑкљ. филтере."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#, fuzzy
msgid "Change Filter"
-msgstr "Измени дужину анимације"
+msgstr "Измени Филтер"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
msgid "No animation player set, so unable to retrieve track names."
-msgstr ""
+msgstr "Ðнимациони плејер није поÑтављен, неуÑпешно повлачење имена трака."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
msgid "Player path set is invalid, so unable to retrieve track names."
-msgstr ""
+msgstr "Ðеважећа путања плејера, неуÑпешно повлачење имена трака."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/root_motion_editor_plugin.cpp
+#, fuzzy
msgid ""
"Animation player has no valid root node path, so unable to retrieve track "
"names."
msgstr ""
+"Ðнимациони плејер нема правилну путању кореног чвора, неуÑпешно повлачење "
+"имена трака."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#, fuzzy
@@ -4636,8 +4830,9 @@ msgstr "Име чвора:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Add Node..."
-msgstr ""
+msgstr "Додај Чвор..."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/root_motion_editor_plugin.cpp
@@ -4785,13 +4980,14 @@ msgid "Autoplay on Load"
msgstr "ÐутоматÑко пуштање након учитавања"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Омогући Слојевито Обмотавање"
#: editor/plugins/animation_player_editor_plugin.cpp
#, fuzzy
msgid "Onion Skinning Options"
-msgstr "ПоÑтавке залепљавања"
+msgstr "Опције Слојевитог Обмотавања"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Directions"
@@ -4868,105 +5064,121 @@ msgstr "Вишеанимационо време мешања"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
msgid "Move Node"
-msgstr "Режим померања"
+msgstr "Помери Чвор"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
msgid "Transition exists!"
-msgstr "Померај"
+msgstr "Прелаз поÑтоји!"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
msgid "Add Transition"
-msgstr "Померај"
+msgstr "Додај Прелаз"
#: editor/plugins/animation_state_machine_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Add Node"
-msgstr ""
+msgstr "Додај Чвор"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "End"
-msgstr ""
+msgstr "Крај"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "Immediate"
-msgstr ""
+msgstr "ÐепоÑредан"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "Sync"
-msgstr ""
+msgstr "УÑклади"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "At End"
-msgstr ""
+msgstr "Ðа Крај"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "Travel"
-msgstr ""
+msgstr "Путуј"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "Start and end nodes are needed for a sub-transition."
-msgstr ""
+msgstr "Почетни и крајњи чвор Ñу потребни за под-прелаз."
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
msgid "No playback resource set at path: %s."
-msgstr "Ðије на пут реÑурÑа."
+msgstr "Ðема репородуктивних реÑурÑа поÑтављених као путања: %s."
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
msgid "Node Removed"
-msgstr "Обриши"
+msgstr "Чвор Уклоњен"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
msgid "Transition Removed"
-msgstr "Transition чвор"
+msgstr "Прелаз Уклољен"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "Set Start Node (Autoplay)"
-msgstr ""
+msgstr "ПоÑтави Почетни Чвор(ауто-покретање)"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid ""
"Select and move nodes.\n"
"RMB to add new nodes.\n"
"Shift+LMB to create connections."
msgstr ""
+"Одабери и помери чворове.\n"
+"RMB да додаш нове чворове.\n"
+"Shift+LMB да креираш конекције."
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
msgid "Create new nodes."
-msgstr "Ðаправи нов"
+msgstr "Ðаправи нов."
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
msgid "Connect nodes."
-msgstr "Повежи Ñа чвором:"
+msgstr "Повежи чворове."
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
msgid "Remove selected node or transition."
-msgstr "Обриши одабрану траку."
+msgstr "Обриши одабрани чвор или прелаз."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "Toggle autoplay this animation on start, restart or seek to zero."
msgstr ""
+"ИÑкљ/Укљ ауто-покретање ове анимације на почетак, поновни почетак или "
+"претрагу нуле."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "Set the end animation. This is useful for sub-transitions."
-msgstr ""
+msgstr "ПоÑтави крај анимације. Ово је кориÑно за под-прелазе."
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
msgid "Transition: "
-msgstr "Померај"
+msgstr "Прелаз:"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
msgid "Play Mode:"
-msgstr "Режим инÑпекције"
+msgstr "Режим Игре:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5149,8 +5361,9 @@ msgid "Cannot save response to:"
msgstr "ÐеуÑпех при чувању теме:"
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "Write error."
-msgstr ""
+msgstr "Грешка при упиÑивању."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, too many redirects"
@@ -5199,7 +5412,7 @@ msgstr "Преузимање у току"
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
msgid "Downloading..."
-msgstr "Преузимање у току"
+msgstr "Преузимање..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving..."
@@ -5216,7 +5429,7 @@ msgstr "Ðеактиван"
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
msgid "Install..."
-msgstr "ИнÑталирај"
+msgstr "ИнÑталирај..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
@@ -5231,35 +5444,39 @@ msgid "Download for this asset is already in progress!"
msgstr "Преузимање овог реÑурÑа је у току!"
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "Recently Updated"
-msgstr ""
+msgstr "Ðедавно Ðжурирано"
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "Least Recently Updated"
-msgstr ""
+msgstr "ПоÑледње Ðедавно Ðжурирано"
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "Name (A-Z)"
-msgstr ""
+msgstr "Име (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "Name (Z-A)"
-msgstr ""
+msgstr "Име (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
msgid "License (A-Z)"
-msgstr "ЛиценÑа"
+msgstr "ЛиценÑа (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
msgid "License (Z-A)"
-msgstr "ЛиценÑа"
+msgstr "ЛиценÑа (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
msgid "First"
-msgstr "први"
+msgstr "Први"
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
@@ -5271,16 +5488,18 @@ msgid "Next"
msgstr "Следеће"
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "Last"
-msgstr ""
+msgstr "ПоÑледњи"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "All"
msgstr "Ñви"
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "No results for \"%s\"."
-msgstr ""
+msgstr "Ðема резултата за \"%s\"."
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
@@ -5321,32 +5540,42 @@ msgstr "ТеÑтирање"
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
msgid "Loading..."
-msgstr "Учитај"
+msgstr "Учитај..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
msgstr "РеÑурÑи ЗИП датотека"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
msgid ""
"Can't determine a save path for lightmap images.\n"
"Save your scene (for images to be saved in the same dir), or pick a save "
"path from the BakedLightmap properties."
msgstr ""
+"ÐеуÑпело одређивање путање памћења за Ñлике МапеСенчења.\n"
+"Упамти Ñцену (за Ñлике да буду Ñачуване у иÑтом директоријуму), или одабери "
+"путању памћења из оÑобина изпечене МапеСенчења."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
msgid ""
"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
"Light' flag is on."
msgstr ""
+"Ðема мрежа за печење. Провери да ли Ñадрже UV2 канал и да је опција 'Изпеци "
+"Светла' укључена."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
msgid "Failed creating lightmap images, make sure path is writable."
msgstr ""
+"ÐеуÑпешно креирање Ñлике МапеСенчења, провери да ли могуће упиÑивање путање."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
msgid "Bake Lightmaps"
-msgstr ""
+msgstr "Изпеци МапеСенчења"
#: editor/plugins/camera_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
@@ -5366,13 +5595,14 @@ msgid "Grid Step:"
msgstr "Корак мреже:"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Primary Line Every:"
-msgstr ""
+msgstr "Примарна Линија Сваки:"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "steps"
-msgstr "2 корака"
+msgstr "корака"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Offset:"
@@ -5385,7 +5615,7 @@ msgstr "Ротације корака:"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Scale Step:"
-msgstr "Скала:"
+msgstr "Корак Увећања:"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -5453,64 +5683,70 @@ msgid "Move CanvasItem"
msgstr "Уреди CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
-msgstr ""
+msgstr "Деца наÑлеђују Ñидра и граничне вредноÑти од Ñвојих родитеља."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Presets for the anchors and margins values of a Control node."
-msgstr ""
+msgstr "ПоÑтавке Ñидара и граничних вредноÑти Контролног чвора."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid ""
"When active, moving Control nodes changes their anchors instead of their "
"margins."
msgstr ""
+"Када Ñу активни, померање Контролних чворова мења њихова Ñидра умеÑто "
+"маргина."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Top Left"
-msgstr "Лево"
+msgstr "Горе Лево"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Top Right"
-msgstr "деÑно"
+msgstr "Горе ДеÑно"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Bottom Right"
-msgstr "Ротирај полигон"
+msgstr "Доле ДеÑно"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Bottom Left"
-msgstr "Поглед одоздо"
+msgstr "Доле Лево"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Center Left"
-msgstr "Увучи лево"
+msgstr "Средина Лево"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Center Top"
-msgstr "Центрирај одабрано"
+msgstr "Средина Горе"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Center Right"
-msgstr "Увучи деÑно"
+msgstr "Средина ДеÑно"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Center Bottom"
-msgstr "Доле"
+msgstr "Средина Доле"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Center"
-msgstr ""
+msgstr "Средина"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -5533,21 +5769,24 @@ msgid "Bottom Wide"
msgstr "Поглед одоздо"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "VCenter Wide"
-msgstr ""
+msgstr "Вертикална Средина Широко"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "HCenter Wide"
-msgstr ""
+msgstr "Хоризонтална Средина Широко"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Full Rect"
-msgstr ""
+msgstr "Пун Правоугаоник"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Keep Ratio"
-msgstr "Размера Ñкале:"
+msgstr "Задржи одноÑ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Anchors only"
@@ -5563,41 +5802,47 @@ msgstr "Промени Ñидра"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid ""
"Game Camera Override\n"
"Overrides game camera with editor viewport camera."
msgstr ""
+"Препиши Играчку Камеру\n"
+"Препиши играчку камеру Ñа камером уређивача viewport-а."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid ""
"Game Camera Override\n"
"No game instance running."
msgstr ""
+"Препиши Играчку Камеру\n"
+"ИнÑтанца игре није покренута."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Lock Selected"
-msgstr "Избор алатки"
+msgstr "Закључај одабрано"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Unlock Selected"
-msgstr "Избор алатки"
+msgstr "Откључај одабрано"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Group Selected"
-msgstr "Обриши одабрано"
+msgstr "Групиши Одабрано"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Ungroup Selected"
-msgstr "Обриши одабрано"
+msgstr "Разгрупиши Одабрано"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
@@ -5627,10 +5872,11 @@ msgid "Clear IK Chain"
msgstr "ОчиÑти IK ланац"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid ""
"Warning: Children of a container get their position and size determined only "
"by their parent."
-msgstr ""
+msgstr "Упозорење: Деца наÑлеђују позицију и величину Ñамо од Ñвојих родитеља."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
@@ -5675,7 +5921,7 @@ msgstr "Режим ротације"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Scale Mode"
-msgstr "Режим Ñкалирања (R)"
+msgstr "Режим Увећања"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5697,32 +5943,32 @@ msgstr "Режим инÑпекције"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Ruler Mode"
-msgstr "Режим Ñкалирања (R)"
+msgstr "Режим Мерења"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Toggle smart snapping."
-msgstr "Укљ./ИÑкљ. лепљења"
+msgstr "Укљ./ИÑкљ. лепљења."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Use Smart Snap"
-msgstr "КориÑти лепљење"
+msgstr "КориÑти паметно лепљење"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Toggle grid snapping."
-msgstr "Укљ./ИÑкљ. лепљења"
+msgstr "Укљ./ИÑкљ. лепљење за мрежу."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Use Grid Snap"
-msgstr "Лепљење по мрежи"
+msgstr "Лепљење за мрежу"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Snapping Options"
-msgstr "ПоÑтавке залепљавања"
+msgstr "ПоÑтавке Залепљавања"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Rotation Snap"
@@ -5731,7 +5977,7 @@ msgstr "КориÑти лепљење ротације"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Use Scale Snap"
-msgstr "КориÑти лепљење"
+msgstr "КориÑти ЛеÑтвично Лепљење"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap Relative"
@@ -5744,7 +5990,7 @@ msgstr "КориÑти лепљење за пикÑеле"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Smart Snapping"
-msgstr "Паметно лепљење"
+msgstr "Паметно Лепљење"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5754,22 +6000,22 @@ msgstr "ПоÑтавке лепљења..."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Snap to Parent"
-msgstr "Лепи за родитеља"
+msgstr "Лепи за Родитеља"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Snap to Node Anchor"
-msgstr "Лепи за Ñидро чвора"
+msgstr "Лепи за Сидро Чвора"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Snap to Node Sides"
-msgstr "Лепи за Ñтране чвора"
+msgstr "Лепи за Стране Чвора"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Snap to Node Center"
-msgstr "Лепи за Ñидро чвора"
+msgstr "Лепи за Сидро Чвора"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -5811,13 +6057,14 @@ msgid "Show Bones"
msgstr "Покажи коÑти"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Make Custom Bone(s) from Node(s)"
-msgstr ""
+msgstr "Ðаправи Произвољне КоÑти од Чворова"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Clear Custom Bones"
-msgstr "Обриши коÑти"
+msgstr "Обриши КоÑти"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5852,8 +6099,9 @@ msgid "Show Viewport"
msgstr "1 прозор"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Show Group And Lock Icons"
-msgstr ""
+msgstr "Прикажи Групу и Закључане Иконице"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
@@ -5864,43 +6112,52 @@ msgid "Frame Selection"
msgstr "Ибор рама"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Preview Canvas Scale"
-msgstr ""
+msgstr "Преглед Величине Платна"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Translation mask for inserting keys."
-msgstr ""
+msgstr "Преводна маÑка за убацивање кључева."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Rotation mask for inserting keys."
-msgstr ""
+msgstr "Ротациона маÑка за убацивање кључева."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Scale mask for inserting keys."
-msgstr ""
+msgstr "ЛеÑтвична маÑка за убацивање кључева."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Insert keys (based on mask)."
-msgstr "Убаци кључ (поÑтојеће траке)"
+msgstr "Убаци кључеве (базиране на маÑци)."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid ""
"Auto insert keys when objects are translated, rotated or scaled (based on "
"mask).\n"
"Keys are only added to existing tracks, no new tracks will be created.\n"
"Keys must be inserted manually for the first time."
msgstr ""
+"ÐутоматÑки убаци кључеве где Ñу објекти преведени, ротирирани или увећани "
+"(базирано на маÑци).\n"
+"Кључеви Ñу додани Ñамо поÑтојећим тракама, нове траке неће бити креиране.\n"
+"Кључеви први пут морају бити убачени ручно."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Auto Insert Key"
-msgstr "Уметни кључ"
+msgstr "Ðуто-Уметни кључ"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Animation Key and Pose Options"
-msgstr "Ðнимациони кључ убачен."
+msgstr "Опције Ðнимациононг кључа и Позе"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
@@ -5936,8 +6193,9 @@ msgid "Adding %s..."
msgstr "Додавање %s..."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Cannot instantiate multiple nodes without root."
-msgstr ""
+msgstr "ÐеуÑпело инÑтанцирање више чворова без корена."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6015,19 +6273,21 @@ msgstr "МаÑка емиÑије"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
+#, fuzzy
msgid "Solid Pixels"
-msgstr ""
+msgstr "ПикÑели Тела"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
+#, fuzzy
msgid "Border Pixels"
-msgstr ""
+msgstr "ПикÑели Оквира"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
#, fuzzy
msgid "Directed Border Pixels"
-msgstr "Директоријуми и датотеке:"
+msgstr "ПикÑели УÑмерених Оквира"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -6042,7 +6302,7 @@ msgstr "Боје емиÑије"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#, fuzzy
msgid "CPUParticles"
-msgstr "ЧеÑтице"
+msgstr "CPU ЧеÑтице"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -6065,12 +6325,14 @@ msgid "Flat 1"
msgstr "Раван1"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
+#, fuzzy
msgid "Ease In"
-msgstr ""
+msgstr "Благ Почетак"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
+#, fuzzy
msgid "Ease Out"
-msgstr ""
+msgstr "Благ Крај"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Smoothstep"
@@ -6135,8 +6397,9 @@ msgid "Bake GI Probe"
msgstr "ИÑпечи Ñонде глобалног оÑветљења (GI)"
#: editor/plugins/gradient_editor_plugin.cpp
+#, fuzzy
msgid "Gradient Edited"
-msgstr ""
+msgstr "Ðагиб Измењен"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
@@ -6161,7 +6424,7 @@ msgstr "Мрежа је празна!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
msgid "Couldn't create a Trimesh collision shape."
-msgstr "Ðаправи троуглаÑтог Ñударног брата"
+msgstr "ÐеуÑпело креирање три-мрежног Ñударног облика."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
@@ -6174,54 +6437,61 @@ msgstr "Ово не ради на корену Ñцене!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
msgid "Create Trimesh Static Shape"
-msgstr "Ðаправи фигуру од троуглова"
+msgstr "Ðаправи облик од троуглова"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid "Can't create a single convex collision shape for the scene root."
-msgstr ""
+msgstr "ÐеуÑпело креирање једног конвекÑног Ñудардног облика за корен Ñцене."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid "Couldn't create a single convex collision shape."
-msgstr ""
+msgstr "ÐеуÑпело креирање једног конвекÑног Ñударног облика."
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
msgid "Create Single Convex Shape"
-msgstr "Ðаправи конвекÑну фигуру"
+msgstr "Ðаправи конвекÑну облик"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid "Can't create multiple convex collision shapes for the scene root."
-msgstr ""
+msgstr "ÐеуÑпело креирање више конвекÑних Ñударних облика за корен Ñцене."
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
msgid "Couldn't create any collision shapes."
-msgstr "ÐеуÑпех при прављењу директоријума."
+msgstr "ÐеуÑпело креирање Ñударног облика."
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
msgid "Create Multiple Convex Shapes"
-msgstr "Ðаправи конвекÑну фигуру"
+msgstr "Ðаправи конвекÑни облик"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
msgstr "Ðаправи навигациону мрежу"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid "Contained Mesh is not of type ArrayMesh."
-msgstr ""
+msgstr "Садржана-Мрежа није од врÑте Ðиз-Мрежа."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid "UV Unwrap failed, mesh may not be manifold?"
-msgstr ""
+msgstr "ÐеуÑпешно UV одмотавање, можда мрежа није многоÑтрука?"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid "No mesh to debug."
-msgstr ""
+msgstr "Ðема мреже за проверу."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid "Model has no UV in this layer"
-msgstr ""
+msgstr "Модел нема UV мапу на овом Ñлоју"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6232,8 +6502,9 @@ msgid "Mesh has not surface to create outlines from!"
msgstr "Мрежа нема површине за прављење ивица!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!"
-msgstr ""
+msgstr "Примитивна врÑта Мреже није ПРИМИТИВÐИ_ТРОУГЛОВИ!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
@@ -6252,21 +6523,27 @@ msgid "Create Trimesh Static Body"
msgstr "Ðаправи троуглаÑто Ñтатично тело"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid ""
"Creates a StaticBody and assigns a polygon-based collision shape to it "
"automatically.\n"
"This is the most accurate (but slowest) option for collision detection."
msgstr ""
+" Креира ÐепомичноТело и додељује му Ñударни облик на бази многоугла "
+"аутоматÑки."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Collision Sibling"
msgstr "Ðаправи троуглаÑтог Ñударног брата"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid ""
"Creates a polygon-based collision shape.\n"
"This is the most accurate (but slowest) option for collision detection."
msgstr ""
+"Креира Ñударни облик на бази моногоугла.\n"
+"Ово је најпрецизнија(али и најÑпорија) опција за препознавање Ñудара."
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
@@ -6274,10 +6551,13 @@ msgid "Create Single Convex Collision Sibling"
msgstr "Ðаправи конвекÑног Ñударног брата"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid ""
"Creates a single convex collision shape.\n"
"This is the fastest (but least accurate) option for collision detection."
msgstr ""
+"Креира један конвекÑни Ñударни облик.\n"
+"Ово је најбржа(али и најнепрецизнија) опција за препознавање Ñудара."
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
@@ -6285,36 +6565,45 @@ msgid "Create Multiple Convex Collision Siblings"
msgstr "Ðаправи конвекÑног Ñударног брата"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid ""
"Creates a polygon-based collision shape.\n"
"This is a performance middle-ground between the two above options."
msgstr ""
+"Креира Ñударни облик на бази многоугла.\n"
+"Ова опција поÑтиже Ñредињи учинак између 2 горе наведене."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
msgstr "Ðаправи ивичну мрежу..."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid ""
"Creates a static outline mesh. The outline mesh will have its normals "
"flipped automatically.\n"
"This can be used instead of the SpatialMaterial Grow property when using "
"that property isn't possible."
msgstr ""
+"Креира непомични оквир мреже. Оквир мреже ће имати обрнуте нормале "
+"аутоматÑки.\n"
+"Ово може бити коришћено умеÑто РаÑÑ‚ оÑобине РаÑтућегМатеријала кад коришћење "
+"те оÑобине није могуће."
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
msgid "View UV1"
-msgstr "Поглед"
+msgstr "Види UV1"
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
msgid "View UV2"
-msgstr "Поглед"
+msgstr "Види UV2"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid "Unwrap UV2 for Lightmap/AO"
-msgstr ""
+msgstr "Одмотај UV2 за МапуСенки/Упијање Окружења"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
@@ -6325,8 +6614,9 @@ msgid "Outline Size:"
msgstr "Величина ивице:"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
msgid "UV Channel Debug"
-msgstr ""
+msgstr "UV Канал ПИП (Проналажење и ИÑправка Проблема)"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Remove item %d?"
@@ -6337,12 +6627,14 @@ msgstr "Обриши Ñтвар %d?"
msgid ""
"Update from existing scene?:\n"
"%s"
-msgstr "Ðжурирај из Ñцене"
+msgstr ""
+"Ðжурирај из Ñцене? :\n"
+"%s"
#: editor/plugins/mesh_library_editor_plugin.cpp
#, fuzzy
msgid "Mesh Library"
-msgstr "MeshLibrary..."
+msgstr "Библиотека Мрежа..."
#: editor/plugins/mesh_library_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
@@ -6462,12 +6754,12 @@ msgstr "Ðаправи навигациони полигон"
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
msgid "Convert to CPUParticles"
-msgstr "Претвори у велика Ñлова"
+msgstr "Претвори у CPU чеÑтице"
#: editor/plugins/particles_2d_editor_plugin.cpp
#, fuzzy
msgid "Generating Visibility Rect"
-msgstr "Генериши правоугаоник видљивоÑти"
+msgstr "Генерација Правоугаоника ВидљивоÑти"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
@@ -6483,17 +6775,19 @@ msgid "Generation Time (sec):"
msgstr "Време генериÑања (Ñек.):"
#: editor/plugins/particles_editor_plugin.cpp
+#, fuzzy
msgid "The geometry's faces don't contain any area."
-msgstr ""
+msgstr "Лица геометрије не Ñадржи ни једну облаÑÑ‚."
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
msgid "The geometry doesn't contain any faces."
-msgstr "Чвор не Ñадржи геометрију (Ñтране)."
+msgstr "Геометрија не Ñадржи ни једно лице."
#: editor/plugins/particles_editor_plugin.cpp
+#, fuzzy
msgid "\"%s\" doesn't inherit from Spatial."
-msgstr ""
+msgstr "\"%s\" не наÑлеђује од ПроÑторног."
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
@@ -6565,7 +6859,7 @@ msgstr "Уметни тачку у криву"
#: editor/plugins/path_2d_editor_plugin.cpp
#, fuzzy
msgid "Split Curve"
-msgstr "Затвори криву"
+msgstr "Подели Криву"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Point in Curve"
@@ -6631,13 +6925,15 @@ msgstr "Опција"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
+#, fuzzy
msgid "Mirror Handle Angles"
-msgstr ""
+msgstr "Углови Дршке Огледала"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
+#, fuzzy
msgid "Mirror Handle Lengths"
-msgstr ""
+msgstr "Дужине Дршке Огледала"
#: editor/plugins/path_editor_plugin.cpp
msgid "Curve Point #"
@@ -6681,30 +6977,36 @@ msgid "Move Joint"
msgstr "Помери тачку"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
msgid ""
"The skeleton property of the Polygon2D does not point to a Skeleton2D node"
-msgstr ""
+msgstr "КоÑтур оÑобина 2Д полигона не упире ка 2Д КоÑтур чвору"
#: editor/plugins/polygon_2d_editor_plugin.cpp
#, fuzzy
msgid "Sync Bones"
-msgstr "Покажи коÑти"
+msgstr "УÑклади КоÑке"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
msgid ""
"No texture in this polygon.\n"
"Set a texture to be able to edit UV."
msgstr ""
+"Ðема текÑтуре у овом многоуглу.\n"
+"ПоÑтави текÑтуру да би едитовао UV."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create UV Map"
msgstr "Ðаправи UV мапу"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
msgstr ""
+"2Д многоугао има унутрашње тачке, па не може више бити едитован у viewport-у."
#: editor/plugins/polygon_2d_editor_plugin.cpp
#, fuzzy
@@ -6722,8 +7024,9 @@ msgid "Remove Internal Vertex"
msgstr "Обриши тачку контроле улаза"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
msgid "Invalid Polygon (need 3 different vertices)"
-msgstr ""
+msgstr "Ðеважећи Многоугао(потребне 3 различите тачке)"
#: editor/plugins/polygon_2d_editor_plugin.cpp
#, fuzzy
@@ -6745,8 +7048,9 @@ msgid "Transform Polygon"
msgstr "Тип транÑформације"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
msgid "Paint Bone Weights"
-msgstr ""
+msgstr "Боји Тежине КоÑтура"
#: editor/plugins/polygon_2d_editor_plugin.cpp
#, fuzzy
@@ -6758,8 +7062,9 @@ msgid "Polygon 2D UV Editor"
msgstr "Уредник UV 2Д полигона"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
msgid "UV"
-msgstr ""
+msgstr "UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
#, fuzzy
@@ -6806,26 +7111,34 @@ msgid "Scale Polygon"
msgstr "Скалирај полигон"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
msgid "Create a custom polygon. Enables custom polygon rendering."
msgstr ""
+"Креирај произвољни многоугао. Омогућује изцртавање произвољног многоугла."
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
msgid ""
"Remove a custom polygon. If none remain, custom polygon rendering is "
"disabled."
msgstr ""
+"Уклони произвољни многоугао. Ðко ни један није оÑтао, изцртавање произв. "
+"многоугла је онемогућено."
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
msgid "Paint weights with specified intensity."
-msgstr ""
+msgstr "Боји тежине Ñа наведеном Ñнагом"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
msgid "Unpaint weights with specified intensity."
-msgstr ""
+msgstr "Обриши обојене тежине наведене Ñнаге"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
msgid "Radius:"
-msgstr ""
+msgstr " ОпÑег:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon->UV"
@@ -6917,8 +7230,9 @@ msgstr "Ðалепи реÑурÑе"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid "Instance:"
-msgstr ""
+msgstr "ИнÑтанца:"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
@@ -6929,8 +7243,9 @@ msgstr "Тип:"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp
+#, fuzzy
msgid "Open in Editor"
-msgstr ""
+msgstr "Отвори у Уреднику"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Load Resource"
@@ -6942,13 +7257,14 @@ msgid "ResourcePreloader"
msgstr "РеÑурÑ"
#: editor/plugins/root_motion_editor_plugin.cpp
+#, fuzzy
msgid "AnimationTree has no path set to an AnimationPlayer"
-msgstr ""
+msgstr "AnimationTree нема путању поÑтављену ка AnimationPlayer-у"
#: editor/plugins/root_motion_editor_plugin.cpp
#, fuzzy
msgid "Path to AnimationPlayer is invalid"
-msgstr "Ðнимационо дрво није важеће."
+msgstr "Путања до AnimationPlayer није важећа."
#: editor/plugins/script_editor_plugin.cpp
msgid "Clear Recent Files"
@@ -7012,21 +7328,27 @@ msgid "Save File As..."
msgstr "Сачувај као..."
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
msgid "Can't obtain the script for running."
-msgstr ""
+msgstr "ÐеуÑпело добијање Ñкрипте за покретање"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
msgid "Script failed reloading, check console for errors."
-msgstr ""
+msgstr "ÐеуÑпело учитавање Скрипте, провери конзолу за могуће грешке."
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
msgid "Script is not in tool mode, will not be able to run."
-msgstr ""
+msgstr "Скрипта није у Ðлат Режиму, неће бити покренута."
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
msgid ""
"To run this script, it must inherit EditorScript and be set to tool mode."
msgstr ""
+"За покретање Ñкрипте, мора наÑледити УредникСкрипту и бити поÑтављена у Ðлат "
+"Режим."
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
@@ -7062,16 +7384,17 @@ msgstr "Ðађи претходни"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
msgid "Filter scripts"
-msgstr "ПоÑтавке објекта."
+msgstr "Филтрирај Ñкрипте"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
msgid "Toggle alphabetical sorting of the method list."
-msgstr ""
+msgstr "Укљ/ИÑкљ алфабет Ñортирање ÑпиÑка метода."
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
msgid "Filter methods"
-msgstr "ПоÑтавке објекта."
+msgstr "Филтрирај методе"
#: editor/plugins/script_editor_plugin.cpp
msgid "Sort"
@@ -7104,12 +7427,12 @@ msgstr "Датотека"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
msgid "Open..."
-msgstr "Отвори"
+msgstr "Отвори..."
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
msgid "Reopen Closed Script"
-msgstr "Покрени Ñкриптицу"
+msgstr "Покрени Затворену Скрипту"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save All"
@@ -7122,7 +7445,7 @@ msgstr "Мекано оÑвежење Ñкриптице"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
msgid "Copy Script Path"
-msgstr "Копирај пут"
+msgstr "Копирај Путању Скрипте"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
@@ -7137,12 +7460,12 @@ msgstr "ИÑторија Ñледеће"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme"
-msgstr "Сачувај тему"
+msgstr "Тема"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
msgid "Import Theme..."
-msgstr "Увези тему"
+msgstr "Увези тему..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
@@ -7193,7 +7516,7 @@ msgstr "Дебагуј Ñа Ñпољашњим уредником"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
msgid "Open Godot online documentation."
-msgstr "Отвори Godot онлајн документацију"
+msgstr "Отвори Godot документацију Ñа мреже"
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the reference documentation."
@@ -7236,28 +7559,27 @@ msgstr "Дебагер"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
msgid "Search Results"
-msgstr "Потражи помоћ"
+msgstr "Потражи Ретултате"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
msgid "Clear Recent Scripts"
-msgstr "ОчиÑти недавне Ñцене"
+msgstr "ОчиÑти Ðедавне Скрипте"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Connections to method:"
-msgstr "Повежи Ñа чвором:"
+msgstr "Везе Ñа методом:"
#: editor/plugins/script_text_editor.cpp editor/script_editor_debugger.cpp
#, fuzzy
msgid "Source"
-msgstr ""
-"\n"
-"Извор: "
+msgstr "Извор"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
msgid "Target"
-msgstr ""
+msgstr "Мета"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
@@ -7267,12 +7589,13 @@ msgstr "Повежи '%s' Ñа '%s'"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Line"
-msgstr "Линија:"
+msgid "[Ignore]"
+msgstr "(игнориши)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
+#, fuzzy
+msgid "Line"
+msgstr "Линија:"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
@@ -7285,8 +7608,9 @@ msgstr "Само реÑурÑи из датотечног ÑиÑтема Ñе м
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Can't drop nodes because script '%s' is not used in this scene."
-msgstr ""
+msgstr "ÐеуÑпешно иÑпуштање чворова јер Ñкрипта'%s' није део ове Ñцене."
#: editor/plugins/script_text_editor.cpp
#, fuzzy
@@ -7314,23 +7638,26 @@ msgid "Capitalize"
msgstr "Велика Ñлова"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
+#, fuzzy
msgid "Syntax Highlighter"
-msgstr ""
+msgstr "Изтицање СинтакÑе"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+#, fuzzy
msgid "Go To"
-msgstr ""
+msgstr "Иди Ðа"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+#, fuzzy
msgid "Bookmarks"
-msgstr ""
+msgstr "Белешке"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Breakpoints"
-msgstr "Обриши тачке"
+msgstr "Тачке прекида"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
@@ -7361,7 +7688,7 @@ msgstr "Коментариши"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Fold/Unfold Line"
-msgstr "Откриј линију"
+msgstr "Сакриј/Отркиј Линију"
#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
@@ -7382,7 +7709,7 @@ msgstr "Потпун Ñимбол"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Evaluate Selection"
-msgstr "Увећај одабрано"
+msgstr "Процени Одабрано"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
@@ -7466,7 +7793,7 @@ msgid ""
"This shader has been modified on on disk.\n"
"What action should be taken?"
msgstr ""
-"Следеће датотеке Ñу нове на диÑку.\n"
+"Овај Цртач је измењен на диÑку.\n"
"Која акција Ñе треба предузети?:"
#: editor/plugins/shader_editor_plugin.cpp
@@ -7474,8 +7801,9 @@ msgid "Shader"
msgstr "Шејдер"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "This skeleton has no bones, create some children Bone2D nodes."
-msgstr ""
+msgstr "Овај коÑтур нема коÑти, креирај му децу КоÑка2Д чворове."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
@@ -7483,21 +7811,24 @@ msgid "Create Rest Pose from Bones"
msgstr "Ðаправи тачке емиÑије од мреже"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Set Rest Pose to Bones"
-msgstr ""
+msgstr "ПоÑтави Одмор Позу на КоÑке"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
msgid "Skeleton2D"
-msgstr "Синглетон"
+msgstr "Синглетон2Д"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Make Rest Pose (From Bones)"
-msgstr ""
+msgstr "Ðаправи Одмор Позу(од КоÑтију)"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Set Bones to Rest Pose"
-msgstr ""
+msgstr "ПоÑтави КоÑке у Одмор Позу"
#: editor/plugins/skeleton_editor_plugin.cpp
#, fuzzy
@@ -7568,12 +7899,14 @@ msgid "Animation Key Inserted."
msgstr "Ðнимациони кључ убачен."
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid "Pitch"
-msgstr ""
+msgstr "Лево-ДеÑно"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid "Yaw"
-msgstr ""
+msgstr "Горе-Доле"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Objects Drawn"
@@ -7722,8 +8055,9 @@ msgid "Cinematic Preview"
msgstr "Ðаправи приказ мрежа"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "ÐедоÑтупно кад кориÑтиш GLES2 изцртавање."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -7764,23 +8098,36 @@ msgid "View Rotation Locked"
msgstr "Прикажи информације"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid ""
"Note: The FPS value displayed is the editor's framerate.\n"
"It cannot be used as a reliable indication of in-game performance."
msgstr ""
+"Белешка: FPS вредноÑÑ‚ приказана је FPS вредноÑÑ‚ Уредника.\n"
+"Ðе може бити коришћена као поуздана оцена учинка у игри."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
msgstr "XForm дијалог"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Snap Nodes To Floor"
msgstr "Залепи за мрежу"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid "Couldn't find a solid floor to snap the selection to."
-msgstr ""
+msgstr "Ðије пронађен чврÑÑ‚ под где ће Ñе одабир прилепити"
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
@@ -7854,7 +8201,7 @@ msgstr "ТранÑформација"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Snap Object to Floor"
-msgstr "Залепи за мрежу"
+msgstr "Залепи Објекат за Под"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog..."
@@ -7936,8 +8283,9 @@ msgid "View Z-Far:"
msgstr "МакÑимум Z за приказ:"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid "Transform Change"
-msgstr ""
+msgstr "Промена ТранÑформације"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate:"
@@ -7964,8 +8312,9 @@ msgid "Post"
msgstr "ПоÑле"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid "Nameless gizmo"
-msgstr ""
+msgstr "Безимена ручка"
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -7983,8 +8332,9 @@ msgid "Create Polygon2D"
msgstr "Ðаправи полигон"
#: editor/plugins/sprite_editor_plugin.cpp
+#, fuzzy
msgid "Polygon2D Preview"
-msgstr ""
+msgstr "Приказ Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -8012,12 +8362,14 @@ msgid "Sprite is empty!"
msgstr "Мрежа је празна!"
#: editor/plugins/sprite_editor_plugin.cpp
+#, fuzzy
msgid "Can't convert a sprite using animation frames to mesh."
-msgstr ""
+msgstr "ÐеуÑпело претварање Ñпрајта кориÑтећи анимационе оквире у мрежу."
#: editor/plugins/sprite_editor_plugin.cpp
+#, fuzzy
msgid "Invalid geometry, can't replace by mesh."
-msgstr ""
+msgstr "Ðеважећа геометрија, неуÑпеша замена Ñа мрежом."
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -8025,8 +8377,9 @@ msgid "Convert to Mesh2D"
msgstr "Претвори у велика Ñлова"
#: editor/plugins/sprite_editor_plugin.cpp
+#, fuzzy
msgid "Invalid geometry, can't create polygon."
-msgstr ""
+msgstr "Ðеважећа геометрија, неуÑпешно креирање многоугла."
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -8034,8 +8387,9 @@ msgid "Convert to Polygon2D"
msgstr "Помери полигон"
#: editor/plugins/sprite_editor_plugin.cpp
+#, fuzzy
msgid "Invalid geometry, can't create collision polygon."
-msgstr ""
+msgstr "Ðеважећа геометрија, неуÑпело креирање Ñударног многоугла."
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -8043,8 +8397,9 @@ msgid "Create CollisionPolygon2D Sibling"
msgstr "Ðаправи навигациони полигон"
#: editor/plugins/sprite_editor_plugin.cpp
+#, fuzzy
msgid "Invalid geometry, can't create light occluder."
-msgstr ""
+msgstr "Ðеважећа геометрија, неуÑпело креирање затамљивача Ñветла."
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -8057,16 +8412,19 @@ msgid "Sprite"
msgstr "Ðалепи оквир"
#: editor/plugins/sprite_editor_plugin.cpp
+#, fuzzy
msgid "Simplification: "
-msgstr ""
+msgstr "ПоједноÑтављено:"
#: editor/plugins/sprite_editor_plugin.cpp
+#, fuzzy
msgid "Shrink (Pixels): "
-msgstr ""
+msgstr "Умањи (ПикÑели):"
#: editor/plugins/sprite_editor_plugin.cpp
+#, fuzzy
msgid "Grow (Pixels): "
-msgstr ""
+msgstr "Увећај (ПикÑели):"
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -8156,8 +8514,9 @@ msgid "Add a Texture from File"
msgstr "Сними од пикÑела"
#: editor/plugins/sprite_frames_editor_plugin.cpp
+#, fuzzy
msgid "Add Frames from a Sprite Sheet"
-msgstr ""
+msgstr "Додај Рамове Ñа Спрајт ЛиÑте"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Insert Empty (Before)"
@@ -8181,13 +8540,14 @@ msgid "Select Frames"
msgstr "Одабери режим"
#: editor/plugins/sprite_frames_editor_plugin.cpp
+#, fuzzy
msgid "Horizontal:"
-msgstr ""
+msgstr "Хоризонтално:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
#, fuzzy
msgid "Vertical:"
-msgstr "Тачке"
+msgstr "Вертикално:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
#, fuzzy
@@ -8244,8 +8604,9 @@ msgid "Step:"
msgstr "Корак:"
#: editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
msgid "Sep.:"
-msgstr ""
+msgstr "Сеп.:"
#: editor/plugins/texture_region_editor_plugin.cpp
#, fuzzy
@@ -8317,12 +8678,14 @@ msgid "Disabled Item"
msgstr "Онемогућено"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Check Item"
-msgstr ""
+msgstr "Провери Предмет"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Checked Item"
-msgstr ""
+msgstr "Предмет проверен"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8335,12 +8698,14 @@ msgid "Checked Radio Item"
msgstr "CheckBox Radio1"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Named Sep."
-msgstr ""
+msgstr "Иманован Сеп."
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Submenu"
-msgstr ""
+msgstr "Под-мени"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8385,8 +8750,9 @@ msgid "Editable Item"
msgstr "Измени тему..."
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Subtree"
-msgstr ""
+msgstr "Под-Ñтабло"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8461,8 +8827,9 @@ msgid "Find Tile"
msgstr "Ðађи плочицу"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
msgid "Transpose"
-msgstr ""
+msgstr "Преокрени"
#: editor/plugins/tile_map_editor_plugin.cpp
#, fuzzy
@@ -8480,18 +8847,22 @@ msgid "Filter tiles"
msgstr "Филтрирај датотеке..."
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
msgid "Give a TileSet resource to this TileMap to use its tiles."
-msgstr ""
+msgstr "Дај КомплетПлочица реÑÑƒÑ€Ñ Ð¾Ð²Ð¾Ð¼ КомплетуМапа да кориÑте његове плочице."
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint Tile"
msgstr "Цртај полчице"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
+"Shift+LMB: Цртање Линије\n"
+"Shift+Ctrl+LMB: Бојење Четвороугла"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Pick Tile"
@@ -8508,21 +8879,24 @@ msgid "Rotate Right"
msgstr "Ротирај полигон"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
msgid "Flip Horizontally"
-msgstr ""
+msgstr "Обрни Хоризонтално"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
msgid "Flip Vertically"
-msgstr ""
+msgstr "Обрни Вертикално"
#: editor/plugins/tile_map_editor_plugin.cpp
#, fuzzy
msgid "Clear Transform"
-msgstr "ТранÑформација"
+msgstr "ОчиÑти ТранÑформацију"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Add Texture(s) to TileSet."
-msgstr ""
+msgstr "Додај ТекÑтуру(е) КомплетуПлочица."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8539,8 +8913,9 @@ msgid "Merge from Scene"
msgstr "Споји од Ñцене"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "New Single Tile"
-msgstr ""
+msgstr "Ðова Једна Плочица"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8548,8 +8923,9 @@ msgid "New Autotile"
msgstr "ÐутоматÑки рез"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "New Atlas"
-msgstr ""
+msgstr "Ðов ÐтлаÑ"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8557,8 +8933,9 @@ msgid "Next Coordinate"
msgstr "Следећа Ñкриптица"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Select the next shape, subtile, or Tile."
-msgstr ""
+msgstr "Одабери Ñледећи облик, под-плочицу, или плочицу."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8566,8 +8943,9 @@ msgid "Previous Coordinate"
msgstr "Претодни Ñпрат"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Select the previous shape, subtile, or Tile."
-msgstr ""
+msgstr "Одабери претходни облик, под-плочицу, или плочицу."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8645,8 +9023,9 @@ msgid "Z Index Mode"
msgstr "Режим инÑпекције"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Copy bitmask."
-msgstr ""
+msgstr "Копирај БитМаÑку."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8669,21 +9048,26 @@ msgid "Create a new polygon."
msgstr "Ðаправи нови полигон од почетка."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Keep polygon inside region Rect."
-msgstr ""
+msgstr "Задржи многоугао унутар региона Четвороугла."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Enable snap and show grid (configurable via the Inspector)."
-msgstr ""
+msgstr "Омогући лепљење и прикажи мрежу ( подеÑива преко инÑпектора)."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Display Tile Names (Hold Alt Key)"
-msgstr ""
+msgstr "Прикажи Имена Плочица (Држи Alt дугмић)"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid ""
"Add or select a texture on the left panel to edit the tiles bound to it."
msgstr ""
+"Додај или одабери текÑтуру на левом панелу да измениш њену везану плочицу."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8691,12 +9075,14 @@ msgid "Remove selected texture? This will remove all tiles which use it."
msgstr "Обриши тачку криве"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "You haven't selected a texture to remove."
-msgstr ""
+msgstr "ТекÑтура за уклањање није одабрана."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create from scene? This will overwrite all current tiles."
-msgstr ""
+msgstr "Креирај од Ñцене? Ово ће препиÑати Ñве тренутне плочице."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8709,14 +9095,18 @@ msgid "Remove Texture"
msgstr "Обриши шаблон"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "%s file(s) were not added because was already on the list."
-msgstr ""
+msgstr "%s фајл(ови) ниÑу додани јер Ñу већ на лиÑти."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid ""
"Drag handles to edit Rect.\n"
"Click on another Tile to edit it."
msgstr ""
+"Вуци ручице да изениш Правоугаоник.\n"
+"Кликни на другу плочицу да је измениш."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8745,17 +9135,24 @@ msgid ""
msgstr "Сачувај тренутно измењени реÑурÑ."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid ""
"Select sub-tile to use as icon, this will be also used on invalid autotile "
"bindings.\n"
"Click on another Tile to edit it."
msgstr ""
+"Одабери под-плочицу као иконицу, ово ће такође бити изкоришћено на неважећим "
+"Ñпојевима ауто-плочицица.\n"
+"Кликни на другу плочицу да је измениш."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid ""
"Select sub-tile to change its priority.\n"
"Click on another Tile to edit it."
msgstr ""
+"Одабери под-плочицу да измениш њен приоритет.\n"
+"Кликни на другу плочицу да је измениш."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8775,8 +9172,9 @@ msgid "Create Tile"
msgstr "Ðаправи директоријум"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Set Tile Icon"
-msgstr ""
+msgstr "ПоÑтави иконицу Плочице"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8804,8 +9202,9 @@ msgid "Paste Tile Bitmask"
msgstr "Ðалепи анимацију"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Clear Tile Bitmask"
-msgstr ""
+msgstr "ОчиÑти БитМаÑке Ñа Плочице"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8843,8 +9242,9 @@ msgid "Edit Tile Priority"
msgstr "Уреди филтере"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Edit Tile Z Index"
-msgstr ""
+msgstr "Измени Z Ð¸Ð½Ð´ÐµÐºÑ ÐŸÐ»Ð¾Ñ‡Ð¸Ñ†Ðµ"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8877,8 +9277,9 @@ msgid "TileSet"
msgstr "TileSet..."
#: editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "No VCS addons are available."
-msgstr ""
+msgstr " VCS додатци ниÑу доÑтупни."
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Error"
@@ -8890,8 +9291,9 @@ msgid "No commit message was provided"
msgstr "Име није дато"
#: editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "No files added to stage"
-msgstr ""
+msgstr "Ðи један фајл није додат на позорницу"
#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
@@ -8899,12 +9301,14 @@ msgid "Commit"
msgstr "Заједница"
#: editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "VCS Addon is not initialized"
-msgstr ""
+msgstr "VCS додатак није иницијализован"
#: editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "Version Control System"
-msgstr ""
+msgstr "VCS(СиÑтем Контроле Верзије)"
#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
@@ -8912,8 +9316,9 @@ msgid "Initialize"
msgstr "Велика Ñлова"
#: editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "Staging area"
-msgstr ""
+msgstr "СценÑки проÑтор"
#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
@@ -8926,8 +9331,9 @@ msgid "Changes"
msgstr "Промене шејдера"
#: editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "Modified"
-msgstr ""
+msgstr "Измењено"
#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
@@ -8940,8 +9346,9 @@ msgid "Deleted"
msgstr "Обриши"
#: editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "Typechange"
-msgstr ""
+msgstr "Промена типа"
#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
@@ -8954,8 +9361,9 @@ msgid "Stage All"
msgstr "Сачувај Ñве"
#: editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "Add a commit message"
-msgstr ""
+msgstr "Додај предајну поруку"
#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
@@ -8964,24 +9372,29 @@ msgstr "Синхронизуј промене Ñкриптица"
#: editor/plugins/version_control_editor_plugin.cpp
#: modules/gdnative/gdnative_library_singleton_editor.cpp
+#, fuzzy
msgid "Status"
-msgstr ""
+msgstr "СтатуÑ"
#: editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "View file diffs before committing them to the latest version"
-msgstr ""
+msgstr "Погледај фајл разлике пре него га предаш задњој верзији."
#: editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "No file diff is active"
-msgstr ""
+msgstr "Ðи једна фајл разлика није активна"
#: editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "Detect changes in file diff"
-msgstr ""
+msgstr "Пронађене промене у фајл разликама"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "(GLES3 only)"
-msgstr ""
+msgstr "(Ñамо GLES3)"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -8999,12 +9412,14 @@ msgid "Vector"
msgstr "ИнÑпектор"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Boolean"
-msgstr ""
+msgstr "Тачница"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Sampler"
-msgstr ""
+msgstr "Узрокотвор"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9012,8 +9427,9 @@ msgid "Add input port"
msgstr "Додај улаз"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Add output port"
-msgstr ""
+msgstr "Додај одлазни порт"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9056,8 +9472,9 @@ msgid "Resize VisualShader node"
msgstr "Шејдер"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Set Uniform Name"
-msgstr ""
+msgstr "ПоÑтави ЈединÑтвено Име"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9076,17 +9493,19 @@ msgstr "Дуплирај чвор/ове графа"
#: editor/plugins/visual_shader_editor_plugin.cpp
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Paste Nodes"
-msgstr ""
+msgstr "Ðалепи Чворове"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Delete Nodes"
-msgstr "Ðаправи чвор"
+msgstr "Обриши Чворове"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Visual Shader Input Type Changed"
-msgstr ""
+msgstr "Улазна Ð’Ñ€Ñта Визуелног Цртача промењена"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9094,8 +9513,9 @@ msgid "Vertex"
msgstr "Тачке"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Fragment"
-msgstr ""
+msgstr "Део"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9118,8 +9538,9 @@ msgid "Color function."
msgstr "Иди на функцију..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Color operator."
-msgstr ""
+msgstr "Операције боје."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9127,359 +9548,441 @@ msgid "Grayscale function."
msgstr "Ðаправи функцију"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Converts HSV vector to RGB equivalent."
-msgstr ""
+msgstr "Претвара HSV вектор у RGB."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Converts RGB vector to HSV equivalent."
-msgstr ""
+msgstr "Претвара RGB вектор у HSV."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Sepia function."
-msgstr "Ðаправи функцију"
+msgstr "Sepia функција."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Burn operator."
-msgstr ""
+msgstr "Ðагорено оператор."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Darken operator."
-msgstr ""
+msgstr "Затамњење оператор."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Difference operator."
-msgstr "Само разлике"
+msgstr "РазличитоÑти оператор."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Dodge operator."
-msgstr ""
+msgstr "Упијање оперетор."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "HardLight operator."
-msgstr "Промени Ñкаларни оператор"
+msgstr "ЈакаСветла оператор."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Lighten operator."
-msgstr ""
+msgstr "ПоÑветли оператор."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Overlay operator."
-msgstr ""
+msgstr "Прекриј оператор."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Screen operator."
-msgstr ""
+msgstr "ЗаÑлон оператор."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "SoftLight operator."
-msgstr ""
+msgstr "МекоСветло оператор."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Color constant."
-msgstr "КонÑтантан"
+msgstr "Боја конÑтантна."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Color uniform."
-msgstr "ТранÑформација"
+msgstr "Боја хомогена."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the boolean result of the %s comparison between two parameters."
-msgstr ""
+msgstr "Враћа Булов резултат од %s порећења између 2 параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Equal (==)"
-msgstr ""
+msgstr "Једнако (==)"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Greater Than (>)"
-msgstr ""
+msgstr "Веће од (>)"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Greater Than or Equal (>=)"
-msgstr ""
+msgstr "Веће или Једнако (>=)"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Returns an associated vector if the provided scalars are equal, greater or "
"less."
msgstr ""
+"Враћа аÑоцијативни вектор ако Ñу Ñнабдевени Ñкалари једнаки, већи или мањи."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Returns the boolean result of the comparison between INF and a scalar "
"parameter."
-msgstr ""
+msgstr "Враћа Булов резултат након поређења измђу INF и Ñкаларног параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Returns the boolean result of the comparison between NaN and a scalar "
"parameter."
-msgstr ""
+msgstr "Враћа Булов резултат након поређења NaN и Ñкаларног параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Less Than (<)"
-msgstr ""
+msgstr "Мање од (<)"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Less Than or Equal (<=)"
-msgstr ""
+msgstr "Мање или Једнако (<=)"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Not Equal (!=)"
-msgstr ""
+msgstr "Ðеједнако (!=)"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Returns an associated vector if the provided boolean value is true or false."
msgstr ""
+"Враћа аÑоцијативни вектор ако је Ñнабдевена Булова вредноÑÑ‚ тачна или "
+"нетачна."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Returns an associated scalar if the provided boolean value is true or false."
msgstr ""
+"Враћа аÑоцијативни Ñкалар ако је Ñнабдевена Булова вредноÑÑ‚ тачна или "
+"нетачна."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the boolean result of the comparison between two parameters."
-msgstr ""
+msgstr "Враћа Булов резултат након поређења 2 параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Returns the boolean result of the comparison between INF (or NaN) and a "
"scalar parameter."
msgstr ""
+"Враћа Булов резултат након поређења између INF (или NaN) и Ñкаларног "
+"параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Boolean constant."
-msgstr "Промени векторÑку конÑтанту"
+msgstr "Бул конÑтантан."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Boolean uniform."
-msgstr ""
+msgstr "Бул уједначен."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "'%s' input parameter for all shader modes."
-msgstr ""
+msgstr "'%s' улазни параметар за Ñве Цртачке Режиме."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Input parameter."
-msgstr "Лепи за родитеља"
+msgstr "Улазни параметар"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "'%s' input parameter for vertex and fragment shader modes."
-msgstr ""
+msgstr "'%s' улазни параметар за тачкаÑте и раздељене Цртачке Режиме."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "'%s' input parameter for fragment and light shader modes."
-msgstr ""
+msgstr "'%s' улазни параметар за раздељене и Ñветле Цртачке Режиме."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "'%s' input parameter for fragment shader mode."
-msgstr ""
+msgstr "'%s' улазни параметар за раздељене Цртачке Режиме."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "'%s' input parameter for light shader mode."
-msgstr ""
+msgstr "'%s' улазни параметар за Ñветле Цртачке Режиме."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "'%s' input parameter for vertex shader mode."
-msgstr ""
+msgstr "'%s' улазни параметар за тачкаÑте Цртачке Режиме."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "'%s' input parameter for vertex and fragment shader mode."
-msgstr ""
+msgstr "'%s' улазни параметар за тачкаÑте и раздељене Цртачке Режиме."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Scalar function."
-msgstr "Промени Ñкаларну функцију"
+msgstr "Скаларна функција."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Scalar operator."
-msgstr "Промени Ñкаларни оператор"
+msgstr "Скаларни опреатор."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "E constant (2.718282). Represents the base of the natural logarithm."
-msgstr ""
+msgstr "E конÑтанта (2.718282). ПредÑтавља базу природног логаритма."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Epsilon constant (0.00001). Smallest possible scalar number."
-msgstr ""
+msgstr "ЕпÑилон конÑтанта (0.00001). Ðајмањи могући Ñкаларни број."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Phi constant (1.618034). Golden ratio."
-msgstr ""
+msgstr " Phi конÑтанта (1.618034). Златни преÑек."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Pi/4 constant (0.785398) or 45 degrees."
-msgstr ""
+msgstr "Pi/4 конÑтанта (0.785398) или 45 Ñтепени."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Pi/2 constant (1.570796) or 90 degrees."
-msgstr ""
+msgstr "Pi/2 конÑтанта (1.570796) или 90 Ñтепени."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Pi constant (3.141593) or 180 degrees."
-msgstr ""
+msgstr "Pi конÑтанта (3.141593) или 180 Ñтепени."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Tau constant (6.283185) or 360 degrees."
-msgstr ""
+msgstr "Tau конÑтанта (6.283185) или 360 Ñтепни."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Sqrt2 constant (1.414214). Square root of 2."
-msgstr ""
+msgstr "Sqrt2 конÑтанта (1.414214). Корен од 2."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the absolute value of the parameter."
-msgstr ""
+msgstr "Враћа абÑолутну вредноÑÑ‚ параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the arc-cosine of the parameter."
-msgstr ""
+msgstr "Враћа арк-коÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the inverse hyperbolic cosine of the parameter."
-msgstr ""
+msgstr "Враћа обрнут хиперболични коÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the arc-sine of the parameter."
-msgstr ""
+msgstr "Враћа арк-ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the inverse hyperbolic sine of the parameter."
-msgstr ""
+msgstr "Враћа обрнут хиперболични ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the arc-tangent of the parameter."
-msgstr ""
+msgstr "Враћа арк-тангенту параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the arc-tangent of the parameters."
-msgstr ""
+msgstr "Враћа арк-тангенту параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the inverse hyperbolic tangent of the parameter."
-msgstr ""
+msgstr "Враћа обрнуту хиперболичну тангенту параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Finds the nearest integer that is greater than or equal to the parameter."
-msgstr ""
+msgstr "Ðалази најближи интиџер који је већи или једнак параметру."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Constrains a value to lie between two further values."
-msgstr ""
+msgstr "Ограђује вредноÑÑ‚ између 2 наредне вредноÑти."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the cosine of the parameter."
-msgstr ""
+msgstr "Враћа коÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the hyperbolic cosine of the parameter."
-msgstr ""
+msgstr "Враћа хиперболички коÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Converts a quantity in radians to degrees."
-msgstr ""
+msgstr "Претвара количину из радијана у Ñтепене."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Base-e Exponential."
-msgstr ""
+msgstr "База-е ЕкÑпоненцијал."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Base-2 Exponential."
-msgstr ""
+msgstr "База-е ЕкÑпоненцијал."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Finds the nearest integer less than or equal to the parameter."
-msgstr ""
+msgstr "Ðалази најближи интиџер мањи или једнак параметру."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Computes the fractional part of the argument."
-msgstr ""
+msgstr "Прорачунава фракциони део аргумента."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the inverse of the square root of the parameter."
-msgstr ""
+msgstr "Враћа обрнути квадратни корен параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Natural logarithm."
-msgstr ""
+msgstr "Природни логаритам."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Base-2 logarithm."
-msgstr ""
+msgstr "База-2 логаритам."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the greater of two values."
-msgstr ""
+msgstr "Враћа већу од 2 понуђене вредноÑти."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the lesser of two values."
-msgstr ""
+msgstr "Враћа мању од 2 понуђене вредноÑти."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Linear interpolation between two scalars."
-msgstr ""
+msgstr "Линеарно уметање између 2 Ñкалара."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the opposite value of the parameter."
-msgstr ""
+msgstr "Враћа Ñупротну вредноÑÑ‚ параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "1.0 - scalar"
-msgstr ""
+msgstr "1.0 - Ñкалар"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Returns the value of the first parameter raised to the power of the second."
-msgstr ""
+msgstr "Враћа вредноÑÑ‚ првог параметра увећану за вредноÑÑ‚ другог."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Converts a quantity in degrees to radians."
-msgstr ""
+msgstr "Претвара количину из Ñтепена у радијане."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "1.0 / scalar"
-msgstr ""
+msgstr "1.0 / Ñкалар"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Finds the nearest integer to the parameter."
-msgstr ""
+msgstr "Ðалази најближи интиџер параметру."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Finds the nearest even integer to the parameter."
-msgstr ""
+msgstr "Ðалази најближи једнак интиџер параметру."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Clamps the value between 0.0 and 1.0."
-msgstr ""
+msgstr "Притеже вредноÑÑ‚ између 0.0 и 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Extracts the sign of the parameter."
-msgstr ""
+msgstr "Извлачи знак параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the sine of the parameter."
-msgstr ""
+msgstr "Враћа ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the hyperbolic sine of the parameter."
-msgstr ""
+msgstr "Враћа хиперболичи ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the square root of the parameter."
-msgstr ""
+msgstr "Враћа квадратни корен параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n"
"\n"
@@ -9487,45 +9990,60 @@ msgid ""
"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
"using Hermite polynomials."
msgstr ""
+"УглађенКорак функција ( Ñкалар(ивица0), Ñкалар(ивица1), Ñкалар(x) ).\n"
+"Враћа 0.0 ако је 'x' мање од 'ивице0' и 1.0 ако је x веће од 'edge1'. Иначе "
+"враћена вредноÑÑ‚ је уметнутута између 0.0 и 1.0 кориÑтећи Хермитове полиноме."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Step function( scalar(edge), scalar(x) ).\n"
"\n"
"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
msgstr ""
+"Корак функција ( scalar(edge), scalar(x) ).\n"
+"\n"
+"Враћа 0.0 ако је 'x' мање од 'ивице' иначе враћа 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the tangent of the parameter."
-msgstr ""
+msgstr "Враћа танкгенту параметра"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the hyperbolic tangent of the parameter."
-msgstr ""
+msgstr "Враћа хипероболичну тангенту параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Finds the truncated value of the parameter."
-msgstr ""
+msgstr "Ðалази Ñкраћену вредноÑÑ‚ параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Adds scalar to scalar."
-msgstr ""
+msgstr "Додаје Ñкалар Ñкалару."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Divides scalar by scalar."
-msgstr ""
+msgstr "Дели Ñкалар Ñа Ñкаларом."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Multiplies scalar by scalar."
-msgstr ""
+msgstr "Множи Ñкалар Ñа Ñкаларом."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the remainder of the two scalars."
-msgstr ""
+msgstr "Враћа оÑтатак 2 Ñкалара."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Subtracts scalar from scalar."
-msgstr ""
+msgstr "Одузима Ñкалар од Ñкалара."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9538,12 +10056,14 @@ msgid "Scalar uniform."
msgstr "Промени Ñкаларну униформу (uniform)"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Perform the cubic texture lookup."
-msgstr ""
+msgstr "Извршава претрагу кубичне текÑтуре."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Perform the texture lookup."
-msgstr ""
+msgstr "Извршава претрагу текÑтуре."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9566,6 +10086,7 @@ msgid "Transform function."
msgstr "Прозор транÑформације..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Calculate the outer product of a pair of vectors.\n"
"\n"
@@ -9575,34 +10096,47 @@ msgid ""
"whose number of rows is the number of components in 'c' and whose number of "
"columns is the number of components in 'r'."
msgstr ""
+"Прорачунава Ñпољашњи продукт векторÑког пара.\n"
+"СпољашњиПродукт третира први параметар 'c' као вектор колону (матрица Ñа "
+"једном колоном) и други параметар 'r' као ред вектор (матрица Ñа једним "
+"редом) и одрађује линеарно алгебарÑко множење матрица 'c * r', приноÑећи "
+"матрицу чији број редова је број компоненти у 'c' и број колона је број "
+"компоненти у 'r'."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Composes transform from four vectors."
-msgstr ""
+msgstr "СаÑтавља транÑформу од четири вектора."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Decomposes transform to four vectors."
-msgstr ""
+msgstr "РаÑтавља транÑформу у четри вектора."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Calculates the determinant of a transform."
-msgstr ""
+msgstr "Прорачунава детерминанту транÑформе."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Calculates the inverse of a transform."
-msgstr ""
+msgstr "Прорачунава инверзију транÑформе."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Calculates the transpose of a transform."
-msgstr ""
+msgstr "Прорачунава Ð¿Ñ€ÐµÐ½Ð¾Ñ Ñ‚Ñ€Ð°Ð½Ñформе."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Multiplies transform by transform."
-msgstr ""
+msgstr "Множи транÑформу транÑформом."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Multiplies vector by transform."
-msgstr ""
+msgstr "Множи вектор Ñа транÑформом."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9625,68 +10159,89 @@ msgid "Vector operator."
msgstr "Промени векторÑки оператор"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Composes vector from three scalars."
-msgstr ""
+msgstr "СаÑтавља вектор од 3 Ñкалара."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Decomposes vector to three scalars."
-msgstr ""
+msgstr "РаÑтавља вектор у 3 Ñкалара."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Calculates the cross product of two vectors."
-msgstr ""
+msgstr "Прорачунава векторÑки производ 2 вектора."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the distance between two points."
-msgstr ""
+msgstr "Враћа раÑтојање између 2 тачке."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Calculates the dot product of two vectors."
-msgstr ""
+msgstr "Прорачунава Ñкаларни производ 2 вектора."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Returns the vector that points in the same direction as a reference vector. "
"The function has three vector parameters : N, the vector to orient, I, the "
"incident vector, and Nref, the reference vector. If the dot product of I and "
"Nref is smaller than zero the return value is N. Otherwise -N is returned."
msgstr ""
+"Враћа вектор који упућује у иÑтом правцу као и дати вектор. Функција има три "
+"вектор параметра: N, оријнтациони вектор, I, вектор инцидента, и Nref , "
+"референтни вектор. Ðко је Ñкаларни продукт од I и Nref мањи од 0 повратна "
+"вредноÑÑ‚ је N. У Ñупротном враћа -N."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Calculates the length of a vector."
-msgstr ""
+msgstr "Прорачунава дужину вектора."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Linear interpolation between two vectors."
-msgstr ""
+msgstr "Линерно уметање између 2 вектора."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Linear interpolation between two vectors using scalar."
-msgstr ""
+msgstr "Линерно уметање између 2 вектора кориÑтећи Ñкалар."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Calculates the normalize product of vector."
-msgstr ""
+msgstr "Прорачунава нормализовани векторÑки продукт."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "1.0 - vector"
-msgstr ""
+msgstr "1.0 - вектор"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "1.0 / vector"
-msgstr ""
+msgstr "1.0 / вектор"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Returns the vector that points in the direction of reflection ( a : incident "
"vector, b : normal vector )."
msgstr ""
+"Враћа вектор који указује у правцу одраза ( a : вектор инцидента, b : "
+"нормални вектор )."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the vector that points in the direction of refraction."
-msgstr ""
+msgstr "Враћа вектор који указује у правцу преламања."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n"
"\n"
@@ -9694,8 +10249,14 @@ msgid ""
"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
"using Hermite polynomials."
msgstr ""
+"ГлаткиКорак функција ( вектор(ивица0), вектор(ивица1), вектор(x) ).\n"
+"\n"
+"Враћа 0.0 ако је 'x' мање од 'ивице0' и 1.0 ако је 'x' веће од 'ивице1'. У "
+"Ñупротном повратна вредноÑÑ‚ уметнута између 0.0 и 1.0 кориÑтећи Хермитове "
+"полиноме."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n"
"\n"
@@ -9703,40 +10264,58 @@ msgid ""
"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
"using Hermite polynomials."
msgstr ""
+"ГлаткиКорак функција ( Ñкалар(ивица0), Ñкалар(ивица1), вектор(x) ).\n"
+"\n"
+"Враћа 0.0 ако је 'x' мање од 'ивице0' и 1.0 ако је 'x' веће од 'ивице1'. У "
+"Ñупротном повратна вредноÑÑ‚ је уметнута између 0.0 и 1.0 кориÑтећи Хермитове "
+"полиноме."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Step function( vector(edge), vector(x) ).\n"
"\n"
"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
msgstr ""
+"Корак функција ( вектор(ивица), вектор(x) ).\n"
+"\n"
+"Враћа 0.0 ако је 'x' мање од 'ивице' у Ñупротном 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Step function( scalar(edge), vector(x) ).\n"
"\n"
"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
msgstr ""
+"Корак функција ( акалар(ивица), вектор(x) ).\n"
+"\n"
+"Враћа 0.0 ако је 'x' мање од 'ивице' у Ñупротном 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Adds vector to vector."
-msgstr ""
+msgstr "Додаје вектор вектору."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Divides vector by vector."
-msgstr ""
+msgstr "Дели вектор Ñа вектором."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Multiplies vector by vector."
-msgstr ""
+msgstr "Множи вектор Ñа вектором."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Returns the remainder of the two vectors."
-msgstr ""
+msgstr "Враћа оÑтатак 2 вектора."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Subtracts vector from vector."
-msgstr ""
+msgstr "Одузима вектор од вектора."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -9749,84 +10328,112 @@ msgid "Vector uniform."
msgstr "Промени векторÑку униформу (uniform)"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Custom Godot Shader Language expression, with custom amount of input and "
"output ports. This is a direct injection of code into the vertex/fragment/"
"light function, do not use it to write the function declarations inside."
msgstr ""
+"Произвољни израз за Годот Цртачки Језик, Ñа произвољном количином улазних и "
+"излазних портова. Ово је директно убризгавање кода у тачка/део/Ñветло "
+"функцију, не кориÑти за пиÑање декларација функција унутра."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Returns falloff based on the dot product of surface normal and view "
"direction of camera (pass associated inputs to it)."
msgstr ""
+"Враћа Ñмањење базирано на Ñкаларном продукту нормале површине и правца "
+"гледања камере (проÑлеђује удружене улазе)."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Custom Godot Shader Language expression, which is placed on top of the "
"resulted shader. You can place various function definitions inside and call "
"it later in the Expressions. You can also declare varyings, uniforms and "
"constants."
msgstr ""
+"Произвољни израз Годот Цртачког Језика, који је поÑтављен на врх "
+"резултирајућег цртача. Можеш поÑтавити разне дефиниције функција унутра и "
+"позвати их каÑније у Изразу. Такође можеш даклариÑати варијације, униформе и "
+"конÑтанте."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "(Fragment/Light mode only) Scalar derivative function."
-msgstr ""
+msgstr "(Ñамо Део/Светло режим) Функција Ñкаларне деривације."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "(Fragment/Light mode only) Vector derivative function."
-msgstr ""
+msgstr "(Ñамо Део/Светло режим) Вектор Ñкаларне деривације."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"(Fragment/Light mode only) (Vector) Derivative in 'x' using local "
"differencing."
msgstr ""
+"(Ñамо Део/Светло режим) (Вектор) Дериват у 'x' кориÑтећи локалну "
+"диференцијацију."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"(Fragment/Light mode only) (Scalar) Derivative in 'x' using local "
"differencing."
msgstr ""
+"(Ñамо Део/Светло режим) (Скалар) Дериват у 'x' кориÑтећи локалну "
+"диференцијацију."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"(Fragment/Light mode only) (Vector) Derivative in 'y' using local "
"differencing."
msgstr ""
+"(Ñамо Део/Светло режим) (Вектор) Дериват у 'y' кориÑтећи локалну "
+"диференцијацију."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"(Fragment/Light mode only) (Scalar) Derivative in 'y' using local "
"differencing."
msgstr ""
+"(Ñамо Део/Светло режим) (Скалар) Дериват у 'y' кориÑтећи локалну "
+"диференцијацију."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and "
"'y'."
-msgstr ""
+msgstr "(Ñамо Део/Светло режим) (Вектор) Сума абÑолутних деривата у 'x' и 'y'."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"(Fragment/Light mode only) (Scalar) Sum of absolute derivative in 'x' and "
"'y'."
-msgstr ""
+msgstr "(Ñамо Део/Светло режим) (Скалар) Сума абÑолутних деривата у 'x' и 'y'."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "VisualShader"
-msgstr "Шејдер"
+msgstr "ВизуелниЦртач"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Edit Visual Property"
-msgstr "Уреди филтере"
+msgstr "Уреди Визуелне ОÑобине"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Visual Shader Mode Changed"
-msgstr "Промене шејдера"
+msgstr "Визуелни Цртач Режим промењен"
#: editor/project_export.cpp
msgid "Runnable"
@@ -9835,11 +10442,12 @@ msgstr "Покретљива"
#: editor/project_export.cpp
#, fuzzy
msgid "Add initial export..."
-msgstr "Додај улаз"
+msgstr "Додај почетни извоз..."
#: editor/project_export.cpp
+#, fuzzy
msgid "Add previous patches..."
-msgstr ""
+msgstr "Додај претходне закрпе..."
#: editor/project_export.cpp
msgid "Delete patch '%s' from list?"
@@ -9851,21 +10459,29 @@ msgid "Delete preset '%s'?"
msgstr "Обриши поÑтавку „%s“?"
#: editor/project_export.cpp
+#, fuzzy
msgid ""
"Failed to export the project for platform '%s'.\n"
"Export templates seem to be missing or invalid."
msgstr ""
+"ÐеуÑпешан извоз пројекта за плазформу '%s'.\n"
+"Изгледа да недоÑтају извозни нацрти или ниÑу иÑправни."
#: editor/project_export.cpp
+#, fuzzy
msgid ""
"Failed to export the project for platform '%s'.\n"
"This might be due to a configuration issue in the export preset or your "
"export settings."
msgstr ""
+"ÐеуÑпешан извоз пројекта за платформу '%s'.\n"
+"Ово може бити због проблема Ñа подешавањима у извозним поÑтавкама или твојим "
+"извозним подешавањима."
#: editor/project_export.cpp
+#, fuzzy
msgid "Release"
-msgstr ""
+msgstr "Издање"
#: editor/project_export.cpp
#, fuzzy
@@ -9891,10 +10507,12 @@ msgid "Add..."
msgstr "Додај..."
#: editor/project_export.cpp
+#, fuzzy
msgid ""
"If checked, the preset will be available for use in one-click deploy.\n"
"Only one preset per platform may be marked as runnable."
msgstr ""
+"Ðко је означено, поÑтавке ће бити омогућене за коришћење у један-клик развој."
#: editor/project_export.cpp
#, fuzzy
@@ -9961,8 +10579,9 @@ msgid "Features"
msgstr "КарактериÑтике"
#: editor/project_export.cpp
+#, fuzzy
msgid "Custom (comma-separated):"
-msgstr ""
+msgstr "Произвољно (одвојено зарезом):"
#: editor/project_export.cpp
msgid "Feature List:"
@@ -9979,24 +10598,29 @@ msgid "Script Export Mode:"
msgstr "Режим извоза:"
#: editor/project_export.cpp
+#, fuzzy
msgid "Text"
-msgstr ""
+msgstr "ТекÑÑ‚"
#: editor/project_export.cpp
+#, fuzzy
msgid "Compiled"
-msgstr ""
+msgstr "СаÑтављено"
#: editor/project_export.cpp
+#, fuzzy
msgid "Encrypted (Provide Key Below)"
-msgstr ""
+msgstr "Шифровано (Одабери Кључ ИÑпод)"
#: editor/project_export.cpp
+#, fuzzy
msgid "Invalid Encryption Key (must be 64 characters long)"
-msgstr ""
+msgstr "Ðеважећи Кључ за Шифровање(мора бити 64 карактера дуг)"
#: editor/project_export.cpp
+#, fuzzy
msgid "Script Encryption Key (256-bits as hex):"
-msgstr ""
+msgstr "Кључ Шифровања Скрипте (256-бајтова као хекÑ)"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10022,8 +10646,9 @@ msgid "ZIP File"
msgstr " Датотеке"
#: editor/project_export.cpp
+#, fuzzy
msgid "Godot Game Pack"
-msgstr ""
+msgstr "Годот Игра Паковање"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing:"
@@ -10034,8 +10659,9 @@ msgid "Manage Export Templates"
msgstr "Управљај извозним шаблонима"
#: editor/project_export.cpp
+#, fuzzy
msgid "Export With Debug"
-msgstr ""
+msgstr "Извези Ñа ИнÑектицидом"
#: editor/project_manager.cpp
#, fuzzy
@@ -10048,29 +10674,35 @@ msgid "Error opening package file (it's not in ZIP format)."
msgstr "Грешка при отварању датотеку пакета. Датотека није zip формата."
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file."
-msgstr ""
+msgstr "Ðеважећи \".zip\" пројекат фајл; не Ñадржи \"project.godot\" фајл."
#: editor/project_manager.cpp
+#, fuzzy
msgid "Please choose an empty folder."
-msgstr ""
+msgstr "Одабери празан фолдер."
#: editor/project_manager.cpp
+#, fuzzy
msgid "Please choose a \"project.godot\" or \".zip\" file."
-msgstr ""
+msgstr "Одабери \"project.godot\" или \".zip\" фајл."
#: editor/project_manager.cpp
+#, fuzzy
msgid "This directory already contains a Godot project."
-msgstr ""
+msgstr "Овај директоријум већ Ñадржи Годот пројекат."
#: editor/project_manager.cpp
+#, fuzzy
msgid "New Game Project"
-msgstr ""
+msgstr "Ðова Игра Пројекат"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Imported Project"
-msgstr ""
+msgstr "Увезен Пројекат"
#: editor/project_manager.cpp
#, fuzzy
@@ -10083,118 +10715,149 @@ msgid "Couldn't create folder."
msgstr "ÐеуÑпех при прављењу директоријума."
#: editor/project_manager.cpp
+#, fuzzy
msgid "There is already a folder in this path with the specified name."
-msgstr ""
+msgstr "Ðа овој путањи већ поÑтоји фолдер Ñа овим именом."
#: editor/project_manager.cpp
+#, fuzzy
msgid "It would be a good idea to name your project."
-msgstr ""
+msgstr "Била би добра идеја да именујеш Ñвој пројекат."
#: editor/project_manager.cpp
+#, fuzzy
msgid "Invalid project path (changed anything?)."
-msgstr ""
+msgstr "Ðеважећа путања пројекта(нешто је измењено?)."
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"Couldn't load project.godot in project path (error %d). It may be missing or "
"corrupted."
msgstr ""
+"ÐеуÑпешно учитавање project.godot-а у његовој путањи (грешка %d). Могуће да "
+"нешто недоÑтаје или је корумпирано."
#: editor/project_manager.cpp
+#, fuzzy
msgid "Couldn't edit project.godot in project path."
-msgstr ""
+msgstr "ÐеуÑпешна измена project.godot-а у путањи пројекта."
#: editor/project_manager.cpp
+#, fuzzy
msgid "Couldn't create project.godot in project path."
-msgstr ""
+msgstr "ÐеуÑпешно креирање project.godot у путањи пројекта."
#: editor/project_manager.cpp
+#, fuzzy
msgid "Rename Project"
-msgstr ""
+msgstr "Преимениуј Пројекат"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Import Existing Project"
-msgstr ""
+msgstr "Увези ПоÑтојећи Пројекат"
#: editor/project_manager.cpp
#, fuzzy
msgid "Import & Edit"
-msgstr "Увоз"
+msgstr "Увези и Измени"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Create New Project"
-msgstr ""
+msgstr "Креирај Ðов Пројекат"
#: editor/project_manager.cpp
#, fuzzy
msgid "Create & Edit"
-msgstr "Ðаправи емитер"
+msgstr "Креирај и Измени"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Install Project:"
-msgstr ""
+msgstr "ИнÑталирај Пројекат:"
#: editor/project_manager.cpp
#, fuzzy
msgid "Install & Edit"
-msgstr "ИнÑталирај"
+msgstr "ИнÑталирај и Измени"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Project Name:"
-msgstr ""
+msgstr "Има Пројекта:"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Project Path:"
-msgstr ""
+msgstr "Путања Пројекта:"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Project Installation Path:"
-msgstr ""
+msgstr "ИнÑталациона Путања Пројекта:"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Renderer:"
-msgstr ""
+msgstr "Цртач:"
#: editor/project_manager.cpp
+#, fuzzy
msgid "OpenGL ES 3.0"
-msgstr ""
+msgstr "OpenGL ES 3.0"
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"Higher visual quality\n"
"All features available\n"
"Incompatible with older hardware\n"
"Not recommended for web games"
msgstr ""
+"Виши визуелни квалитет\n"
+"Свe карактериÑтике доÑтупне\n"
+"Ðекомпатибилно Ñа Ñтаријим хардвером\n"
+"Ðије препоручљиво за веб игрице"
#: editor/project_manager.cpp
+#, fuzzy
msgid "OpenGL ES 2.0"
-msgstr ""
+msgstr "OpenGL ES 2.0"
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"Lower visual quality\n"
"Some features not available\n"
"Works on most hardware\n"
"Recommended for web games"
msgstr ""
+"Ðижи визуелни квалитет\n"
+"Ðеке карактериÑтике ниÑу доÑтупне\n"
+"Ради на Ñкоро Ñваком хардверу\n"
+"Пропоручљиво за веб игрице"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Renderer can be changed later, but scenes may need to be adjusted."
-msgstr ""
+msgstr "Цртач може бити промењен каÑније, али Ñцене морају бити прилагођене."
#: editor/project_manager.cpp
+#, fuzzy
msgid "Unnamed Project"
-msgstr ""
+msgstr "Ðеименован Пројекат"
#: editor/project_manager.cpp
#, fuzzy
msgid "Missing Project"
-msgstr "Пројекат"
+msgstr "ÐедоÑтаје Пројекат"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Error: Project is missing on the filesystem."
-msgstr ""
+msgstr "Грешка: Пројекат недоÑтаје у фајл ÑиÑтему."
#: editor/project_manager.cpp
#, fuzzy
@@ -10202,10 +10865,12 @@ msgid "Can't open project at '%s'."
msgstr "Ðе могу отворити '%s'."
#: editor/project_manager.cpp
+#, fuzzy
msgid "Are you sure to open more than one project?"
-msgstr ""
+msgstr "Да ли Ñигурно желиш да отвориш више одједног пројекта?"
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"The following project settings file does not specify the version of Godot "
"through which it was created.\n"
@@ -10217,8 +10882,18 @@ msgid ""
"Warning: You won't be able to open the project with previous versions of the "
"engine anymore."
msgstr ""
+"Ðаредни фајл Ñа подешавањима пројекта нема наведену верзију Годот-а Ñа у "
+"којем је креиран.\n"
+"\n"
+"%s\n"
+"\n"
+"Ðко наÑтавиш Ñа отварањем, биће пребачен у тренутни Годот фајл формат за "
+"подешавања.\n"
+"Упозорење: Више нећеш бити у Ñтању да отвориш пројекат у претходним "
+"верзијама Годот-а."
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"The following project settings file was generated by an older engine "
"version, and needs to be converted for this version:\n"
@@ -10229,12 +10904,23 @@ msgid ""
"Warning: You won't be able to open the project with previous versions of the "
"engine anymore."
msgstr ""
+"Ðаведени фајл Ñа подешавањима пројекта је креиран од Ñтране Ñтарије верзује "
+"Годот-а, и треба га пребацити у ову верзију:\n"
+"\n"
+"%s\n"
+"\n"
+"Желиш то да извршиш пребацивање?\n"
+"Упозорење: Више нећеш бити у Ñтању да отвориш пројекат Ñа преходном верзијом "
+"Годот-а."
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"The project settings were created by a newer engine version, whose settings "
"are not compatible with this version."
msgstr ""
+"Подешавања пројекта Ñу креирана Ñа новијом верзијом Годот-а, која ниÑу "
+"доÑтупна у овој верзији."
#: editor/project_manager.cpp
#, fuzzy
@@ -10248,44 +10934,64 @@ msgstr ""
"„апликација“."
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"Can't run project: Assets need to be imported.\n"
"Please edit the project to trigger the initial import."
msgstr ""
+"Пројекат није могуће покренути: СредÑтва морају бити увезена.\n"
+"Молимо измени пројекат да активираш иницијални увоз."
#: editor/project_manager.cpp
+#, fuzzy
msgid "Are you sure to run %d projects at once?"
-msgstr ""
+msgstr "Да ли Ñигурно желиш да покренеш %d пројеката одједном?"
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"Remove %d projects from the list?\n"
"The project folders' contents won't be modified."
msgstr ""
+"Уклони %d пројекте Ñа лиÑте?\n"
+"Садржај фолдера пројекта неће бити измењен."
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"Remove this project from the list?\n"
"The project folder's contents won't be modified."
msgstr ""
+"Уклони овај пројекат Ñа лиÑте?\n"
+"Садржај фолдера пројекта неће бити измењен."
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"Remove all missing projects from the list?\n"
"The project folders' contents won't be modified."
msgstr ""
+"Уклони Ñве изгубљене пројекте Ñа лиÑте?\n"
+"Садржај фолдера пројекта неће бити измењен."
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"Language changed.\n"
"The interface will update after restarting the editor or project manager."
msgstr ""
+"Језик промењен.\n"
+"Изглед ће бити ажуриран поÑле реÑтартовања уредника или менеџера пројекта."
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"Are you sure to scan %s folders for existing Godot projects?\n"
"This could take a while."
msgstr ""
+"Да ли Ñигурно желиш да прегледаш %s фолдере у потрази за поÑтојећим Годот "
+"пројектима?\n"
+"Ово може потрајати."
#: editor/project_manager.cpp
msgid "Project Manager"
@@ -10294,350 +11000,434 @@ msgstr "Менаџер пројекта"
#: editor/project_manager.cpp
#, fuzzy
msgid "Projects"
-msgstr "Пројекат"
+msgstr "Пројекти"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Last Modified"
-msgstr ""
+msgstr "Задњи Измењен"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Scan"
-msgstr ""
+msgstr "Претрага"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Select a Folder to Scan"
-msgstr ""
+msgstr "Одабери Фолдер за Претрагу"
#: editor/project_manager.cpp
+#, fuzzy
msgid "New Project"
-msgstr ""
+msgstr "Ðов Порјекат"
#: editor/project_manager.cpp
#, fuzzy
msgid "Remove Missing"
-msgstr "Обриши тачку"
+msgstr "Обриши Изгубњено"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Templates"
-msgstr ""
+msgstr "ОбразÑи"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Restart Now"
-msgstr ""
+msgstr "РеÑтартуј Сада"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Can't run project"
-msgstr ""
+msgstr "Пројекат није могуће покренути"
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"You currently don't have any projects.\n"
"Would you like to explore official example projects in the Asset Library?"
msgstr ""
+"Тренутно немаш ни један пројекат.\n"
+"Желиш ли да изтражиш званичне примере пројеката из Библиотеке СредÑтава?"
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"The search box filters projects by name and last path component.\n"
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
+"Оквир за претрагу пробира пројекте на оÑнову имена и поÑледњег дела путање.\n"
+"За пробирање на оÑнову имену и целе путање, упит мора Ñадржати бар један `/` "
+"карактер."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Key "
-msgstr ""
+msgstr "Кључ"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Joy Button"
-msgstr ""
+msgstr "ÐÐ¾Ñ˜Ñ Ð´ÑƒÐ³Ð¼Ð¸Ð¶"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Joy Axis"
-msgstr ""
+msgstr "ÐÐ¾Ñ˜Ñ ÐžÑе"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Mouse Button"
-msgstr ""
+msgstr "Миш Дугме"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid ""
"Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'"
msgstr ""
+"Ðеважеће име акције. Ðе може бити празно или Ñадржати '/', ':', '=', '\\' "
+"или '\"'"
#: editor/project_settings_editor.cpp
#, fuzzy
msgid "An action with the name '%s' already exists."
-msgstr "Грешка: име анимације већ поÑтоји!"
+msgstr "Радња Ñа именом '%s' већ поÑтоји."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Rename Input Action Event"
-msgstr ""
+msgstr "Преименуј Догађај Улазне Радње"
#: editor/project_settings_editor.cpp
#, fuzzy
msgid "Change Action deadzone"
-msgstr "Измени име анимације:"
+msgstr "Измени мртву-зону Радње"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Add Input Action Event"
-msgstr ""
+msgstr "Додај Догађај Улазне Радње"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "All Devices"
-msgstr ""
+msgstr "Сви Уређаји"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Device"
-msgstr ""
+msgstr "Уређаји"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+#, fuzzy
msgid "Press a Key..."
-msgstr ""
+msgstr "СтиÑни Дугме..."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Mouse Button Index:"
-msgstr ""
+msgstr "Миш Дугме ИндекÑ"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Left Button"
-msgstr ""
+msgstr "Лево Дугме"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Right Button"
-msgstr ""
+msgstr "ДеÑно Дугме"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Middle Button"
-msgstr ""
+msgstr "Средње Дугма"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Wheel Up Button"
-msgstr ""
+msgstr "Точкић Горе Дугме"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Wheel Down Button"
-msgstr ""
+msgstr "Точкић Доле Дугме"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Wheel Left Button"
-msgstr ""
+msgstr "Точкић Лево Дугме"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Wheel Right Button"
-msgstr ""
+msgstr "Точкић ДеÑно Дугме"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "X Button 1"
-msgstr ""
+msgstr "X Дугме 1"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "X Button 2"
-msgstr ""
+msgstr "X Дугме 2"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Joypad Axis Index:"
-msgstr ""
+msgstr "Ðојпад ОÑа ИндекÑ:"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Axis"
-msgstr ""
+msgstr "ОÑе"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Joypad Button Index:"
-msgstr ""
+msgstr "Ðојпад Дугме ИндекÑ:"
#: editor/project_settings_editor.cpp
#, fuzzy
msgid "Erase Input Action"
-msgstr "Обриши одабрано"
+msgstr "Обриши Улазну Радњу"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Erase Input Action Event"
-msgstr ""
+msgstr "Обриши Догађај Улазне Радње"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Add Event"
-msgstr ""
+msgstr "Додај Догађај"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Button"
-msgstr ""
+msgstr "Дугме"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Left Button."
-msgstr ""
+msgstr "Лево Дугме."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Right Button."
-msgstr ""
+msgstr "ДеÑно Дугме."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Middle Button."
-msgstr ""
+msgstr "Средње Дугме."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Wheel Up."
-msgstr ""
+msgstr "Точкић Горе."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Wheel Down."
-msgstr ""
+msgstr "Точкић Доле."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Add Global Property"
-msgstr ""
+msgstr "Додај Глобалну ОÑобину"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Select a setting item first!"
-msgstr ""
+msgstr "Прво одабери подешавање предмета!"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "No property '%s' exists."
-msgstr ""
+msgstr "ОÑобина %s' не поÑтоји."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Setting '%s' is internal, and it can't be deleted."
-msgstr ""
+msgstr "Подешавање '%s' је унутрашње, и не може бити обриÑано."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Delete Item"
-msgstr ""
+msgstr "Обриши Предмет"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid ""
"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'."
msgstr ""
+"Ðеважеће име радње. Ðе може бити празно или Ñадржати '/', ':', '=', '\\' или "
+"'\"'."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Add Input Action"
-msgstr ""
+msgstr "Додај Улазну Радњу"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Error saving settings."
-msgstr ""
+msgstr "Грешка при памћењу подешавања."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Settings saved OK."
-msgstr ""
+msgstr "Подешавања уÑпешно упамћена."
#: editor/project_settings_editor.cpp
#, fuzzy
msgid "Moved Input Action Event"
-msgstr "Обриши одабрано"
+msgstr "Померен Догађај Улазне Радње"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Override for Feature"
-msgstr ""
+msgstr "Препиши за ОÑобину"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Add Translation"
-msgstr ""
+msgstr "Додај Превод"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Remove Translation"
-msgstr ""
+msgstr "Обриши Превод"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Add Remapped Path"
-msgstr ""
+msgstr "Додај Преправљену Путању"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Resource Remap Add Remap"
-msgstr ""
+msgstr "РеÑÑƒÑ€Ñ ÐŸÑ€ÐµÐ¿Ñ€Ð°Ð²ÐºÐ° Додај Преправку"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Change Resource Remap Language"
-msgstr ""
+msgstr "Промени Језик РеÑÑƒÑ€Ñ ÐŸÑ€ÐµÐ¿Ñ€Ð°Ð²ÐºÐµ"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Remove Resource Remap"
-msgstr ""
+msgstr "Уклони РеÑÑƒÑ€Ñ ÐŸÑ€ÐµÐ¿Ñ€Ð°Ð²ÐºÑƒ"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Remove Resource Remap Option"
-msgstr ""
+msgstr "Уклони Опцију РеÑÑƒÑ€Ñ ÐŸÑ€ÐµÐ¿Ñ€Ð°Ð²ÐºÐµ"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Changed Locale Filter"
-msgstr ""
+msgstr "Измењен Локални Пробирач"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Changed Locale Filter Mode"
-msgstr ""
+msgstr "Измењен Локални Режим Пробирања"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Project Settings (project.godot)"
-msgstr ""
+msgstr "Подешавања Пројекта (project.godot)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "General"
-msgstr ""
+msgstr "Генерална"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Override For..."
-msgstr ""
+msgstr "Препиши За..."
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+#, fuzzy
msgid "The editor must be restarted for changes to take effect."
-msgstr ""
+msgstr "Уредник мора бити реÑтартован да би наÑтупиле промене."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Input Map"
-msgstr ""
+msgstr "Мапа Улаза"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Action:"
-msgstr ""
+msgstr "Радња:"
#: editor/project_settings_editor.cpp
#, fuzzy
msgid "Action"
-msgstr "Помери акцију"
+msgstr "Радња"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Deadzone"
-msgstr ""
+msgstr "Мртва-зона"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Device:"
-msgstr ""
+msgstr "Уређај:"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Index:"
-msgstr ""
+msgstr "ИндекÑ:"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Localization"
-msgstr ""
+msgstr "Локализација"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Translations"
-msgstr ""
+msgstr "Превод"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Translations:"
-msgstr ""
+msgstr "Преводи:"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Remaps"
-msgstr ""
+msgstr "Преправке"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Resources:"
-msgstr ""
+msgstr "РеÑурÑи:"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Remaps by Locale:"
-msgstr ""
+msgstr "Локалне Преправке:"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Locale"
-msgstr ""
+msgstr "Локал"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Locales Filter"
-msgstr ""
+msgstr "Локални Пробирачи"
#: editor/project_settings_editor.cpp
#, fuzzy
@@ -10650,16 +11440,19 @@ msgid "Show Selected Locales Only"
msgstr "Само одабрано"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Filter mode:"
-msgstr ""
+msgstr "Режим Пробирања:"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Locales:"
-msgstr ""
+msgstr "Локал:"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "AutoLoad"
-msgstr ""
+msgstr "Ðуто-Учитавање"
#: editor/project_settings_editor.cpp
msgid "Plugins"
@@ -10670,125 +11463,146 @@ msgid "Preset..."
msgstr "ПоÑтавке..."
#: editor/property_editor.cpp
+#, fuzzy
msgid "Zero"
-msgstr ""
+msgstr "Ðула"
#: editor/property_editor.cpp
+#, fuzzy
msgid "Easing In-Out"
-msgstr ""
+msgstr "Ублажавање У-Од"
#: editor/property_editor.cpp
+#, fuzzy
msgid "Easing Out-In"
-msgstr ""
+msgstr "Ублажавање Од-У"
#: editor/property_editor.cpp
+#, fuzzy
msgid "File..."
-msgstr ""
+msgstr "Фајл..."
#: editor/property_editor.cpp
+#, fuzzy
msgid "Dir..."
-msgstr ""
+msgstr "Дир..."
#: editor/property_editor.cpp
+#, fuzzy
msgid "Assign"
-msgstr ""
+msgstr "Додели"
#: editor/property_editor.cpp
+#, fuzzy
msgid "Select Node"
-msgstr ""
+msgstr "Одабери Чвор"
#: editor/property_editor.cpp
+#, fuzzy
msgid "Error loading file: Not a resource!"
-msgstr ""
+msgstr "Гречка при учитавању фајла: Ðије реÑурÑ!"
#: editor/property_editor.cpp
+#, fuzzy
msgid "Pick a Node"
-msgstr ""
+msgstr "Одабери Чвор"
#: editor/property_editor.cpp
+#, fuzzy
msgid "Bit %d, val %d."
-msgstr ""
+msgstr "Бит %d, вредноÑÑ‚ %d."
#: editor/property_selector.cpp
+#, fuzzy
msgid "Select Property"
-msgstr ""
+msgstr "Одабери ОÑобину"
#: editor/property_selector.cpp
+#, fuzzy
msgid "Select Virtual Method"
-msgstr ""
+msgstr "Одабери Виртуелну Методу"
#: editor/property_selector.cpp
+#, fuzzy
msgid "Select Method"
-msgstr ""
+msgstr "Одабери Методу"
#: editor/rename_dialog.cpp editor/scene_tree_dock.cpp
#, fuzzy
msgid "Batch Rename"
-msgstr "Преименуј"
+msgstr "Преименуј Гомилу"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "Prefix"
-msgstr ""
+msgstr "Предметак"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "Suffix"
-msgstr ""
+msgstr "ÐаÑтавак"
#: editor/rename_dialog.cpp
#, fuzzy
msgid "Use Regular Expressions"
-msgstr "ПоÑтави правоугаони регион"
+msgstr "КориÑти Регуларне Изразе"
#: editor/rename_dialog.cpp
#, fuzzy
msgid "Advanced Options"
-msgstr "ПоÑтавке залепљавања"
+msgstr "Ðапредне ПоÑтавке"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "Substitute"
-msgstr ""
+msgstr "Замена"
#: editor/rename_dialog.cpp
#, fuzzy
msgid "Node name"
-msgstr "Име чвора:"
+msgstr "Име Чвора"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "Node's parent name, if available"
-msgstr ""
+msgstr "Чворово име оца, ако је доÑтупно"
#: editor/rename_dialog.cpp
#, fuzzy
msgid "Node type"
-msgstr "Име чвора:"
+msgstr "Ð’Ñ€Ñта Чвора"
#: editor/rename_dialog.cpp
#, fuzzy
msgid "Current scene name"
-msgstr "Тренутна Ñцена није Ñачувана. Ипак отвори?"
+msgstr "Име тренутне Ñцене"
#: editor/rename_dialog.cpp
#, fuzzy
msgid "Root node name"
-msgstr "Преименуј"
+msgstr "Име кореног нода"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid ""
"Sequential integer counter.\n"
"Compare counter options."
-msgstr ""
+msgstr "Редни бројач интиџера"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "Per-level Counter"
-msgstr ""
+msgstr "Пред-Ðиво Бројач"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "If set the counter restarts for each group of child nodes"
-msgstr ""
+msgstr "Ðко је поÑтављен, бројач Ñе реÑтартује за Ñваку групу деце чворова"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "Initial value for the counter"
-msgstr ""
+msgstr "Иницијална вредноÑÑ‚ бројача"
#: editor/rename_dialog.cpp
#, fuzzy
@@ -10796,38 +11610,48 @@ msgid "Step"
msgstr "Корак:"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "Amount by which counter is incremented for each node"
-msgstr ""
+msgstr "Ð˜Ð·Ð½Ð¾Ñ Ð·Ð° који је бројач увећан за Ñваки Чвор"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "Padding"
-msgstr ""
+msgstr " Пуњење"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid ""
"Minimum number of digits for the counter.\n"
"Missing digits are padded with leading zeros."
msgstr ""
+"Ðајмањи број цифара за Ñваки бројач.\n"
+"ÐедоÑтатак цифара је попуњен водећим нулама."
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "Post-Process"
-msgstr ""
+msgstr "Ðакон-Обраде"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "Keep"
-msgstr ""
+msgstr "Задржи"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "PascalCase to snake_case"
-msgstr ""
+msgstr "ПаÑÐºÐ°Ð»Ð—Ð°Ð¿Ð¸Ñ Ñƒ змија_запиÑ"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "snake_case to PascalCase"
-msgstr ""
+msgstr "змија_Ð·Ð°Ð¿Ð¸Ñ Ñƒ ПаÑкалЗапиÑ"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "Case"
-msgstr ""
+msgstr "ЗапиÑ"
#: editor/rename_dialog.cpp
#, fuzzy
@@ -10845,155 +11669,193 @@ msgid "Reset"
msgstr "РеÑетуј увеличање"
#: editor/rename_dialog.cpp
+#, fuzzy
msgid "Regular Expression Error"
-msgstr ""
+msgstr "Регуларни Израз Грешка"
#: editor/rename_dialog.cpp
#, fuzzy
msgid "At character %s"
-msgstr "Важећа Ñлова:"
+msgstr "Код карактера %s"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Reparent Node"
-msgstr ""
+msgstr "Промени оца Чвору"
#: editor/reparent_dialog.cpp
+#, fuzzy
msgid "Reparent Location (Select new Parent):"
-msgstr ""
+msgstr "Промени оца Локацији (Одабери новог Оца):"
#: editor/reparent_dialog.cpp
+#, fuzzy
msgid "Keep Global Transform"
-msgstr ""
+msgstr "Сачувај Глобалну ТранÑформу"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Reparent"
-msgstr ""
+msgstr "Промени оца"
#: editor/run_settings_dialog.cpp
+#, fuzzy
msgid "Run Mode:"
-msgstr ""
+msgstr "Режим Кретања:"
#: editor/run_settings_dialog.cpp
+#, fuzzy
msgid "Current Scene"
-msgstr ""
+msgstr "Тренутна Сцена"
#: editor/run_settings_dialog.cpp
+#, fuzzy
msgid "Main Scene"
-msgstr ""
+msgstr "Главна Сцена"
#: editor/run_settings_dialog.cpp
+#, fuzzy
msgid "Main Scene Arguments:"
-msgstr ""
+msgstr "Ðргументи Главне Сцене"
#: editor/run_settings_dialog.cpp
+#, fuzzy
msgid "Scene Run Settings"
-msgstr ""
+msgstr "Подешавања Сцене Кретања"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "No parent to instance the scenes at."
-msgstr ""
+msgstr "Ðема оца где би Ñцена била инÑтанцирана"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Error loading scene from %s"
-msgstr ""
+msgstr "Грешка при учитавању Ñцене из %s"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid ""
"Cannot instance the scene '%s' because the current scene exists within one "
"of its nodes."
msgstr ""
+"Ðемогуће инÑтанцирање Ñцене '%s' јер трентутна Ñцене поÑтоји унутар једаног "
+"од њених Чворова."
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Instance Scene(s)"
-msgstr ""
+msgstr "Сцена/е ИнÑтанца"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Replace with Branch Scene"
-msgstr ""
+msgstr "Замени Ñа Граном Сцене"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Instance Child Scene"
-msgstr ""
+msgstr "ИнÑтанца Сцена Дете"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Припој Скрипту"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "This operation can't be done on the tree root."
-msgstr ""
+msgstr "Операције не може бити извржена над кореном дрвета."
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Move Node In Parent"
-msgstr ""
+msgstr "Пребаци Чвор код Родитеља"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Move Nodes In Parent"
-msgstr ""
+msgstr "Пребаци Чворове код Родитеља"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Duplicate Node(s)"
-msgstr ""
+msgstr "УдвоÑтручи Чвор/ове"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Can't reparent nodes in inherited scenes, order of nodes can't change."
msgstr ""
+"ÐеуÑпело додељивање родитеља чвору у наÑлеђеним Ñценама, редоÑлед чворова Ñе "
+"не може мењати."
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Node must belong to the edited scene to become root."
-msgstr ""
+msgstr "Чвор мора припадати измењеној Ñцени да би поÑтао корен."
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Instantiated scenes can't become root"
-msgstr ""
+msgstr "ИнÑтанциране Ñцене не могу бити корен"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Make node as Root"
-msgstr "Сачувај Ñцену"
+msgstr "Ðаправи Корен од чвора"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Delete %d nodes?"
-msgstr "Ðаправи чвор"
+msgstr "Обриши %d чворове?"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Delete the root node \"%s\"?"
-msgstr "Обриши чвор/ове графа шејдера"
+msgstr "Обриши корени чвор \"%s\"?"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete node \"%s\" and its children?"
-msgstr ""
+msgstr "Обриши чвор \"%s\" и његову децу?"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "Ðаправи чвор"
+msgstr "Обриши чвор \"%s\"?"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Can not perform with the root node."
-msgstr ""
+msgstr "Ðемогуће извршити Ñа кореним чвором."
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "This operation can't be done on instanced scenes."
-msgstr ""
+msgstr "Операција не може бити извршена на инÑтанцираној Ñцени."
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Save New Scene As..."
-msgstr ""
+msgstr "Упамти Ðову Сцену Као..."
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid ""
"Disabling \"editable_instance\" will cause all properties of the node to be "
"reverted to their default."
msgstr ""
+"Онемогућивање \"измењиве_инÑтанце\" ће проузроковати да Ñва подешавања чвора "
+"буду повраћена на уобичајена."
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid ""
"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and "
"cause all properties of the node to be reverted to their default."
msgstr ""
+"Омогућавање \"Учитај Као МеÑточувца\" ће онемогућити \"Измељива Деца\" и "
+"проузтоковати Ñва подешавања чвора да буду враћена на уобичајена."
#: editor/scene_tree_dock.cpp
#, fuzzy
@@ -11003,272 +11865,333 @@ msgstr "Ðаправи коÑти"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "New Scene Root"
-msgstr "Сачувај Ñцену"
+msgstr "Ðови Корен Сцене"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Create Root Node:"
-msgstr "Ðаправи чвор"
+msgstr "Ðаправи корени чвор:"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "2D Scene"
-msgstr "Сцена"
+msgstr "2Д Сцена"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "3D Scene"
-msgstr "Сцена"
+msgstr "3Д Сцена"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "User Interface"
-msgstr ""
+msgstr "КориÑнички ИнтерфејÑ"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Other Node"
-msgstr "Ðаправи чвор"
+msgstr "Други Чвор"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Can't operate on nodes from a foreign scene!"
-msgstr ""
+msgstr "Ðемогуће опериÑати на чвору из Ñтране Ñцене!"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Can't operate on nodes the current scene inherits from!"
-msgstr ""
+msgstr "Ðемогуће опериÑати на чворовима од којих тренутна Ñцена наÑлеђује!"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Attach Script"
-msgstr ""
+msgstr "Припој Скрипту"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Remove Node(s)"
-msgstr ""
+msgstr "Уклони Чвор/ове"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Change type of node(s)"
-msgstr "Промени улазно име"
+msgstr "Промени врÑту чвора/ова"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
msgstr ""
+"ÐеуÑпело памћене Ñцене. Вероватно завиÑноÑти (инÑтанце) ниÑу задовољени."
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Error saving scene."
-msgstr ""
+msgstr "Грешка памћена Ñцена."
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Error duplicating scene to save it."
-msgstr ""
+msgstr "Грешка удвоÑтручивање Ñцене ради памћења."
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Sub-Resources"
-msgstr "РеÑурÑи"
+msgstr "Под-РеÑурÑи"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Clear Inheritance"
-msgstr ""
+msgstr "ОчиÑти ÐаÑлеђивања"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Editable Children"
-msgstr ""
+msgstr "Измењиа Деца"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Load As Placeholder"
-msgstr ""
+msgstr "Учитај као МеÑточувца"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Open Documentation"
-msgstr "Отвори Godot онлајн документацију"
+msgstr "Отвори Документацију"
#: editor/scene_tree_dock.cpp
-msgid "Add Child Node"
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Add Child Node"
+msgstr "Додај Дете Члан"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Expand/Collapse All"
-msgstr "Умањи Ñве"
+msgstr "Откриј/Сакриј Све"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Change Type"
-msgstr ""
+msgstr "Промени Тип"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Reparent to New Node"
-msgstr "Ðаправи нов"
+msgstr "Промени Родитеља Ðовом Чвору"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Make Scene Root"
-msgstr "Сачувај Ñцену"
+msgstr "Ðаправи Корен Сцене"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Merge From Scene"
-msgstr ""
+msgstr "Припоји из Сцене"
#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Save Branch as Scene"
-msgstr ""
+msgstr "Упамти Грану као Сцену"
#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Copy Node Path"
-msgstr ""
+msgstr "Копирај Путању Чвора"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete (No Confirm)"
-msgstr ""
+msgstr "Обриши (Без Потврде)"
#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Add/Create a New Node."
-msgstr "Ðаправи нов"
+msgstr "Додај/Ðаправи Ðов Члан."
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid ""
"Instance a scene file as a Node. Creates an inherited scene if no root node "
"exists."
msgstr ""
+"ИнÑтанцирај ÑценÑке фајлова као Чвор. Креирај наÑлеђену Ñцену ако корени "
+"чвор поÑтоји."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
-msgstr ""
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
+msgstr "Припој нову или поÑтојећу Ñкрпту за одабрани чвор."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr ""
+#, fuzzy
+msgid "Detach the script from the selected node."
+msgstr "ОчиÑти Ñкрипту за одабрани чвор."
#: editor/scene_tree_dock.cpp
msgid "Remote"
msgstr "Удаљени уређај"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Local"
-msgstr ""
+msgstr "Локално"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Clear Inheritance? (No Undo!)"
-msgstr ""
+msgstr "ОчиÑти ÐаÑледÑтва? (Ðема Ðазад!)"
#: editor/scene_tree_editor.cpp
#, fuzzy
msgid "Toggle Visible"
-msgstr "Прикажи Ñакривене датотеке"
+msgstr "Прикажи Сакривене"
#: editor/scene_tree_editor.cpp
#, fuzzy
msgid "Unlock Node"
-msgstr "OneShot чвор"
+msgstr "Откључај Чвор"
#: editor/scene_tree_editor.cpp
#, fuzzy
msgid "Button Group"
-msgstr "Додај у групу"
+msgstr "Група Дугмића"
#: editor/scene_tree_editor.cpp
#, fuzzy
msgid "(Connecting From)"
-msgstr "Повезивање не уÑпешно"
+msgstr "(Повезивање од)"
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid "Node configuration warning:"
-msgstr ""
+msgstr "Подешавања чвора упозорење:"
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid ""
"Node has %s connection(s) and %s group(s).\n"
"Click to show signals dock."
msgstr ""
+"Чвор има %s конекцију/је и %s групу(е).\n"
+"Кликни да прикажеш приÑтаниште Ñигнала."
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid ""
"Node has %s connection(s).\n"
"Click to show signals dock."
msgstr ""
+"Чвор има %s конекцију(е).\n"
+"Кликни да прикажеш приÑтаниште Ñигнала."
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid ""
"Node is in %s group(s).\n"
"Click to show groups dock."
msgstr ""
+"Чвор је у %s групи/ама.\n"
+"Кликни да прикажеш приÑтаниште групе."
#: editor/scene_tree_editor.cpp
#, fuzzy
msgid "Open Script:"
-msgstr "Покрени Ñкриптицу"
+msgstr "Отвори Скрипту:"
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid ""
"Node is locked.\n"
"Click to unlock it."
msgstr ""
+"Чвор је закључан.\n"
+"Кликни да га откључаш."
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid ""
"Children are not selectable.\n"
"Click to make selectable."
msgstr ""
+"Деца ниÑу одабирљива.\n"
+"Кликни да их начиниш одабирљивим."
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid "Toggle Visibility"
-msgstr ""
+msgstr "Укљ/ИÑкљ ВидљивоÑÑ‚"
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid ""
"AnimationPlayer is pinned.\n"
"Click to unpin."
msgstr ""
+"ÐнимациониПлејер је закачен.\n"
+"Кликни да га откачиш."
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid "Invalid node name, the following characters are not allowed:"
-msgstr ""
+msgstr "Ðеважеће име чвора, Ñледећи карактери ниÑу дозвољени:"
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid "Rename Node"
-msgstr ""
+msgstr "Преименуј Чвор"
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid "Scene Tree (Nodes):"
-msgstr ""
+msgstr "Стабло Сцене (Чворови):"
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid "Node Configuration Warning!"
-msgstr ""
+msgstr "Чворови Конфигурација Упозорење!"
#: editor/scene_tree_editor.cpp
+#, fuzzy
msgid "Select a Node"
-msgstr ""
+msgstr "Одабери Чвор"
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Path is empty."
-msgstr "Мрежа је празна!"
+msgstr "Путања је празна."
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Filename is empty."
-msgstr "Мрежа је празна!"
+msgstr "Име фајла је празно."
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Path is not local."
-msgstr "Путања не води ка чвору!"
+msgstr "Путања није локална."
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid base path."
-msgstr "Ðеважећи пут."
+msgstr "Ðеважећа оÑновна путања."
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "A directory with the same name exists."
-msgstr "Датотека или директоријум Ñа овим именом већ поÑтоји."
+msgstr "Већ поÑтоји директоријум Ñа овим именом."
+
+#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Датотека не поÑтоји."
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -11276,575 +12199,670 @@ msgid "Invalid extension."
msgstr "Мора Ñе кориÑтити важећа екÑтензија."
#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Wrong extension chosen."
-msgstr ""
+msgstr "Одабарна погрешна екÑтензија."
#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Error loading template '%s'"
-msgstr ""
+msgstr "Грешка при учитавању нацрта '%s'"
#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Error - Could not create script in filesystem."
-msgstr ""
+msgstr "Грешка - ÐеуÑпело креирање Ñкрипте у фајл ÑиÑтему."
#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Error loading script from %s"
-msgstr ""
+msgstr "Грешка при учитавању Ñкрипте из %s"
#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Overrides"
-msgstr ""
+msgstr "ПрепиÑке"
#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "N/A"
-msgstr ""
+msgstr "Ðије ДоÑтупно"
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Open Script / Choose Location"
-msgstr "Отвори уредник Ñкриптица"
+msgstr "Отвори Скрипту / Одабери Локацију"
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Open Script"
-msgstr "Покрени Ñкриптицу"
+msgstr "Отвори Скрипту"
#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "File exists, it will be reused."
-msgstr ""
+msgstr "Фајл поÑтоји, биће поново употребљен."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Invalid path."
+msgstr "Ðеважећи пут."
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid class name."
-msgstr "Ðеважеће име."
+msgstr "Ðеважеће име клаÑе."
#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid inherited parent name or path."
-msgstr ""
+msgstr "Ðеважеће наÑлеђено име од родитеља или путање."
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Script path/name is valid."
-msgstr "Ðнимационо дрво је важеће."
+msgstr "Важеће име/путања Ñкрипте."
#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Allowed: a-z, A-Z, 0-9, _ and ."
-msgstr ""
+msgstr "Дозвољено: a-z, A-Z, 0-9, _ и ."
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Built-in script (into scene file)."
-msgstr "Операције Ñа датотекама Ñцена."
+msgstr "Уграђена Ñкрипта (у фајл Ñцене)."
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Will create a new script file."
-msgstr "Ðаправи нов"
+msgstr "Биће креиран нов фајл Ñкирпте."
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Will load an existing script file."
-msgstr "Учитај поÑтојећи Ð±Ð°Ñ Ñ€Ð°Ñпоред."
+msgstr "Биће учитан поÑтојећи фајл Ñкрипте."
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Script file already exists."
-msgstr "ÐутоматÑко учитавање '%s' већ поÑтоји!"
+msgstr "Фајл Ñкрипте већ поÑтоји."
#: editor/script_create_dialog.cpp
+#, fuzzy
msgid ""
"Note: Built-in scripts have some limitations and can't be edited using an "
"external editor."
msgstr ""
+"Ðапомена: Уграђене Ñкрипте имају неке границе и не могу бити измењене "
+"кориÑтећи уредник."
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Class Name:"
-msgstr "КлаÑа:"
+msgstr "Име КлаÑе:"
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Template:"
-msgstr "Обриши шаблон"
+msgstr "Ðацрт:"
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Built-in Script:"
-msgstr "Покрени Ñкриптицу"
+msgstr "Уграђена Скрипта:"
#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Attach Node Script"
-msgstr ""
+msgstr "Припој Чвор Скрипту"
#: editor/script_editor_debugger.cpp
msgid "Remote "
msgstr "Удаљени уређај "
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Bytes:"
-msgstr ""
+msgstr "Бајтови:"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Warning:"
-msgstr ""
+msgstr "Упозорење:"
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "Error:"
-msgstr "Грешка"
+msgstr "Грешка:"
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "C++ Error"
-msgstr "Учитај грешке"
+msgstr "C++ Грешке"
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "C++ Error:"
-msgstr "Учитај грешке"
+msgstr "C++ Грешке:"
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "C++ Source"
-msgstr ""
-"\n"
-"Извор: "
+msgstr "C++ Извор"
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "Source:"
-msgstr ""
-"\n"
-"Извор: "
+msgstr "Извор:"
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "C++ Source:"
-msgstr ""
-"\n"
-"Извор: "
+msgstr "C++ Извор:"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Stack Trace"
-msgstr ""
+msgstr "Потражна ÐаÑлага"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Errors"
-msgstr ""
+msgstr "Грешке"
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "Child process connected."
-msgstr "Веза прекинута"
+msgstr "Дете процез повезан."
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "Copy Error"
-msgstr "Учитај грешке"
+msgstr "Копирај Грешку"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Video RAM"
-msgstr ""
+msgstr "Видео RAM"
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "Skip Breakpoints"
-msgstr "Обриши тачке"
+msgstr "ПреÑкочи тачке-прекида"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Inspect Previous Instance"
-msgstr ""
+msgstr "ИÑтражи Претходну ИнÑтанцу"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Inspect Next Instance"
-msgstr ""
+msgstr "ИÑтражи Ðаредну ИнÑтанцу"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Stack Frames"
-msgstr ""
+msgstr "ÐаÑлага Фрејмова"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Profiler"
-msgstr ""
+msgstr "ОÑматрач"
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "Network Profiler"
-msgstr "Извези пројекат"
+msgstr "Мрежни ОÑматрач"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Monitor"
-msgstr ""
+msgstr "Монитор"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Value"
-msgstr ""
+msgstr "ВредноÑÑ‚"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Monitors"
-msgstr ""
+msgstr "Монитори"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Pick one or more items from the list to display the graph."
-msgstr ""
+msgstr "Одабери један или више предмета Ñа лиÑте за приказ графикона."
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "List of Video Memory Usage by Resource:"
-msgstr ""
+msgstr "ЛиÑта Видео Утрошка Меморије од Ñтране РеÑурÑа:"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Total:"
-msgstr ""
+msgstr "Укупно:"
#: editor/script_editor_debugger.cpp
#, fuzzy
msgid "Export list to a CSV file"
-msgstr "Извези пројекат"
+msgstr "Извези лиÑту у CSV фајл"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Resource Path"
-msgstr ""
+msgstr "Путања РеÑурÑа"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Type"
-msgstr ""
+msgstr "Ð’Ñ€Ñта"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Format"
-msgstr ""
+msgstr "Формат"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Usage"
-msgstr ""
+msgstr "ИÑкориштеноÑÑ‚"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Misc"
-msgstr ""
+msgstr "ÐеÑврÑтано"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Clicked Control:"
-msgstr ""
+msgstr "Контрола Кликног:"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Clicked Control Type:"
-msgstr ""
+msgstr "Ð’Ñ€Ñта Контроле Кликнутог:"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Live Edit Root:"
-msgstr ""
+msgstr "Измена Корена Уживо:"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Set From Tree"
-msgstr ""
+msgstr "ПоÑтави Ñа Стабла"
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Export measures as CSV"
-msgstr ""
+msgstr "Извези мере као CSV"
#: editor/settings_config_dialog.cpp
#, fuzzy
msgid "Erase Shortcut"
-msgstr "Излазна транзиција"
+msgstr "Обриши Пречицу"
#: editor/settings_config_dialog.cpp
+#, fuzzy
msgid "Restore Shortcut"
-msgstr ""
+msgstr "Поврати Пречицу"
#: editor/settings_config_dialog.cpp
#, fuzzy
msgid "Change Shortcut"
-msgstr "Промени Ñидра"
+msgstr "Измени Пречицу"
#: editor/settings_config_dialog.cpp
msgid "Editor Settings"
msgstr "ПоÑтавке уредника"
#: editor/settings_config_dialog.cpp
+#, fuzzy
msgid "Shortcuts"
-msgstr ""
+msgstr "Пречице"
#: editor/settings_config_dialog.cpp
+#, fuzzy
msgid "Binding"
-msgstr ""
+msgstr "Спојеви"
#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Light Radius"
-msgstr ""
+msgstr "Промени ОпÑег Светла"
#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change AudioStreamPlayer3D Emission Angle"
-msgstr ""
+msgstr "Промени AudioStreamPlayer3D Угао Емитовања"
#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Camera FOV"
-msgstr ""
+msgstr "Промени FOV Камере"
#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Camera Size"
-msgstr ""
+msgstr "Проемени Велићину Камере"
#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Notifier AABB"
-msgstr ""
+msgstr "Промени AABB Обавештајца"
#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Particles AABB"
-msgstr ""
+msgstr "Промени AABB ЧеÑтица"
#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Probe Extents"
-msgstr ""
+msgstr "Промени ÐаÑтавке Сонде"
#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp
+#, fuzzy
msgid "Change Sphere Shape Radius"
-msgstr ""
+msgstr "Промени ОпÑег ЛоптаÑтог Облика"
#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp
+#, fuzzy
msgid "Change Box Shape Extents"
-msgstr ""
+msgstr "Промени ÐаÑтавке Кутија Облика"
#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Capsule Shape Radius"
-msgstr ""
+msgstr "Промени ОпÑег КапÑула Облика"
#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Capsule Shape Height"
-msgstr ""
+msgstr "Промени ВиÑину КапÑула Облика"
#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Cylinder Shape Radius"
-msgstr ""
+msgstr "Промени ОпÑег Цилиндар Облика"
#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Cylinder Shape Height"
-msgstr ""
+msgstr "Промени ВиÑину Цилиндар Облика"
#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Ray Shape Length"
-msgstr ""
+msgstr "Промени Дужину Зрак Облика"
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Cylinder Radius"
-msgstr "Промени време мешања"
+msgstr "Промени ОпÑег Цилиндра"
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Cylinder Height"
-msgstr "Промени време мешања"
+msgstr "Промени ВиÑину Цилиндра"
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Torus Inner Radius"
-msgstr "Промени Ñидра и ивице"
+msgstr "Промени Унутрашњи ОпÑег ТоруÑа"
#: modules/csg/csg_gizmos.cpp
+#, fuzzy
msgid "Change Torus Outer Radius"
-msgstr ""
+msgstr "Промени Спољашњи ОпÑег ТоруÑа"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
msgid "Select the dynamic library for this entry"
-msgstr ""
+msgstr "Одабери динамичку библиотеку за овај уноÑ"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
msgid "Select dependencies of the library for this entry"
-msgstr ""
+msgstr "Одабери завиÑноÑти од библиотеке за овај уноÑ"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
#, fuzzy
msgid "Remove current entry"
-msgstr "Обриши тачку криве"
+msgstr "Обриши тренутни уноÑ"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
msgid "Double click to create a new entry"
-msgstr ""
+msgstr "Дупли клик да креираш нов уноÑ"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
msgid "Platform:"
-msgstr ""
+msgstr "Платформа:"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
msgid "Platform"
-msgstr ""
+msgstr "Платформа"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
msgid "Dynamic Library"
-msgstr ""
+msgstr "Динамичка Библиотека"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
msgid "Add an architecture entry"
-msgstr ""
+msgstr "Додај архитектуру уноÑ"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
msgid "GDNativeLibrary"
-msgstr ""
+msgstr "GDNativeLibrary"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
+#, fuzzy
msgid "Enabled GDNative Singleton"
-msgstr ""
+msgstr "Омогућен GDNative Singleton"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Disabled GDNative Singleton"
-msgstr "ИÑкључи индикатор ажурирања"
+msgstr "Онемогућен GDNative Singleton"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
+#, fuzzy
msgid "Library"
-msgstr ""
+msgstr "Библиотека"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
+#, fuzzy
msgid "Libraries: "
-msgstr ""
+msgstr "Библиотеке:"
#: modules/gdnative/register_types.cpp
+#, fuzzy
msgid "GDNative"
-msgstr ""
+msgstr "GDNative"
#: modules/gdscript/gdscript_functions.cpp
+#, fuzzy
msgid "Step argument is zero!"
-msgstr ""
+msgstr "Корак аргуменат је нула!"
#: modules/gdscript/gdscript_functions.cpp
+#, fuzzy
msgid "Not a script with an instance"
-msgstr ""
+msgstr "Ðије Ñкрипта Ñа инÑтанцом"
#: modules/gdscript/gdscript_functions.cpp
+#, fuzzy
msgid "Not based on a script"
-msgstr ""
+msgstr "Ðије базирано на Ñкрипти"
#: modules/gdscript/gdscript_functions.cpp
+#, fuzzy
msgid "Not based on a resource file"
-msgstr ""
+msgstr "Ðије базирано на реÑÑƒÑ€Ñ Ñ„Ð°Ñ˜Ð»Ñƒ"
#: modules/gdscript/gdscript_functions.cpp
+#, fuzzy
msgid "Invalid instance dictionary format (missing @path)"
-msgstr ""
+msgstr "Ðеважећа инÑтанца речник формата (недоÑтаје @путања)"
#: modules/gdscript/gdscript_functions.cpp
+#, fuzzy
msgid "Invalid instance dictionary format (can't load script at @path)"
msgstr ""
+"Ðеважећа инÑтанца речник формата (неуÑпешно учитавање Ñкрипте код @путање)"
#: modules/gdscript/gdscript_functions.cpp
+#, fuzzy
msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr ""
+msgstr "Ðеважећа инÑтанца речник формата (неважећа Ñкрипта на @путања)"
#: modules/gdscript/gdscript_functions.cpp
+#, fuzzy
msgid "Invalid instance dictionary (invalid subclasses)"
-msgstr ""
+msgstr "Ðеважећа инÑтанца речника (неважеће клаÑе)"
#: modules/gdscript/gdscript_functions.cpp
+#, fuzzy
msgid "Object can't provide a length."
-msgstr ""
+msgstr "Објекат не може Ñнабдети дужину."
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Next Plane"
-msgstr "Следећи таб"
+msgstr "Следећа Раван"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Previous Plane"
-msgstr "Претходни таб"
+msgstr "Претходна Раван"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Plane:"
-msgstr ""
+msgstr "Раван:"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Next Floor"
-msgstr ""
+msgstr "Следећи Спрат"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Previous Floor"
msgstr "Претодни Ñпрат"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Floor:"
-msgstr ""
+msgstr "Спрат:"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "GridMap Delete Selection"
-msgstr ""
+msgstr "МапаМреже Обриши Одабир"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "GridMap Fill Selection"
-msgstr "Све одабрано"
+msgstr "МапаМреже ИÑпуни Одабрано"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "GridMap Paste Selection"
-msgstr "Све одабрано"
+msgstr "МапаМреже налепи Одабрано"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "GridMap Paint"
-msgstr "Мапа мреже"
+msgstr "МапаМреже Боји"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Мапа мреже"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Snap View"
-msgstr ""
+msgstr "Залепљив Поглед"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Clip Disabled"
-msgstr ""
+msgstr "Клип Онемогућен"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Clip Above"
-msgstr ""
+msgstr "Клип Изнад"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Clip Below"
-msgstr ""
+msgstr "Клип ИÑпод"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Edit X Axis"
-msgstr ""
+msgstr "Измени X ОÑу"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Edit Y Axis"
-msgstr ""
+msgstr "Измени Y ОÑу"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Edit Z Axis"
-msgstr ""
+msgstr "Измени Z ОÑу"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Cursor Rotate X"
-msgstr ""
+msgstr "КурÑор Ротација X"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Cursor Rotate Y"
-msgstr ""
+msgstr "КурÑор Ротација Y"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Cursor Rotate Z"
-msgstr ""
+msgstr "КурÑор Ротација Z"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Cursor Back Rotate X"
-msgstr ""
+msgstr "КурÑор Ротација Уназад X"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Cursor Back Rotate Y"
-msgstr ""
+msgstr "КурÑор Ротација Уназад Y"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Cursor Back Rotate Z"
-msgstr ""
+msgstr "КурÑор Ротација Уназад Z"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Cursor Clear Rotation"
-msgstr ""
+msgstr "КурÑор Обриши Ротацију"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Paste Selects"
-msgstr "Обриши одабрано"
+msgstr "Ðалепи Одабрано"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clear Selection"
@@ -11853,36 +12871,42 @@ msgstr "Обриши избор"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Fill Selection"
-msgstr "Све одабрано"
+msgstr "ИÑпуни одабрано"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "GridMap Settings"
-msgstr ""
+msgstr "МапаМреже Подешавања"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Pick Distance:"
-msgstr ""
+msgstr "Одабери ОдÑтојање:"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Filter meshes"
-msgstr "ПоÑтавке објекта."
+msgstr "Пробери мреже"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
-msgstr ""
+msgstr "Дај БиблиотециМрежа реÑÑƒÑ€Ñ Ð¾Ð²Ðµ МапеМреже да кориÑти њене мреже."
#: modules/mono/csharp_script.cpp
+#, fuzzy
msgid "Class name can't be a reserved keyword"
-msgstr ""
+msgstr "Има КлаÑе не може бити резервиÑана кључна реч"
#: modules/mono/mono_gd/gd_mono_utils.cpp
+#, fuzzy
msgid "End of inner exception stack trace"
-msgstr ""
+msgstr "Крај Унутрашњег израза потражне наÑлаге"
#: modules/recast/navigation_mesh_editor_plugin.cpp
+#, fuzzy
msgid "Bake NavMesh"
-msgstr ""
+msgstr "ИÑпеци ÐавМрежу"
#: modules/recast/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
@@ -11941,83 +12965,99 @@ msgid "Done!"
msgstr "Готово!"
#: modules/visual_script/visual_script.cpp
+#, fuzzy
msgid ""
"A node yielded without working memory, please read the docs on how to yield "
"properly!"
msgstr ""
+"Чвор попуÑтио без радне меморије, молимо прочитајте докуметацију како "
+"попуÑтити правило!"
#: modules/visual_script/visual_script.cpp
+#, fuzzy
msgid ""
"Node yielded, but did not return a function state in the first working "
"memory."
-msgstr ""
+msgstr "Чвор попуÑтио, али није вратио Ñтање функције у првој радној меморији."
#: modules/visual_script/visual_script.cpp
+#, fuzzy
msgid ""
"Return value must be assigned to first element of node working memory! Fix "
"your node please."
msgstr ""
+"Враћена вредноÑÑ‚ мора бити додељена првом елементу члана радне меморије! "
+"Молимо поправи чвор."
#: modules/visual_script/visual_script.cpp
+#, fuzzy
msgid "Node returned an invalid sequence output: "
-msgstr ""
+msgstr "Члан вратио неважећи излаз Ñеквенце:"
#: modules/visual_script/visual_script.cpp
+#, fuzzy
msgid "Found sequence bit but not the node in the stack, report bug!"
-msgstr ""
+msgstr "Пронађена Ñеквенца битова али не члан наÑлаге, пријави грешку!"
#: modules/visual_script/visual_script.cpp
+#, fuzzy
msgid "Stack overflow with stack depth: "
-msgstr ""
+msgstr "Преоптерећење наÑлаге Ñа дубином наÑлаге:"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Change Signal Arguments"
-msgstr ""
+msgstr "Измени Ðргументе Сигнала"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Change Argument Type"
-msgstr ""
+msgstr "Измени Ð’Ñ€Ñту Ðргумента"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Change Argument name"
-msgstr ""
+msgstr "Измени име Ðргумента"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Set Variable Default Value"
-msgstr ""
+msgstr "ПоÑтави Уобичајену ВредноÑÑ‚ Променљиве"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Set Variable Type"
-msgstr ""
+msgstr "ПоÑтави Ð’Ñ€Ñту Променљиве"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Add Input Port"
-msgstr "Додај улаз"
+msgstr "Додај улазни порт"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Add Output Port"
-msgstr "Додај улаз"
+msgstr "Додај излазни порт"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Override an existing built-in function."
-msgstr "Ðеважеће име. Име је резервиÑано за поÑтојећи уграђени тип."
+msgstr "Препиши поÑтојећу уграђену функцију."
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Create a new function."
-msgstr "Ðаправи нов"
+msgstr "Ðаправи нову функцију."
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Variables:"
-msgstr ""
+msgstr "Променљиве:"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Create a new variable."
-msgstr "Ðаправи нов"
+msgstr "Ðаправи нову променљиву."
#: modules/visual_script/visual_script_editor.cpp
msgid "Signals:"
@@ -12026,82 +13066,97 @@ msgstr "Сигнали:"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Create a new signal."
-msgstr "Ðаправи нови полигон од почетка."
+msgstr "Ðаправи нови Ñигнал."
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Name is not a valid identifier:"
-msgstr ""
+msgstr "Име није важећи идентификатор:"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Name already in use by another func/var/signal:"
-msgstr ""
+msgstr "Име је већ у употреби у функ/пром/Ñигналу:"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Rename Function"
-msgstr ""
+msgstr "Преименуј Функцију"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Rename Variable"
-msgstr ""
+msgstr "Преименуј Променљиву"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Rename Signal"
-msgstr ""
+msgstr "Преименуј Сигнал"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Add Function"
-msgstr ""
+msgstr "Додај Функцију"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Delete input port"
-msgstr "Обриши тачку"
+msgstr "Обриши улазни порт"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Add Variable"
-msgstr ""
+msgstr "Додај Промељиву"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Add Signal"
-msgstr ""
+msgstr "Додај Сигнал"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Remove Input Port"
-msgstr "Обриши тачку"
+msgstr "Обриши Улазни Порт"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Remove Output Port"
-msgstr "Обриши тачку"
+msgstr "Обриши Излазни Порт"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Change Expression"
-msgstr ""
+msgstr "Измени Израз"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Remove VisualScript Nodes"
-msgstr ""
+msgstr "Уклони ВизуелнаСкрипта Чланове"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Duplicate VisualScript Nodes"
-msgstr ""
+msgstr "УдвоÑтручи ВизуелнаСкрипта Чланове"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature."
-msgstr ""
+msgstr "Држи %s да иÑпуÑтиш Узимача. Држи Shift да иÑпуÑтиш општи потпиÑ."
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
-msgstr ""
+msgstr "Држи Ctrl да иÑпуÑтиш Узимача. Држи Shift да иÑпуÑтиш општи потпиÑ."
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Hold %s to drop a simple reference to the node."
-msgstr ""
+msgstr "Држи %s да иÑпуÑтиш једноÑтавну референцу ка члану."
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Hold Ctrl to drop a simple reference to the node."
-msgstr ""
+msgstr "Држи Ctrl да иÑпуÑтиш једноÑтавну референцу ка члану"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a Variable Setter."
@@ -12334,629 +13389,874 @@ msgid "VariableGet not found in script: "
msgstr ""
#: modules/visual_script/visual_script_nodes.cpp
+#, fuzzy
msgid "VariableSet not found in script: "
-msgstr ""
+msgstr "СкупПроменљивих није нађен у Ñкрипти:"
#: modules/visual_script/visual_script_nodes.cpp
+#, fuzzy
msgid "Custom node has no _step() method, can't process graph."
-msgstr ""
+msgstr "Произвољни чвор нема _step() методу, граф не моће бити обрађен."
#: modules/visual_script/visual_script_nodes.cpp
+#, fuzzy
msgid ""
"Invalid return value from _step(), must be integer (seq out), or string "
"(error)."
msgstr ""
+"Ðеважећа повратна вредноÑÑ‚ од _step(), мора бити интиџер (seq out), или "
+"Ñтринг (грешка)."
#: modules/visual_script/visual_script_property_selector.cpp
#, fuzzy
msgid "Search VisualScript"
-msgstr "Потражи помоћ"
+msgstr "Потражи VisualScript"
#: modules/visual_script/visual_script_property_selector.cpp
+#, fuzzy
msgid "Get %s"
-msgstr ""
+msgstr "Повуци %s"
#: modules/visual_script/visual_script_property_selector.cpp
+#, fuzzy
msgid "Set %s"
-msgstr ""
+msgstr "ПоÑтави %s"
#: platform/android/export/export.cpp
+#, fuzzy
msgid "Package name is missing."
-msgstr ""
+msgstr "ÐедоÑтаје име паковања."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "Package segments must be of non-zero length."
-msgstr ""
+msgstr "Одломци паковања не могу бити нулте дужине."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "The character '%s' is not allowed in Android application package names."
-msgstr ""
+msgstr "Карактер '%s' није дозвољен у именима паковања Android апликације."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "A digit cannot be the first character in a package segment."
-msgstr ""
+msgstr "Цифра не може бити први карактер у одломку паковања."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "The character '%s' cannot be the first character in a package segment."
-msgstr ""
+msgstr "Карактер '%s' не може бити први карактер у одломку паковања."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "The package must have at least one '.' separator."
-msgstr ""
+msgstr "Паковање мора имати бар један '.' раздвојник."
#: platform/android/export/export.cpp
msgid "Select device from the list"
msgstr "Одабери уређај Ñа лиÑте"
#: platform/android/export/export.cpp
+#, fuzzy
msgid "ADB executable not configured in the Editor Settings."
-msgstr ""
+msgstr "ADB извршна датотека није подешена у Подешавањима Уредника."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "OpenJDK jarsigner not configured in the Editor Settings."
-msgstr ""
+msgstr "OpenJDK jar потпиÑник није подешен у Подешавањима Уредника."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
+"Сладиште кључева Разгрешеника није подешено у Подешавањима Уредника ни у "
+"поÑтавкама."
+
+#: platform/android/export/export.cpp
+#, fuzzy
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"Сладиште кључева Разгрешеника није подешено у Подешавањима Уредника ни у "
+"поÑтавкама."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
+"Произвољна изградња захтева важећу путању до Android SDK у Подешавањима "
+"Уредника."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "Invalid Android SDK path for custom build in Editor Settings."
msgstr ""
+"Ðеважећа Android SDK путања за произвољну изградњу у Подешавањима Уредника."
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
+"Android нацрт изградње није инÑталиран у пројекат. ИнÑталирај га из Пројекат "
+"менија."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "Invalid public key for APK expansion."
-msgstr ""
+msgstr "Ðеважећи јавни кључ за ÐПК проширење."
#: platform/android/export/export.cpp
#, fuzzy
msgid "Invalid package name:"
-msgstr "Ðеважеће име."
+msgstr "Ðеважеће име паковања:"
+
+#: platform/android/export/export.cpp
+msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
+"Покушај изградње за произвољни нацрт изградње, али не поÑтоји инфо о "
+"верзији. Молимо реинÑталирај из \"Пројекат\" менија."
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
" Godot Version: %s\n"
"Please reinstall Android build template from 'Project' menu."
msgstr ""
+"Верзија Android изградње Ñе не подудара:\n"
+" Ðацрт инÑталиран: %s\n"
+" Годот Верзија: %s\n"
+"Молимо реинÑталирајте Android нацрт изградње из \"Пројекат\" менија."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "Building Android Project (gradle)"
-msgstr ""
+msgstr "Изградња Android Пројекта (gradle)"
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
+"Изградња Android пројекта неуÑпешна, провери излаз за грешке.\n"
+"Ðлтернативно поÑети docs.godotengine.org за Android документацију изградње."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "No build apk generated at: "
-msgstr ""
+msgstr "Ðема градње apk произведеног код:"
#: platform/iphone/export/export.cpp
+#, fuzzy
msgid "Identifier is missing."
-msgstr ""
+msgstr "Идентификатор недоÑтаје."
#: platform/iphone/export/export.cpp
+#, fuzzy
msgid "The character '%s' is not allowed in Identifier."
-msgstr ""
+msgstr "Карактер '%s' није дозвољен као идентификатор."
#: platform/iphone/export/export.cpp
+#, fuzzy
msgid "App Store Team ID not specified - cannot configure the project."
msgstr ""
+"ТимÑки ИД Продавнице Ðпликација није наведен - неуÑпешно подешавање пројекта."
#: platform/iphone/export/export.cpp
#, fuzzy
msgid "Invalid Identifier:"
-msgstr "Ðеважећа величина фонта."
+msgstr "Ðеважећи идентификатор:"
#: platform/iphone/export/export.cpp
+#, fuzzy
msgid "Required icon is not specified in the preset."
-msgstr ""
+msgstr "Ðеопходна иконица није наведена у подешавању."
#: platform/javascript/export/export.cpp
+#, fuzzy
msgid "Stop HTTP Server"
-msgstr ""
+msgstr "ЗауÑтави HTTP Сервер"
#: platform/javascript/export/export.cpp
+#, fuzzy
msgid "Run in Browser"
-msgstr ""
+msgstr "Покрени у Претраживачу"
#: platform/javascript/export/export.cpp
+#, fuzzy
msgid "Run exported HTML in the system's default browser."
-msgstr ""
+msgstr "Покрени извезени HTML у уобичајеном претраживачу ÑиÑтема."
#: platform/javascript/export/export.cpp
#, fuzzy
msgid "Could not write file:"
-msgstr "ÐеуÑпех при тражењу плочице:"
+msgstr "ÐеуÑпело упиÑивање фајла:"
#: platform/javascript/export/export.cpp
#, fuzzy
msgid "Could not open template for export:"
-msgstr "ÐеуÑпех при прављењу директоријума."
+msgstr "ÐеуÑпешно отварање нацрта за извоз:"
#: platform/javascript/export/export.cpp
#, fuzzy
msgid "Invalid export template:"
-msgstr "Ðеважећи извозни шаблон:\n"
+msgstr "Ðеважећи извозни нацрт:"
#: platform/javascript/export/export.cpp
#, fuzzy
msgid "Could not read custom HTML shell:"
-msgstr "ÐеуÑпех при учитавању датотеке Ñа Ñличицом учитавања:\n"
+msgstr "ÐеуÑпешно читаље произвољне HTML шкољке:"
#: platform/javascript/export/export.cpp
#, fuzzy
msgid "Could not read boot splash image file:"
-msgstr "ÐеуÑпех при учитавању датотеке Ñа Ñличицом учитавања:\n"
+msgstr "ÐеуÑпешно читаље фајла уводне Ñлике:"
#: platform/javascript/export/export.cpp
#, fuzzy
msgid "Using default boot splash image."
-msgstr "ÐеуÑпех при учитавању датотеке Ñа Ñличицом учитавања:\n"
+msgstr "Коришћење уобичајне уводне Ñлике."
#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid package short name."
-msgstr "Ðеважеће име."
+msgstr "Ðеважеће кратко име паковања."
#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid package unique name."
-msgstr "Ðеважеће име."
+msgstr "Ðеважеће јединÑтвено име паковања."
#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid package publisher display name."
-msgstr "Ðеважеће име."
+msgstr "Ðеважеће приказно име издавача паковања."
#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid product GUID."
-msgstr "Ðеважеће име."
+msgstr "Ðеважећи GUID продукт."
#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid publisher GUID."
-msgstr "Ðеважећи пут."
+msgstr "Ðеважећи GUID итдавача."
#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid background color."
-msgstr "Ðеважеће име."
+msgstr "Ðеважећа боја позадине."
#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "Ðеважеће димензије Логотипа Продавнице (треба да буде 50*50)."
#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
+msgstr "Ðеважеће димензије Ñлике за квадрат логотип (треба да буде 44*44)."
#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
+msgstr "Ðеважеће димензије Ñлике за квадрат логотип (треба да буде 71*71)."
#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
+msgstr "Ðеважеће димензије Ñлике за квадрат логотип (треба да буде 150*150)."
#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
+msgstr "Ðеважеће димензије Ñлике за квадрат логотип (треба да буде 310*310)."
#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
+msgstr "Ðеважеће димензије Ñлике за широки логотип (треба да буде 310*150)."
#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr ""
+msgstr "Ðеважеће димензије Ñлике за уводни екран (треба да буде 620*300)."
#: scene/2d/animated_sprite.cpp
+#, fuzzy
msgid ""
"A SpriteFrames resource must be created or set in the \"Frames\" property in "
"order for AnimatedSprite to display frames."
msgstr ""
+"СпрајтРамови реÑÑƒÑ€Ñ Ð¼Ð¾Ñ€Ð° бити креиран или поÑтавњен у \"Рамови\" оÑобини да "
+"би ÐнимациониСпрајт приказао фрејмове."
#: scene/2d/canvas_modulate.cpp
+#, fuzzy
msgid ""
"Only one visible CanvasModulate is allowed per scene (or set of instanced "
"scenes). The first created one will work, while the rest will be ignored."
msgstr ""
+"Само један видљив CanvasModulate је дозвољен по Ñцени (или групи "
+"инÑтанцираних Ñцена). Први креиран ће радити, док ће оÑтали бити занемарени."
#: scene/2d/collision_object_2d.cpp
+#, fuzzy
msgid ""
"This node has no shape, so it can't collide or interact with other objects.\n"
"Consider adding a CollisionShape2D or CollisionPolygon2D as a child to "
"define its shape."
msgstr ""
+"Овај члан нема облик, тако да Ñе не моће Ñударати Ñа оÑталим објектима.\n"
+"Размотри додавање СударнихОблика2Д или СударнихМногоуглова2Д као деце да "
+"дефинишеш његов облик."
#: scene/2d/collision_polygon_2d.cpp
+#, fuzzy
msgid ""
"CollisionPolygon2D only serves to provide a collision shape to a "
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
+"СударниМногоугао2Д Ñамо Ñлужи да обезбеди Ñударни облик изведеном члану од "
+"СударномОбјекту2Д. Молимо кориÑти га Ñамо као дете од ОблаÑти2Д, "
+"ÐепомичногТела2Д, ЧврÑтогТела2Д, КинематичкогТела2Д итд. да им даш облик."
#: scene/2d/collision_polygon_2d.cpp
+#, fuzzy
msgid "An empty CollisionPolygon2D has no effect on collision."
-msgstr ""
+msgstr "Ðепријатењ СударниМногоугао2Д нема утицаја на Ñудар."
#: scene/2d/collision_shape_2d.cpp
+#, fuzzy
msgid ""
"CollisionShape2D only serves to provide a collision shape to a "
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
+"СударниОблик2Д Ñамо Ñлужи да обезбеди Ñударни облик за изведени чвор од "
+"СударниОбјекат2Д. Молимо Ñамо га кориÑти као дете ОблаÑти2Д, "
+"ÐепомичногТела2Д, ЧврÑтогТела2Д, КинематичкогТела2Д, итд. да им даш облик."
#: scene/2d/collision_shape_2d.cpp
+#, fuzzy
msgid ""
"A shape must be provided for CollisionShape2D to function. Please create a "
"shape resource for it!"
msgstr ""
+"Облик мора бити Ñнабдевен за СударниОблик2Д да би радио. Молимо креирај "
+"облик реÑÑƒÑ€Ñ Ð·Ð° њега!"
#: scene/2d/cpu_particles_2d.cpp
+#, fuzzy
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
+"ПроцеÑорЧеÑтице2Д анимација захтева коришћење ПлатноПредметМатеријала Ñа "
+"омогућеном \"Ðнимациом ЧеÑтица\"."
#: scene/2d/light_2d.cpp
+#, fuzzy
msgid ""
"A texture with the shape of the light must be supplied to the \"Texture\" "
"property."
msgstr ""
+"ТекÑтура Ñа обликом Ñветла мора бити Ñнабдевена у \"ТекÑтура\" оÑобини."
#: scene/2d/light_occluder_2d.cpp
+#, fuzzy
msgid ""
"An occluder polygon must be set (or drawn) for this occluder to take effect."
msgstr ""
+"Многоугао Затамљивач мора бити поÑтављен (или иÑцртан) да би затамљивач имао "
+"утицаја."
#: scene/2d/light_occluder_2d.cpp
+#, fuzzy
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+"Многоугао затамљивач за овај затамљивач је празан. Молимо нацртај моногоугао."
#: scene/2d/navigation_polygon.cpp
+#, fuzzy
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
"Please set a property or draw a polygon."
msgstr ""
+"ÐавигациониПолигон реÑÑƒÑ€Ñ Ð¼Ð¾Ñ€Ð° бити поÑтављен или креиран да би овај чвор "
+"радио. Молимо поÑтави оÑобину или нацртај многоугао."
#: scene/2d/navigation_polygon.cpp
+#, fuzzy
msgid ""
"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
"node. It only provides navigation data."
msgstr ""
+"ИнÑтанцаÐавигационогМногоугла мора бити дете или прадете Ðавигација2Д чвору. "
+"Само обезбеђује навигационе податке."
#: scene/2d/parallax_layer.cpp
+#, fuzzy
msgid ""
"ParallaxLayer node only works when set as child of a ParallaxBackground node."
-msgstr ""
+msgstr "ПаралакÑСлој чвор Ñамо ради кад је дете од ПаралакÑПозадина чвора."
#: scene/2d/particles_2d.cpp
+#, fuzzy
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
"Use the CPUParticles2D node instead. You can use the \"Convert to "
"CPUParticles\" option for this purpose."
msgstr ""
+"ЧеÑтице базиране на графичкој ниÑу подржане од Ñтране GLES2 видео "
+"управљача.\n"
+"УмеÑто тога кориÑти ПроцеÑорЧеÑтице2Д чвор."
#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
+#, fuzzy
msgid ""
"A material to process the particles is not assigned, so no behavior is "
"imprinted."
msgstr ""
+"Материјал за извршавање чеÑтица није додељен. па ни једно понашање није "
+"утиÑнуто."
#: scene/2d/particles_2d.cpp
+#, fuzzy
msgid ""
"Particles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
+"ЧеÑтице2Д анимација захтева корићење ПозориштеПредметМатеријала Ñа "
+"омогућеном \"Ðнимација ЧеÑтица\"."
#: scene/2d/path_2d.cpp
+#, fuzzy
msgid "PathFollow2D only works when set as a child of a Path2D node."
-msgstr ""
+msgstr "ПутањаПраћења2Д Ñамо ради кад је дете Путање2Д чвора."
#: scene/2d/physics_body_2d.cpp
+#, fuzzy
msgid ""
"Size changes to RigidBody2D (in character or rigid modes) will be overridden "
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"Промена величине ЧврÑтогТела2Д (у карактеру или чврÑтом режиму) биће "
+"препиÑана од Ñтране физичког мотора током рада.\n"
+"УмеÑто тога промени величину у детету Ñударног облика."
#: scene/2d/remote_transform_2d.cpp
+#, fuzzy
msgid "Path property must point to a valid Node2D node to work."
-msgstr ""
+msgstr "Путања оÑобина мора показивати ка важећем Чвор2Д чвор да би радила."
#: scene/2d/skeleton_2d.cpp
+#, fuzzy
msgid "This Bone2D chain should end at a Skeleton2D node."
-msgstr ""
+msgstr "Овај КоÑка2Д ланац треба да Ñе заврши код КоÑтур2Д чвора."
#: scene/2d/skeleton_2d.cpp
+#, fuzzy
msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node."
msgstr ""
+"КоÑка2Д ради Ñамо Ñа КоÑтуром2Д или другом КоÑка2Д као родитељÑким чвором."
#: scene/2d/skeleton_2d.cpp
+#, fuzzy
msgid ""
"This bone lacks a proper REST pose. Go to the Skeleton2D node and set one."
msgstr ""
+"Овај коÑки недоÑтаје одговарајућа Одмор поза. Иди у КоÑтур2Д чвор и поÑтави "
+"је."
#: scene/2d/tile_map.cpp
+#, fuzzy
msgid ""
"TileMap with Use Parent on needs a parent CollisionObject2D to give shapes "
"to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, "
"KinematicBody2D, etc. to give them a shape."
msgstr ""
+"МапаПлочица Ñа КориÑти Родитеља укљученим треба да има као родитеља "
+"СударниОблик2Д да му да облик. Молимо кориÑти је као дете од ОблаÑÑ‚2Д, "
+"ЧврÑтоТело2Д, КинематикоТело2Д, итд. да им даш облик."
#: scene/2d/visibility_notifier_2d.cpp
+#, fuzzy
msgid ""
"VisibilityEnabler2D works best when used with the edited scene root directly "
"as parent."
msgstr ""
+"ВидљивоÑтОмогућивач2Д ради најбоље кад Ñе кориÑти Ñа измењеним кореном Ñцене "
+"као родитељем."
#: scene/3d/arvr_nodes.cpp
+#, fuzzy
msgid "ARVRCamera must have an ARVROrigin node as its parent."
-msgstr ""
+msgstr "ARVRCamera мора имати ARVROrigin члан као родитеља."
#: scene/3d/arvr_nodes.cpp
+#, fuzzy
msgid "ARVRController must have an ARVROrigin node as its parent."
-msgstr ""
+msgstr "ARVRController мора имати ARVROrigin члан као родитеља."
#: scene/3d/arvr_nodes.cpp
+#, fuzzy
msgid ""
"The controller ID must not be 0 or this controller won't be bound to an "
"actual controller."
msgstr ""
+"ИД Контролора не Ñме бити 0 или овај контролор неће бити везан за актуелнонг "
+"контролора."
#: scene/3d/arvr_nodes.cpp
+#, fuzzy
msgid "ARVRAnchor must have an ARVROrigin node as its parent."
-msgstr ""
+msgstr "ARVRAnchor мора имати ARVROrigin чвор као родитеља."
#: scene/3d/arvr_nodes.cpp
+#, fuzzy
msgid ""
"The anchor ID must not be 0 or this anchor won't be bound to an actual "
"anchor."
msgstr ""
+"Чвор ИД не Ñме биди 0 или ово Ñидро неће бити везано за актуелно Ñидро."
#: scene/3d/arvr_nodes.cpp
+#, fuzzy
msgid "ARVROrigin requires an ARVRCamera child node."
-msgstr ""
+msgstr "ARVROrigin захтева ARVRCamera дете чвор."
#: scene/3d/baked_lightmap.cpp
+#, fuzzy
msgid "%d%%"
-msgstr ""
+msgstr "%d%%"
#: scene/3d/baked_lightmap.cpp
+#, fuzzy
msgid "(Time Left: %d:%02d s)"
-msgstr ""
+msgstr "(Време преоÑтало: %d:%02d Ñ)"
#: scene/3d/baked_lightmap.cpp
+#, fuzzy
msgid "Plotting Meshes: "
-msgstr ""
+msgstr "Сковане Мреже:"
#: scene/3d/baked_lightmap.cpp
+#, fuzzy
msgid "Plotting Lights:"
-msgstr ""
+msgstr "Скована Светла:"
#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+#, fuzzy
msgid "Finishing Plot"
-msgstr ""
+msgstr "Завршни Ков"
#: scene/3d/baked_lightmap.cpp
+#, fuzzy
msgid "Lighting Meshes: "
-msgstr ""
+msgstr "СветлоÑне Мреже:"
#: scene/3d/collision_object.cpp
+#, fuzzy
msgid ""
"This node has no shape, so it can't collide or interact with other objects.\n"
"Consider adding a CollisionShape or CollisionPolygon as a child to define "
"its shape."
msgstr ""
+"Овај чвор нема облик, па Ñе не може Ñударати Ñа оÑталим објектима.\n"
+"Размотри додавање СударногОблика или СударногМногоугла као детета да би "
+"дефиниÑао облик."
#: scene/3d/collision_polygon.cpp
+#, fuzzy
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
"CollisionObject derived node. Please only use it as a child of Area, "
"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
msgstr ""
+"СуадрниМногоугао Ñамо Ñлужи да обезбеди Ñударни облик чвуру изведеном од "
+"СуадрниОбјекат. Молимо кориÑи га Ñамо као дете ОблаÑти, ÐепомичногТела, "
+"ЧврÑтогТела, итд. да им даш облик."
#: scene/3d/collision_polygon.cpp
+#, fuzzy
msgid "An empty CollisionPolygon has no effect on collision."
-msgstr ""
+msgstr "Празан СударниМногоугао нема утицаја на Ñудар."
#: scene/3d/collision_shape.cpp
+#, fuzzy
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
"KinematicBody, etc. to give them a shape."
msgstr ""
+"СударниОблик Ñамо Ñлужи да обезбеди Ñударни облик чвору изведеном Ð¸Ñ "
+"СударниОбјекат. Молимо Ñамо га кориÑти као дете ОблаÑти, ÐепомичногТела, "
+"ЧврÑтогТела, итд. да им даш облик."
#: scene/3d/collision_shape.cpp
+#, fuzzy
msgid ""
"A shape must be provided for CollisionShape to function. Please create a "
"shape resource for it."
msgstr ""
+"Облик мора бити Ñнабдевен за СударниОблик да би радио. Молимо креирајте "
+"облик реÑÑƒÑ€Ñ Ð·Ð° њега."
#: scene/3d/collision_shape.cpp
+#, fuzzy
msgid ""
"Plane shapes don't work well and will be removed in future versions. Please "
"don't use them."
msgstr ""
+"Облици равни не раде добро и биће уклоњени у будућим верзија. Молимо не "
+"кориÑтите их."
#: scene/3d/collision_shape.cpp
+#, fuzzy
msgid ""
"ConcavePolygonShape doesn't support RigidBody in another mode than static."
msgstr ""
+"УдубљениМоногоугаониОблик не подржава ЧврÑтоТело у другом рећим оÑим "
+"непокретног."
#: scene/3d/cpu_particles.cpp
+#, fuzzy
msgid "Nothing is visible because no mesh has been assigned."
-msgstr ""
+msgstr "Ðишта није видљиво пошто мрежа није била додељена."
#: scene/3d/cpu_particles.cpp
+#, fuzzy
msgid ""
"CPUParticles animation requires the usage of a SpatialMaterial whose "
"Billboard Mode is set to \"Particle Billboard\"."
msgstr ""
+"ПроцеÑорЧеÑтице анимација захтева коришћење ПроÑторногМатеријала чији Режим "
+"ОглаÑнеТабле је поÑтављен као \"ОглаÑнаТабла ЧеÑтице\"."
#: scene/3d/gi_probe.cpp
+#, fuzzy
msgid "Plotting Meshes"
-msgstr ""
+msgstr "Сковане Мреже"
#: scene/3d/gi_probe.cpp
+#, fuzzy
msgid ""
"GIProbes are not supported by the GLES2 video driver.\n"
"Use a BakedLightmap instead."
msgstr ""
+"СондеГлобалногОÑветљења ниÑу подржане од Ñтране GLES2 видео управљача.\n"
+" \n"
+"Као замену кориÑти ИÑпеченеСенкеМапу."
#: scene/3d/light.cpp
+#, fuzzy
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
-msgstr ""
+msgstr "ТачкаСветло Ñа углом ширим од 90 Ñтепени не може бацати Ñенке."
#: scene/3d/navigation_mesh.cpp
+#, fuzzy
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
+"ÐавигационаМрежа реÑÑƒÑ€Ñ Ð¼Ð¾Ñ€Ð° бити поÑтављен или креиран да би овај чвор "
+"радио."
#: scene/3d/navigation_mesh.cpp
+#, fuzzy
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+"ÐавМрежнаИнÑтанца мора бити дете или прадете Ðавигационог чвора. Само "
+"обезбећује навигационе податке."
#: scene/3d/particles.cpp
+#, fuzzy
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles"
"\" option for this purpose."
-msgstr ""
+msgstr "GPU-базиране чеÑтице ниÑу подржане од Ñтране GLES2 видео управљача."
#: scene/3d/particles.cpp
+#, fuzzy
msgid ""
"Nothing is visible because meshes have not been assigned to draw passes."
-msgstr ""
+msgstr "Ðишта није видљиво пошто мрежама није било додељено да цртају пролазе."
#: scene/3d/particles.cpp
+#, fuzzy
msgid ""
"Particles animation requires the usage of a SpatialMaterial whose Billboard "
"Mode is set to \"Particle Billboard\"."
msgstr ""
+"ЧеÑтице анимација захтева коришћење ПроÑторногМатеријала чије је Режим "
+"ОглаÑнеТабле поÑтављен као \"ЧеÑтице ОглаÑнеТабле\"."
#: scene/3d/path.cpp
+#, fuzzy
msgid "PathFollow only works when set as a child of a Path node."
-msgstr ""
+msgstr "ПутањаПраћења ради Ñамо кад је поÑтављена као дете Путања чвора."
#: scene/3d/path.cpp
+#, fuzzy
msgid ""
"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its "
"parent Path's Curve resource."
msgstr ""
+"ОРИЈЕÐТИСÐÐÐ_РОТÐЦИЈРПутањеПраћења захтева \"Горе Вектор\" да би била "
+"омогућена у Ñвом родитељ реÑурÑу Путања Криве."
#: scene/3d/physics_body.cpp
+#, fuzzy
msgid ""
"Size changes to RigidBody (in character or rigid modes) will be overridden "
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"Промена величине у ТврдомТелу (у карактеру или трвдом моду) ће бити "
+"препиÑана од Ñтране физичког мотора у раду."
#: scene/3d/remote_transform.cpp
+#, fuzzy
msgid ""
"The \"Remote Path\" property must point to a valid Spatial or Spatial-"
"derived node to work."
msgstr ""
+"\"ДаљинÑка Путања\" подешавање да би радило мора упирати ка важећем "
+"ПроÑторном или ПроÑторно-изведеном чвору."
#: scene/3d/soft_body.cpp
+#, fuzzy
msgid "This body will be ignored until you set a mesh."
-msgstr ""
+msgstr "Ово тело ће бити занемарено док не поÑтавиш мрежу."
#: scene/3d/soft_body.cpp
+#, fuzzy
msgid ""
"Size changes to SoftBody will be overridden by the physics engine when "
"running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"Промене величине МекогТела ће бити препиÑане од Ñтране фитичког мотора током "
+"рада."
#: scene/3d/sprite_3d.cpp
+#, fuzzy
msgid ""
"A SpriteFrames resource must be created or set in the \"Frames\" property in "
"order for AnimatedSprite3D to display frames."
msgstr ""
+"СпрајтРам реÑурÑи морају бити креирани или подешени у \"Рамови\" оÑобини да "
+"би ÐнимираниСпрајт3Д приказао рамове."
#: scene/3d/vehicle_body.cpp
+#, fuzzy
msgid ""
"VehicleWheel serves to provide a wheel system to a VehicleBody. Please use "
"it as a child of a VehicleBody."
msgstr ""
+"ТочакВозила Ñлужи да Ñнабде точак ÑиÑтем ТелуВозила. Молимо кориÑтите га као "
+"детете од ТелаВозила."
#: scene/3d/world_environment.cpp
+#, fuzzy
msgid ""
"WorldEnvironment requires its \"Environment\" property to contain an "
"Environment to have a visible effect."
msgstr ""
+"СветÑкоОкружење изиÑкује Ñвоју \"Окружење\" оÑобину да Ñадржи Окружење да би "
+"било видљиво."
#: scene/3d/world_environment.cpp
+#, fuzzy
msgid ""
"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
msgstr ""
+"Само једно СветÑкоОкружење је дозвољено за Ñцену (или групу инÑтанцираних "
+"Ñцена)."
#: scene/3d/world_environment.cpp
+#, fuzzy
msgid ""
"This WorldEnvironment is ignored. Either add a Camera (for 3D scenes) or set "
"this environment's Background Mode to Canvas (for 2D scenes)."
-msgstr ""
+msgstr "СветÑкоОкружење је занемарено."
#: scene/animation/animation_blend_tree.cpp
+#, fuzzy
msgid "On BlendTree node '%s', animation not found: '%s'"
-msgstr ""
+msgstr "Ðа BlendTree чвору '%s', анимација није нађена: '%s'"
#: scene/animation/animation_blend_tree.cpp
#, fuzzy
msgid "Animation not found: '%s'"
-msgstr "Ðнимационе алатке"
+msgstr "Ðнимација није нађена: '%s'"
#: scene/animation/animation_tree.cpp
+#, fuzzy
msgid "In node '%s', invalid animation: '%s'."
-msgstr ""
+msgstr "У чвору '%s', неважећа анимација: '%s'."
#: scene/animation/animation_tree.cpp
#, fuzzy
msgid "Invalid animation: '%s'."
-msgstr "Грешка: неважеће име анимације!"
+msgstr "Ðеважећа анимација: '%s'."
#: scene/animation/animation_tree.cpp
#, fuzzy
msgid "Nothing connected to input '%s' of node '%s'."
-msgstr "Повежи '%s' Ñа '%s'"
+msgstr "Ðишта није позевано Ñа улазом '%s' од чвора '%s'."
#: scene/animation/animation_tree.cpp
+#, fuzzy
msgid "No root AnimationNode for the graph is set."
-msgstr ""
+msgstr "AnimationNode без корена за графикон је поÑтављено."
#: scene/animation/animation_tree.cpp
#, fuzzy
msgid "Path to an AnimationPlayer node containing animations is not set."
-msgstr "Одабери AnimationPlayer из дрвета Ñцене за уређивање анимација."
+msgstr "Путања ка AnimationPlayer чвору који Ñадржи анимацију није поÑтављена."
#: scene/animation/animation_tree.cpp
+#, fuzzy
msgid "Path set for AnimationPlayer does not lead to an AnimationPlayer node."
-msgstr ""
+msgstr "Путања поÑтављена за AnimationPlayer не води ка AnimationPlayer чвору."
#: scene/animation/animation_tree.cpp
#, fuzzy
@@ -12964,127 +14264,187 @@ msgid "The AnimationPlayer root node is not a valid node."
msgstr "Ðнимационо дрво није важеће."
#: scene/animation/animation_tree_player.cpp
+#, fuzzy
msgid "This node has been deprecated. Use AnimationTree instead."
-msgstr ""
+msgstr "Овај члан је заÑтарео. КориÑти AnimationTree као замену."
#: scene/gui/color_picker.cpp
+#, fuzzy
msgid ""
"Color: #%s\n"
"LMB: Set color\n"
"RMB: Remove preset"
msgstr ""
+"Боја: #%s\n"
+"LMB: ПоÑтави боју\n"
+"RMB: Уклони поÑтавку"
#: scene/gui/color_picker.cpp
+#, fuzzy
msgid "Pick a color from the editor window."
-msgstr ""
+msgstr "Одабери боју из прозора уредника."
#: scene/gui/color_picker.cpp
+#, fuzzy
msgid "HSV"
-msgstr ""
+msgstr "ÐијанÑа ЗаÑићење ВредноÑÑ‚"
#: scene/gui/color_picker.cpp
+#, fuzzy
msgid "Raw"
-msgstr ""
+msgstr "Сиров"
#: scene/gui/color_picker.cpp
+#, fuzzy
msgid "Switch between hexadecimal and code values."
-msgstr ""
+msgstr "Пребаци између хекÑадецималних и кодних вредноÑти."
#: scene/gui/color_picker.cpp
+#, fuzzy
msgid "Add current color as a preset."
-msgstr ""
+msgstr "Додај тренутну боју као поÑтавку."
#: scene/gui/container.cpp
+#, fuzzy
msgid ""
"Container by itself serves no purpose unless a script configures its "
"children placement behavior.\n"
"If you don't intend to add a script, use a plain Control node instead."
msgstr ""
+"Контејнер као такав није употревљив оÑим ако Ñкрипта подеÑи позиционо "
+"понашање Ñвоје деце.\n"
+"Ðко не намераваш да додаш Ñкрипту, онда кориÑти проÑти Контрол чвор."
#: scene/gui/control.cpp
+#, fuzzy
msgid ""
"The Hint Tooltip won't be displayed as the control's Mouse Filter is set to "
"\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"."
msgstr ""
+"Савет-Кутије неће бити приказане као контроле, Миш Пробирач је поÑтављен на "
+"\"Занемари\". Да решиш ово, поÑтави Миш Пробирач на \"ЗауÑтави\" или "
+"\"ПроÑледи\"."
#: scene/gui/dialogs.cpp
+#, fuzzy
msgid "Alert!"
-msgstr ""
+msgstr "Узбуна!"
#: scene/gui/dialogs.cpp
+#, fuzzy
msgid "Please Confirm..."
-msgstr ""
+msgstr "Молимо Потврди..."
#: scene/gui/popup.cpp
+#, fuzzy
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
"functions. Making them visible for editing is fine, but they will hide upon "
"running."
msgstr ""
+"Скок-Прозори биће Ñкривени оÑим ако позовеш popup() или било коју од "
+"popup*() функција. Чинити их видљивим за измену је добро, али ће Ñе Ñакрити "
+"након покретања."
#: scene/gui/range.cpp
+#, fuzzy
msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0."
msgstr ""
+"Ðко је \"ЕкÑп Измена\" омогућена, \"Ðајмања ВредноÑÑ‚\" мора бити већа од 0."
#: scene/gui/scroll_container.cpp
+#, fuzzy
msgid ""
"ScrollContainer is intended to work with a single child control.\n"
"Use a container as child (VBox, HBox, etc.), or a Control and set the custom "
"minimum size manually."
msgstr ""
+"ScrollContainer је намењен да ради Ñа једном дете контролом.\n"
+"КориÑти контејнер као дете (ВКутија, ХКутија, итд.), или Контролу и подеÑи "
+"ручно произвољну најмању величину."
#: scene/gui/tree.cpp
+#, fuzzy
msgid "(Other)"
-msgstr ""
+msgstr "(ОÑтатак)"
#: scene/main/scene_tree.cpp
+#, fuzzy
msgid ""
"Default Environment as specified in Project Settings (Rendering -> "
"Environment -> Default Environment) could not be loaded."
msgstr ""
+"Уобичајено Окружење наведено у Подешавањима Пројекта (ИÑцртавање -> Окружење "
+"-> Уобичајено Окружење) није уÑпешно учитано."
#: scene/main/viewport.cpp
+#, fuzzy
msgid ""
"This viewport is not set as render target. If you intend for it to display "
"its contents directly to the screen, make it a child of a Control so it can "
"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
"texture to some node for display."
msgstr ""
+"Овај viewport није поÑтављен као мета за иÑцртавање. Ðко намераваш да "
+"прикаже Ñадржај директно на екран, учини га дететом Контроле да може да "
+"добави величину. У Ñупротном, учини га МетомИÑцртавања и додели његову "
+"унутрашњу текÑтуру неком чвору за приказ."
#: scene/main/viewport.cpp
+#, fuzzy
msgid "Viewport size must be greater than 0 to render anything."
-msgstr ""
+msgstr "Величина Viewport-а мора бити већа од 0 да би Ñе нешто иÑцртало."
#: scene/resources/visual_shader_nodes.cpp
#, fuzzy
msgid "Invalid source for preview."
-msgstr "Ðеважећа величина фонта."
+msgstr "Ðеважећи извор за преглед."
#: scene/resources/visual_shader_nodes.cpp
#, fuzzy
msgid "Invalid source for shader."
-msgstr "Ðеважећа величина фонта."
+msgstr "Ðеважећи извор за цртач"
#: scene/resources/visual_shader_nodes.cpp
#, fuzzy
msgid "Invalid comparison function for that type."
-msgstr "Ðеважећа величина фонта."
+msgstr "Ðеважећа упоредна функција за зај тип"
#: servers/visual/shader_language.cpp
+#, fuzzy
msgid "Assignment to function."
-msgstr ""
+msgstr "Додељивање функцији."
#: servers/visual/shader_language.cpp
+#, fuzzy
msgid "Assignment to uniform."
-msgstr ""
+msgstr "Додељивање унформи."
#: servers/visual/shader_language.cpp
+#, fuzzy
msgid "Varyings can only be assigned in vertex function."
-msgstr ""
+msgstr "Варијације могу Ñамо бити одређене у функцији тачке."
#: servers/visual/shader_language.cpp
+#, fuzzy
msgid "Constants cannot be modified."
-msgstr ""
+msgstr "КонÑтанте није могуће мењати."
+
+#~ msgid "Not in resource path."
+#~ msgstr "Ðије на пут реÑурÑа."
+
+#~ msgid "Revert"
+#~ msgstr "Врати"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Ова акција Ñе не може опозвати. ÐаÑтави?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Поврати Ñцену"
+
+#, fuzzy
+#~ msgid "Clear Script"
+#~ msgstr "ИÑпразни Скрипту"
#~ msgid "Issue Tracker"
#~ msgstr "Пратилац грешака"
diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po
index a2ae9fccea..e62d152c45 100644
--- a/editor/translations/sr_Latn.po
+++ b/editor/translations/sr_Latn.po
@@ -844,7 +844,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1445,16 +1444,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2380,11 +2371,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Napravi"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2651,10 +2645,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3263,6 +3253,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3849,6 +3843,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6763,15 +6761,15 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "Linearna"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
msgstr ""
@@ -7244,6 +7242,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10222,7 +10229,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10383,6 +10390,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10431,11 +10445,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10555,6 +10569,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10595,6 +10613,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11639,6 +11661,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11662,6 +11688,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/sv.po b/editor/translations/sv.po
index a03a37b533..e316c74160 100644
--- a/editor/translations/sv.po
+++ b/editor/translations/sv.po
@@ -12,12 +12,15 @@
# Toiya <elviraa98@gmail.com>, 2019.
# Fredrik Welin <figgemail@gmail.com>, 2019.
# Mattias Münster <mattiasmun@gmail.com>, 2019.
+# Anonymous <noreply@weblate.org>, 2020.
+# Joakim Lundberg <joakim@joakimlundberg.com>, 2020.
+# Kristoffer Grundström <swedishsailfishosuser@tutanota.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-11-25 04:05+0000\n"
-"Last-Translator: Mattias Münster <mattiasmun@gmail.com>\n"
+"PO-Revision-Date: 2020-06-03 20:09+0000\n"
+"Last-Translator: Kristoffer Grundström <swedishsailfishosuser@tutanota.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/godot-engine/"
"godot/sv/>\n"
"Language: sv\n"
@@ -25,7 +28,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -34,7 +37,7 @@ msgstr "Ogiltligt typargument till convert(), använd TYPE_* konstanter."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "Förväntade en sträng med längden 1 (en karaktär)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -73,31 +76,31 @@ msgstr "I anrop till '%s':"
#: core/ustring.cpp
msgid "B"
-msgstr ""
+msgstr "B"
#: core/ustring.cpp
msgid "KiB"
-msgstr ""
+msgstr "KiB"
#: core/ustring.cpp
msgid "MiB"
-msgstr ""
+msgstr "MiB"
#: core/ustring.cpp
msgid "GiB"
-msgstr ""
+msgstr "GiB"
#: core/ustring.cpp
msgid "TiB"
-msgstr ""
+msgstr "TiB"
#: core/ustring.cpp
msgid "PiB"
-msgstr ""
+msgstr "PiB"
#: core/ustring.cpp
msgid "EiB"
-msgstr ""
+msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
@@ -168,29 +171,24 @@ msgid "Anim Change Call"
msgstr "Anim Ändra Anrop"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Keyframe Time"
-msgstr "Anim Ändra Tid för Nyckebild"
+msgstr "Anim multi-ändring nyckelbildstid"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Transition"
-msgstr "Anim Ändra Övergång"
+msgstr "Anim Fler-Ändra Övergång"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Transform"
-msgstr "Anim Ändra Transformation"
+msgstr "Anim Fler-Ändra Transformation"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Keyframe Value"
-msgstr "Anim Ändra Värde På Nyckelbild"
+msgstr "Anim Fler-Ändra Nyckelbildsvärde"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Call"
-msgstr "Anim Ändra Anrop"
+msgstr "Anim Fler-Ändra Anrop"
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
@@ -203,43 +201,39 @@ msgstr "Ändra Animationsloop"
#: editor/animation_track_editor.cpp
msgid "Property Track"
-msgstr ""
+msgstr "Egenskapsspår"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "3D Transform Track"
-msgstr "Transformera"
+msgstr "3D Transformationsspår"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
-msgstr ""
+msgstr "Anropa Metod Spår"
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
-msgstr ""
+msgstr "Bezier kurvspår"
#: editor/animation_track_editor.cpp
msgid "Audio Playback Track"
-msgstr ""
+msgstr "Ljuduppspelningsspår"
#: editor/animation_track_editor.cpp
msgid "Animation Playback Track"
-msgstr ""
+msgstr "Animationsuppspelningsspår"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation length (frames)"
-msgstr "Animation längd (i sekunder)."
+msgstr "Animation längd (bildrutor)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation length (seconds)"
-msgstr "Animation längd (i sekunder)."
+msgstr "Animationslängd (i sekunder)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track"
-msgstr "Anim Lägg till spår"
+msgstr "Lägg till spår"
#: editor/animation_track_editor.cpp
msgid "Animation Looping"
@@ -259,9 +253,8 @@ msgid "Anim Clips:"
msgstr "Animklipp:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Track Path"
-msgstr "Ändra Arrays Värde"
+msgstr "Ändra spårväg"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
@@ -269,21 +262,19 @@ msgstr "Ändra spårets läge till på/av."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr ""
+msgstr "Uppdateringsläge (Hur denna egenskap sätts)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Interpolation Mode"
-msgstr "Animations-Node"
+msgstr "Interpolationsläge"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr ""
+msgstr "Återgående slingläge (Interpolerar slutet med början på slingan)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Remove this track."
-msgstr "Ta bort valt spår."
+msgstr "Ta bort detta spår."
#: editor/animation_track_editor.cpp
msgid "Time (s): "
@@ -291,7 +282,7 @@ msgstr "Tid (s): "
#: editor/animation_track_editor.cpp
msgid "Toggle Track Enabled"
-msgstr ""
+msgstr "Växla Spår På"
#: editor/animation_track_editor.cpp
msgid "Continuous"
@@ -324,11 +315,11 @@ msgstr "Kubik"
#: editor/animation_track_editor.cpp
msgid "Clamp Loop Interp"
-msgstr ""
+msgstr "Begränsa Sling Interpolering"
#: editor/animation_track_editor.cpp
msgid "Wrap Loop Interp"
-msgstr ""
+msgstr "Återgåendeslinginterpolering"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -348,14 +339,12 @@ msgid "Change Animation Update Mode"
msgstr "Ändra Animationens Uppdateringsläge"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Interpolation Mode"
-msgstr "Animations-Node"
+msgstr "Ändra Animationsinterpoleringsläge"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Loop Mode"
-msgstr "Ändra Anim Loop"
+msgstr "Ändra Animationsslingläge"
#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
@@ -388,6 +377,7 @@ msgstr "Anim Infoga"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr ""
+"Animationsspelaren kan inte animera sig själv, utan bara andra spelare."
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -402,18 +392,16 @@ msgid "Anim Insert Key"
msgstr "Anim Infoga Nyckel"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Step"
-msgstr "Ändra Animationsnamn:"
+msgstr "Ändra Animationssteg"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Rearrange Tracks"
-msgstr "Ändra ordning på Autoloads"
+msgstr "Ändra ordning på spår"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr ""
+msgstr "Applicera Transformationsspår enbart på 3D-noder."
#: editor/animation_track_editor.cpp
msgid ""
@@ -422,22 +410,27 @@ msgid ""
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
msgstr ""
+"Ljudspår kan bara peka på noder av typ:\n"
+"-LjudStrömsSpelare\n"
+"-LjudStrömsSpelare2D\n"
+"-LjudStrömsSpelare3D"
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr ""
+msgstr "Animationsspår kan bara peka på AnimationsSpelar noder."
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
msgstr ""
+"En animationsspelare kan inte animera sig själv, utan bara andra spelare."
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
-msgstr ""
+msgstr "Det är inte möjligt att lägga till ett nytt spår utan en rot-nod"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr ""
+msgstr "Felaktigt spår för Bezier (ej lämplig delegenskap)"
#: editor/animation_track_editor.cpp
msgid "Add Bezier Track"
@@ -456,37 +449,32 @@ msgid "Add Transform Track Key"
msgstr "Lägg till kurvförändringsnyckel"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track Key"
-msgstr "Anim Lägg till spår"
+msgstr "Lägg till spårnyckel"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
-msgstr ""
+msgstr "Spårväg ogiltig, kan således inte lägga till en metod nyckel."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Method Track Key"
-msgstr "Anim Infoga Spår & Nyckel"
+msgstr "Lägg till metodspårnyckel"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Method not found in object: "
-msgstr "VariableGet hittades inte i Skript: "
+msgstr "Metoden hittades inte i objektet: "
#: editor/animation_track_editor.cpp
msgid "Anim Move Keys"
msgstr "Anim Flytta Nycklar"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Clipboard is empty"
-msgstr "Sökvägen är tom"
+msgstr "Urklipp är tomt"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Paste Tracks"
-msgstr "Klistra in Params"
+msgstr "Klistra in spår"
#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
@@ -496,6 +484,8 @@ msgstr "Anim Skala Nycklar"
msgid ""
"This option does not work for Bezier editing, as it's only a single track."
msgstr ""
+"Detta alternativ fungerar ej för att redigera Bezier, då det enbart är ett "
+"spår."
#: editor/animation_track_editor.cpp
msgid ""
@@ -512,16 +502,15 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
-msgstr ""
+msgstr "Varning: Redigerar importerad animation"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select an AnimationPlayer node to create and edit animations."
-msgstr "Välj en AnimationPlayer från Scenträdet för att redigera animationer."
+msgstr "Välj en AnimationsSpelar-nod för att skapa och redigera animationer."
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
-msgstr ""
+msgstr "Visa enbart spår från valda noder i trädet."
#: editor/animation_track_editor.cpp
msgid "Group tracks by node or display them as plain list."
@@ -539,7 +528,7 @@ msgstr "Animation"
#: editor/animation_track_editor.cpp
msgid "Seconds"
-msgstr ""
+msgstr "Sekunder"
#: editor/animation_track_editor.cpp
msgid "FPS"
@@ -575,11 +564,11 @@ msgstr "Skala Från Muspekare"
#: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp
msgid "Duplicate Selection"
-msgstr "Duplicera urval"
+msgstr "Fördubbla val"
#: editor/animation_track_editor.cpp
msgid "Duplicate Transposed"
-msgstr "Duplicera Transponerade"
+msgstr "Fördubbla Transponerade"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -606,11 +595,11 @@ msgstr "Städa upp Animation"
#: editor/animation_track_editor.cpp
msgid "Pick the node that will be animated:"
-msgstr ""
+msgstr "Välj noden som ska animeras:"
#: editor/animation_track_editor.cpp
msgid "Use Bezier Curves"
-msgstr ""
+msgstr "Använd Bezier-kurvor"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -870,7 +859,6 @@ msgstr "Ansluter Signal:"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1515,18 +1503,9 @@ msgstr "Aktivera"
msgid "Rearrange Autoloads"
msgstr "Ändra ordning på Autoloads"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "Ogiltig Sökväg."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Fil existerar inte."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Inte i resursens sökväg."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2533,12 +2512,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Kan inte ladda om en scen som aldrig har sparats."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Återställ"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Spara Scen"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Åtgärden kan inte ångras. Återställ ändå?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
#, fuzzy
@@ -2838,10 +2820,6 @@ msgid "Redo"
msgstr "Ã…ngra"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Återställ Scen"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3476,6 +3454,10 @@ msgstr "Kunde inte köra Skript:"
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Välj Nod(er) att Importera"
@@ -4115,6 +4097,10 @@ msgid "Error running post-import script:"
msgstr "Fel uppstod efter importering av skript:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Sparar..."
@@ -7157,15 +7143,15 @@ msgid ""
msgstr "Anslut '%s' till '%s'"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "Rad:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "Funktion:"
@@ -7656,6 +7642,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10735,8 +10730,9 @@ msgid "Instance Child Scene"
msgstr "Instansiera Barn-Scen"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Fäst Skript"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10906,6 +10902,13 @@ msgid "Open Documentation"
msgstr "Öppna Senaste"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Lägg till Barn-Node"
@@ -10956,12 +10959,14 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "Koppla på ett nytt eller befintligt Skript till vald Node."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr ""
+#, fuzzy
+msgid "Detach the script from the selected node."
+msgstr "Koppla på ett nytt eller befintligt Skript till vald Node."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -11092,6 +11097,10 @@ msgid "A directory with the same name exists."
msgstr "Katalog med samma namn finns redan"
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Fil existerar inte."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "Måste använda en giltigt filändelse."
@@ -11136,6 +11145,11 @@ msgstr ""
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "Ogiltig Sökväg."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "Ogiltigt namn."
@@ -12216,6 +12230,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -12240,6 +12258,32 @@ msgstr "Ogiltigt namn."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12925,6 +12969,18 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Not in resource path."
+#~ msgstr "Inte i resursens sökväg."
+
+#~ msgid "Revert"
+#~ msgstr "Återställ"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Åtgärden kan inte ångras. Återställ ändå?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Återställ Scen"
+
#~ msgid "Replaced %d occurrence(s)."
#~ msgstr "Ersatte %d förekomst(er)."
diff --git a/editor/translations/ta.po b/editor/translations/ta.po
index 7dd9f5f38c..b8ea8d3538 100644
--- a/editor/translations/ta.po
+++ b/editor/translations/ta.po
@@ -836,7 +836,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1437,16 +1436,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2368,11 +2359,13 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
+msgid "Reload Saved Scene"
msgstr ""
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2639,10 +2632,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3250,6 +3239,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3836,6 +3829,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6728,11 +6725,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7203,6 +7200,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10140,7 +10146,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10301,6 +10307,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10347,11 +10360,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10472,6 +10485,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10512,6 +10529,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11546,6 +11567,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11569,6 +11594,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/te.po b/editor/translations/te.po
index a6c727fe89..589064278d 100644
--- a/editor/translations/te.po
+++ b/editor/translations/te.po
@@ -815,7 +815,6 @@ msgstr ""
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1415,16 +1414,8 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2344,11 +2335,13 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
+msgid "Reload Saved Scene"
msgstr ""
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2614,10 +2607,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3223,6 +3212,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3807,6 +3800,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6678,11 +6675,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7152,6 +7149,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10070,7 +10076,7 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
+msgid "Detach Script"
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10228,6 +10234,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10274,11 +10287,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10398,6 +10411,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10438,6 +10455,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11462,6 +11483,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11485,6 +11510,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
diff --git a/editor/translations/th.po b/editor/translations/th.po
index e908dde33c..db7fd6adea 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -5,11 +5,12 @@
# Kaveeta Vivatchai <goodytong@gmail.com>, 2017.
# Poommetee Ketson (Noshyaar) <poommetee@protonmail.com>, 2017-2018.
# Thanachart Monpassorn <nunf_2539@hotmail.com>, 2020.
+# Anonymous <noreply@weblate.org>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-03-31 02:26+0000\n"
+"PO-Revision-Date: 2020-05-26 13:41+0000\n"
"Last-Translator: Thanachart Monpassorn <nunf_2539@hotmail.com>\n"
"Language-Team: Thai <https://hosted.weblate.org/projects/godot-engine/godot/"
"th/>\n"
@@ -18,7 +19,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.0-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -41,7 +42,7 @@ msgstr "ค่าอินพุตผิดพลาด %i (ไม่ผ่าà
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "self ไม่สามารถใช้ได้เนื่องจาà¸à¸­à¸´à¸™à¸ªà¹à¸•à¸™à¸‹à¹Œà¸¡à¸µà¸„่า null (ไม่ผ่าน)"
+msgstr "self ไม่สามารถใช้ได้เนื่องจาภinstance ว่าง (ไม่ผ่าน)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -57,7 +58,7 @@ msgstr "ชื่อดัชนีของ '%s' ผิดพลาด สำà¸
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr "อาà¸à¸´à¸§à¹€à¸¡à¸™à¸•à¹Œà¹„ม่ถูà¸à¸•à¹‰à¸­à¸‡à¹ƒà¸™à¸„อนสตรัภ'%s'"
+msgstr "อาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•à¹Œà¸‚องคอนสตรัค '%s' ผิดพลาด"
#: core/math/expression.cpp
msgid "On call to '%s':"
@@ -97,7 +98,7 @@ msgstr "อิสระ"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
-msgstr "สมดุล"
+msgstr "ความสมดุล"
#: editor/animation_bezier_editor.cpp
msgid "Mirror"
@@ -113,7 +114,7 @@ msgstr "ค่า:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr "เพิ่มคีย์ที่นี่"
+msgstr "เพิ่มปุ่มที่นี่"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
@@ -235,7 +236,7 @@ msgstr "ฟังà¸à¹Œà¸Šà¸±à¸™:"
#: editor/animation_track_editor.cpp
msgid "Audio Clips:"
-msgstr "คลิปเสียง:"
+msgstr "คลิปเสียง"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
@@ -328,9 +329,8 @@ msgid "Change Animation Update Mode"
msgstr "เปลี่ยนโหมดà¸à¸²à¸£à¸­à¸±à¸žà¹€à¸”ทà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Interpolation Mode"
-msgstr "โหนดà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+msgstr "เปลี่ยนโหมดà¸à¸²à¸£à¸›à¸£à¸°à¸¡à¸²à¸“ค่าช่วงของà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/animation_track_editor.cpp
msgid "Change Animation Loop Mode"
@@ -381,9 +381,8 @@ msgid "Anim Insert Key"
msgstr "à¹à¸—รà¸à¸„ีย์à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Step"
-msgstr "à¹à¸à¹‰à¹„ขความเร็วà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+msgstr "à¹à¸à¹‰à¹„ขช่วงของà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/animation_track_editor.cpp
msgid "Rearrange Tracks"
@@ -391,7 +390,7 @@ msgstr "จัดเรียงà¹à¸—ร็à¸"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr ""
+msgstr "à¹à¸›à¸¥à¸‡à¹à¸—ร็à¸à¹€à¸‰à¸žà¸²à¸°à¸—ี่ Spatial-based nodes"
#: editor/animation_track_editor.cpp
msgid ""
@@ -504,9 +503,8 @@ msgid "Group tracks by node or display them as plain list."
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Snap:"
-msgstr "จำà¸à¸±à¸”à¸à¸²à¸£à¹€à¸„ลื่อนย้าย"
+msgstr "สà¹à¸™à¸›:"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -825,7 +823,6 @@ msgstr "ไม่สามารถเชื่อมต่อสัà¸à¸à¸²à¸“
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1434,17 +1431,9 @@ msgstr "เปิด"
msgid "Rearrange Autoloads"
msgstr "จัดลำดับออโต้โหลด"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸œà¸´à¸”พลาด"
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "ไม่พบไฟล์"
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "ไม่อยู่ในโฟลเดอร์รีซอร์ส"
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1940,7 +1929,7 @@ msgstr "ค่าเริ่มต้น:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr "รายชื่อเมท็อด"
+msgstr "เมท็อด"
#: editor/editor_help.cpp
msgid "Theme Properties"
@@ -2384,12 +2373,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "ฉาà¸à¸¢à¸±à¸‡à¹„ม่ได้บันทึภไม่สามารถโหลดใหม่ได้"
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "คืนà¸à¸¥à¸±à¸š"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "บันทึà¸à¸‰à¸²à¸"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "à¸à¸²à¸£à¸„ืนà¸à¸¥à¸±à¸šà¹„ม่สามารถยà¸à¹€à¸¥à¸´à¸à¹„ด้ คืนà¸à¸¥à¸±à¸š?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2667,10 +2659,6 @@ msgid "Redo"
msgstr "ทำซ้ำ"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "คืนà¸à¸¥à¸±à¸šà¸‰à¸²à¸"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "โปรเจà¸à¸•à¹Œà¹à¸¥à¸°à¹€à¸„รื่องมืออื่น ๆ"
@@ -3288,6 +3276,11 @@ msgstr "รันสคริปต์ไม่ได้:"
msgid "Did you forget the '_run' method?"
msgstr "ลืมใส่เมท็อด '_run' หรือไม่?"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr "à¸à¸” Ctrl ค้างเพื่อวาง Getter à¸à¸” Shift ค้างเพื่อวาง generic signature"
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "เลือà¸à¹‚หนดเพื่อนำเข้า"
@@ -3878,6 +3871,10 @@ msgid "Error running post-import script:"
msgstr "ผิดพลาดขณะรันสคริปต์หลังนำเข้า:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸±à¸™à¸—ึà¸..."
@@ -4636,9 +4633,8 @@ msgid "Set the end animation. This is useful for sub-transitions."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition: "
-msgstr "ทรานสิชัน"
+msgstr "ทรานสิชัน: "
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Play Mode:"
@@ -5270,9 +5266,8 @@ msgid "Create Custom Bone(s) from Node(s)"
msgstr "สร้างจุดปะทุจาภMesh"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Clear Bones"
-msgstr "ลบท่าทาง"
+msgstr "ลบโครง"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
@@ -5979,11 +5974,12 @@ msgid "Remove item %d?"
msgstr "ลบไอเทม %d?"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid ""
"Update from existing scene?:\n"
"%s"
-msgstr "อัพเดตจาà¸à¸‰à¸²à¸"
+msgstr ""
+"อัพเดตจาà¸à¸‰à¸²à¸à¸—ี่มีอยู่หรือไม่\n"
+"%s"
#: editor/plugins/mesh_library_editor_plugin.cpp
#, fuzzy
@@ -6601,9 +6597,8 @@ msgid "Close and save changes?"
msgstr "ปิดà¹à¸¥à¸°à¸šà¸±à¸™à¸—ึà¸?"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error writing TextFile:"
-msgstr "ผิดพลาดขณะย้ายไฟล์:\n"
+msgstr "ผิดพลาดขณะย้ายไฟล์:"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
@@ -6887,12 +6882,13 @@ msgstr "ลบà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚ยง '%s' à¸à¸±à¸š '%s'"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Line"
-msgstr "บรรทัด:"
+msgid "[Ignore]"
+msgstr "(ละเว้น)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ละเว้น)"
+#, fuzzy
+msgid "Line"
+msgstr "บรรทัด:"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
@@ -7080,13 +7076,12 @@ msgid "Go to Previous Breakpoint"
msgstr "ไปจุดพัà¸à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²"
#: editor/plugins/shader_editor_plugin.cpp
-#, fuzzy
msgid ""
"This shader has been modified on on disk.\n"
"What action should be taken?"
msgstr ""
-"ไฟล์ต่อไปนี้ในดิสà¸à¹Œà¹ƒà¸«à¸¡à¹ˆà¸à¸§à¹ˆà¸²\n"
-"จะทำอย่างไรต่อไป?:"
+"เชดเดอร์ถูà¸à¹à¸à¹‰à¹„ขบนดิสà¸à¹Œ\n"
+"จะทำอย่างไรต่อไป?"
#: editor/plugins/shader_editor_plugin.cpp
msgid "Shader"
@@ -7393,6 +7388,15 @@ msgid "XForm Dialog"
msgstr "เครื่องมือเคลื่อนย้าย"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Snap Nodes To Floor"
msgstr "จำà¸à¸±à¸”ด้วยเส้นตาราง"
@@ -8260,17 +8264,16 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove selected texture? This will remove all tiles which use it."
-msgstr "ลบรายà¸à¸²à¸£"
+msgstr "ลบเทà¸à¹€à¸ˆà¸­à¸£à¹Œà¸«à¸£à¸·à¸­à¹„ม่ โดยจะลบไทล์ทุà¸à¸­à¸±à¸™à¸—ี่ใช้เทà¸à¹€à¸ˆà¸­à¸£à¹Œà¸™à¸µà¹‰"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "You haven't selected a texture to remove."
-msgstr ""
+msgstr "คุณยังไม่ได้เลือà¸à¹€à¸—à¸à¹€à¸ˆà¸­à¸£à¹Œà¸—ี่จะลบ"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from scene? This will overwrite all current tiles."
-msgstr ""
+msgstr "สร้างจาà¸à¸ªà¸à¸£à¸µà¸™ นี่จะสร้างทับไทล์เดิม"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from scene?"
@@ -8291,16 +8294,16 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete selected Rect."
-msgstr "ลบไฟล์ที่เลือ�"
+msgstr "ลบสี่เหลี่ยมที่เลือà¸"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid ""
"Select current edited sub-tile.\n"
"Click on another Tile to edit it."
-msgstr "เลือà¸à¹„ทล์ย่อยที่à¸à¸³à¸¥à¸±à¸‡à¸›à¸£à¸±à¸šà¹à¸•à¹ˆà¸‡"
+msgstr ""
+"เลือà¸à¹„ทล์ย่อยอันปัจจุบันเพื่อปรับà¹à¸•à¹ˆà¸‡\n"
+"คลิà¸à¸—ี่ไทล์อันอื่นพื่อปรับà¹à¸•à¹ˆà¸‡"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Delete polygon."
@@ -8319,12 +8322,13 @@ msgstr ""
"คลิà¸à¹„ทล์อันอื่นเพื่อปรับà¹à¸•à¹ˆà¸‡"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid ""
"Select sub-tile to use as icon, this will be also used on invalid autotile "
"bindings.\n"
"Click on another Tile to edit it."
-msgstr "เลือà¸à¸£à¸¹à¸›à¸ à¸²à¸žà¸¢à¹ˆà¸­à¸¢à¹€à¸žà¸·à¹ˆà¸­à¸—ำเป็นไอคอน ภาพนี้จะใช้à¹à¸ªà¸”งเมื่อà¸à¸²à¸£"
+msgstr ""
+"เลือà¸à¹„ทล์ย่อยเพื่อใช้เป็นไอคอน สามารถใช้เมื่อ autotile bindings มีความผิดพลาด\n"
+"คลิà¸à¹„ทล์อันอื่นเพื่อà¹à¸à¹‰à¹„ขไทล์นั้น"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -8335,11 +8339,12 @@ msgstr ""
"คลิà¸à¹„ทล์อันอื่นเพื่อà¹à¸à¹‰à¹„ขไทล์นั้น"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid ""
"Select sub-tile to change its z index.\n"
"Click on another Tile to edit it."
-msgstr "เลือà¸à¹„ทล์ย่อยเพื่อจัดลำดับความสำคัà¸"
+msgstr ""
+"เลือà¸à¹„ทล์ย่อยเพื่อเปลี่ยน z index\n"
+"คลิà¸à¸—ี่ไทล์อื่นเพื่อà¹à¸à¹‰à¹„ขไทล์นั้น"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Set Tile Region"
@@ -9477,11 +9482,12 @@ msgid "Resources to export:"
msgstr "รีซอร์สที่จะส่งออà¸:"
#: editor/project_export.cpp
-#, fuzzy
msgid ""
"Filters to export non-resource files/folders\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
-msgstr "ตัวà¸à¸£à¸­à¸‡à¹„ฟล์ที่จะส่งออà¸à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡ (คั่นด้วยจุลภาค ตัวอย่างเช่น: *.json, *.txt)"
+msgstr ""
+"ตัวà¸à¸£à¸­à¸‡à¹„ฟล์ที่จะส่งออà¸à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡\n"
+"(คั่นด้วยจุลภาค ตัวอย่างเช่น: *.json, *.txt, docs/)"
#: editor/project_export.cpp
#, fuzzy
@@ -9499,9 +9505,8 @@ msgid "Make Patch"
msgstr "สร้างà¹à¸žà¸•à¸Šà¹Œ"
#: editor/project_export.cpp
-#, fuzzy
msgid "Pack File"
-msgstr " ไฟล์"
+msgstr "ไฟล์"
#: editor/project_export.cpp
msgid "Features"
@@ -10461,8 +10466,9 @@ msgid "Instance Child Scene"
msgstr "อินสà¹à¸•à¸™à¸‹à¹Œà¸‰à¸²à¸à¸¥à¸¹à¸"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "ลบสคริปต์"
+#, fuzzy
+msgid "Detach Script"
+msgstr "à¹à¸™à¸šà¸ªà¸„ริปต์"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10620,6 +10626,13 @@ msgid "Open Documentation"
msgstr "เปิดคู่มือ"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "เพิ่มโหนดลูà¸"
@@ -10666,11 +10679,13 @@ msgid ""
msgstr "อินสà¹à¸•à¸™à¸‹à¹Œà¸‰à¸²à¸à¹€à¸›à¹‡à¸™à¹‚หนด สร้างฉาà¸à¸ªà¸·à¸šà¸—อดถ้าไม่มีโหนดราà¸"
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "สร้างสคริปต์ให้โหนดที่เลือà¸"
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "ลบสคริปต์ของโหนดที่เลือà¸"
#: editor/scene_tree_dock.cpp
@@ -10810,6 +10825,10 @@ msgid "A directory with the same name exists."
msgstr "มีไดเรà¸à¸—อรีชื่อนี้อยู่à¹à¸¥à¹‰à¸§"
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "ไม่พบไฟล์"
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "นามสà¸à¸¸à¸¥à¹„ม่ถูà¸à¸•à¹‰à¸­à¸‡"
@@ -10853,6 +10872,10 @@ msgid "File exists, it will be reused."
msgstr "มีไฟล์นี้อยู่à¹à¸¥à¹‰à¸§ จะนำมาใช้"
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸œà¸´à¸”พลาด"
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "ชื่อคลาสไม่ถูà¸à¸•à¹‰à¸­à¸‡"
@@ -11894,6 +11917,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11917,6 +11944,32 @@ msgstr "ชื่อà¹à¸žà¹‡à¸„เà¸à¸ˆà¸œà¸´à¸”พลาด:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12631,6 +12684,21 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "ค่าคงที่ไม่สามารถà¹à¸à¹‰à¹„ขได้"
+#~ msgid "Not in resource path."
+#~ msgstr "ไม่อยู่ในโฟลเดอร์รีซอร์ส"
+
+#~ msgid "Revert"
+#~ msgstr "คืนà¸à¸¥à¸±à¸š"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "à¸à¸²à¸£à¸„ืนà¸à¸¥à¸±à¸šà¹„ม่สามารถยà¸à¹€à¸¥à¸´à¸à¹„ด้ คืนà¸à¸¥à¸±à¸š?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "คืนà¸à¸¥à¸±à¸šà¸‰à¸²à¸"
+
+#~ msgid "Clear Script"
+#~ msgstr "ลบสคริปต์"
+
#~ msgid "Issue Tracker"
#~ msgstr "ติดตามปัà¸à¸«à¸²"
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index fdb8f76605..277cc2c807 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -44,12 +44,15 @@
# Zsosu Ktosu <zktosu@gmail.com>, 2020.
# Mesut Aslan <kontinyu@gmail.com>, 2020.
# Kaan Genç <kaan@kaangenc.me>, 2020.
+# Anonymous <noreply@weblate.org>, 2020.
+# Güneş Gümüş <gunes.gumus.001@gmail.com>, 2020.
+# OÄŸuz Ersen <oguzersen@protonmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-04-23 20:21+0000\n"
-"Last-Translator: Anonymous <noreply@weblate.org>\n"
+"PO-Revision-Date: 2020-05-22 21:01+0000\n"
+"Last-Translator: Güneş Gümüş <gunes.gumus.001@gmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/"
"godot/tr/>\n"
"Language: tr\n"
@@ -57,18 +60,16 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.0.2-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr ""
-"\"convert ()\" için geçersiz tür bağımsız değişkeni, \"TYPE_ *\" sabitlerini "
-"kullanın."
+msgstr "convert() için geçersiz türde argüman, TYPE_* sabitlerini kullanın."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "1 (karakter) uzunlukta metin bekleniyor."
+msgstr "1 uzunluÄŸunda bir metin (bir karakter) bekleniyor."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -354,7 +355,7 @@ msgstr "Döngü Aradeğerlemesin Sar"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr "Yeni Anahtar"
+msgstr "Anahtar Ekle"
#: editor/animation_track_editor.cpp
msgid "Duplicate Key(s)"
@@ -532,12 +533,12 @@ msgstr ""
"Bu animasyon içe aktarılmış bir sahneye ait, bu yüzden içe aktarılan "
"parçalara yapılan değişiklikler kaydedilmeyecek.\n"
"\n"
-"Özel parça ekleme özelliğini aktif etmek için, sahnenin içe aktarma "
-"ayarlarına gidin ve \"Animasyon > Depolama\" ayarını \"Dosyalama\" olarak "
-"ayarlayın, \"Animasyon > Özel Parçaları Sakla\"ayarını aktif edin ve sonra "
-"tekrar içe aktarın.\n"
-"Alternatif olarak, animasyonları ayrı dosyalara aktaran bir içe aktarma "
-"hazır ayarı kullanabilirsiniz."
+"Özel parça ekleme özelliğini etkinleştirmek için, sahnenin içe aktarma "
+"ayarlarına gidin ve \"Animasyon > Depolama\"\n"
+"ayarını \"Dosyalama\" olarak ayarlayın, \"Animasyon > Özel Parçaları Sakla\" "
+"ayarını etkinleştirin ve sonra tekrar içe aktarın.\n"
+"Alternatif olarak, animasyonları ayrı dosyalara aktaran bir içe aktarma ön "
+"ayarı kullanabilirsiniz."
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
@@ -878,7 +879,6 @@ msgstr "Sinyale bağlanamıyor"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -899,7 +899,7 @@ msgstr "Sinyal:"
#: editor/connections_dialog.cpp
msgid "Connect '%s' to '%s'"
-msgstr "Bunu '%s' ÅŸuna '%s' baÄŸla"
+msgstr "'%s' sinyalini '%s' yöntemine bağla"
#: editor/connections_dialog.cpp
msgid "Disconnect '%s' from '%s'"
@@ -1216,7 +1216,7 @@ msgstr ""
#: editor/editor_about.cpp
msgid "All Components"
-msgstr "Tüm Bileşenler"
+msgstr "Tüm Bileşenler"
#: editor/editor_about.cpp
msgid "Components"
@@ -1490,17 +1490,9 @@ msgstr "Etkin"
msgid "Rearrange Autoloads"
msgstr "KendindenYüklenme'leri Yeniden Sırala"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Geçersiz yol."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Dosya yok."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Kaynak yolunda deÄŸil."
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1726,7 +1718,7 @@ msgstr ""
#: editor/editor_feature_profile.cpp
msgid "Error saving profile to path: '%s'."
-msgstr "Profil yolu kaydetme hatası: '%s'."
+msgstr "Profil '%s' yoluna kaydedilirken hata oluÅŸtu."
#: editor/editor_feature_profile.cpp
msgid "Unset"
@@ -2432,7 +2424,7 @@ msgstr "Bu işlem bir sahne olmadan yapılamaz."
#: editor/editor_node.cpp
msgid "Export Mesh Library"
-msgstr "Örüntü Betikevini Dışa Aktar"
+msgstr "Örüntü Kütüphanesini Dışa Aktar"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
@@ -2455,12 +2447,15 @@ msgid "Can't reload a scene that was never saved."
msgstr "Hiç kaydedilmemiş bir sahne yeniden yüklenemiyor."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "Geri dön"
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "Sahne Kaydet"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Bu eylem geri alınamaz. Yine de geri dönsün mü?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2484,7 +2479,7 @@ msgstr "Kaydet & Çık"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr "Çıkmadan önce değişiklikler aşağıdaki sahneye(lere) kaydedilsin mi?"
+msgstr "Çıkmadan önce değişiklikler aşağıdaki sahne(ler)e kaydedilsin mi?"
#: editor/editor_node.cpp
msgid "Save changes the following scene(s) before opening Project Manager?"
@@ -2497,8 +2492,8 @@ msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
msgstr ""
-"Bu seçenek artık kullanılmıyor. Yenilemeye zorlayan durumlar bug olarak "
-"değerlendirilir. Lütfen bildirin."
+"Bu seçenek artık kullanılmıyor. Yenilemenin zorlanması gereken durumlar "
+"artık hata olarak değerlendiriliyor. Lütfen bildirin."
#: editor/editor_node.cpp
msgid "Pick a Main Scene"
@@ -2739,16 +2734,12 @@ msgstr "TileSet ..."
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Undo"
-msgstr "Geri"
+msgstr "Geri al"
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Redo"
-msgstr "Geri"
-
-#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Sahneyi Eski Durumuna Çevir"
+msgstr "Yeniden yap"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
@@ -2913,7 +2904,7 @@ msgstr "Ekran Görüntüleri Düzenleyici Verileri/Ayarları Klasöründe saklan
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr "Tam Ekran Aç / Kapat"
+msgstr "Tam Ekranı Aç/Kapat"
#: editor/editor_node.cpp
msgid "Toggle System Console"
@@ -3077,8 +3068,14 @@ msgid ""
"the \"Use Custom Build\" option should be enabled in the Android export "
"preset."
msgstr ""
-"Bu, kaynak şablonlarını \"res://android/build\" yoluna yükleyerek, projenizi "
-"isteğe dayalı Android inşasına ayarlayacaktır."
+"Bu, kaynak şablonunu \"res://android/build\" dizinine kurarak projenizi özel "
+"Android derlemeleri için ayarlayacaktır.\n"
+"Daha sonra dışa aktarırken değişiklikleri uygulayabilir ve kendi özel "
+"APK'nızı oluşturabilirsiniz (modül ekleme, AndroidManifest.xml dosyasını "
+"deÄŸiÅŸtirme vb.).\n"
+"Önceden oluşturulmuş APK'ları kullanmak yerine özel derlemeler yapmak için "
+"Android dışa aktarma ön ayarında \"Özel Derleme Kullan\" seçeneğinin "
+"etkinleştirilmesi gerektiğini unutmayın."
#: editor/editor_node.cpp
msgid ""
@@ -3125,11 +3122,11 @@ msgstr "Seç"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
-msgstr "Düzenleyicide Aç"
+msgstr "2B Düzenleyiciyi Aç"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
-msgstr "3B Düzenleyicide Aç"
+msgstr "3B Düzenleyiciyi Aç"
#: editor/editor_node.cpp
msgid "Open Script Editor"
@@ -3250,7 +3247,7 @@ msgstr "Katman"
#: editor/editor_properties.cpp
msgid "Bit %d, value %d"
-msgstr "Bit %d, deÄŸer %d"
+msgstr "Bit %d, deÄŸer %d"
#: editor/editor_properties.cpp
msgid "[Empty]"
@@ -3392,6 +3389,13 @@ msgstr "Betik çalıştırılamadı:"
msgid "Did you forget the '_run' method?"
msgstr "'_run()' metodunu unuttunuz mu?"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Alıcı bırakmak için Ctrl'e basılı tutun. Genel imza bırakmak için Shift'e "
+"basılı tutun."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Düğüm(leri) içe Aktarmak için Seç"
@@ -3990,6 +3994,10 @@ msgid "Error running post-import script:"
msgstr "sonradan-içe aktarılmış betik çalıştırılırken hata:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Kaydediliyor..."
@@ -4444,7 +4452,7 @@ msgstr "Süzgeçlenmiş Parçaları Düzenle:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Enable Filtering"
-msgstr "Süzgeçlemeyi Aç"
+msgstr "Süzgeçlemeyi Aç"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
@@ -5384,7 +5392,7 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Reset"
-msgstr "Yakınlaşmayı Sıfırla"
+msgstr "Yakınlaştırmayı Sıfırla"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5839,7 +5847,7 @@ msgstr "Eğri Doğrusal Tanjantını Aç/Kapa"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Hold Shift to edit tangents individually"
-msgstr "Tanjantları tek tek düzenlemek için Shift'e basılı tut"
+msgstr "Tanjantları bireysel olarak düzenlemek için Shift tuşuna basılı tutun"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Right click to add point"
@@ -5875,7 +5883,7 @@ msgstr "Örüntü boş!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Couldn't create a Trimesh collision shape."
-msgstr "Trimesh çarpışma şekli oluşturulamadı."
+msgstr "Üçlü Örüntü çarpışma yüzeyi oluşturulamadı."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
@@ -5911,7 +5919,7 @@ msgstr "Herhangi bir çarpışma şekli oluşturulamadı."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Shapes"
-msgstr "Dışbükey Şekilleri Oluştur"
+msgstr "Çoklu Dışbükey Şekiller Oluştur"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
@@ -6934,12 +6942,13 @@ msgstr ""
"'%s' düğümünden '%s' düğümüne, '%s' sinyali için '%s' bağlantı metodu eksik."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "Satır"
+#, fuzzy
+msgid "[Ignore]"
+msgstr "(gözardı et)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(gözardı et)"
+msgid "Line"
+msgstr "Satır"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7413,6 +7422,15 @@ msgid "XForm Dialog"
msgstr "XForm Ä°letiÅŸim Kutusu"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Düğümleri zemine hizala"
@@ -9927,6 +9945,9 @@ msgid ""
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
+"Arama kutusu, projeleri adına ve son yol bileşenine göre filtreler.\n"
+"Projeleri adına ve tam yoluna göre filtrelemek için, sorgunun en az bir `/` "
+"karakteri içermesi gereklidir."
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -10081,7 +10102,7 @@ msgstr "'%s' özelliği mevcut değil."
#: editor/project_settings_editor.cpp
msgid "Setting '%s' is internal, and it can't be deleted."
-msgstr "Ayar '%s' dahilidir silinemez."
+msgstr "'%s' ayarı dahilidir ve silinemez."
#: editor/project_settings_editor.cpp
msgid "Delete Item"
@@ -10290,7 +10311,7 @@ msgstr "Bir Düğüm Seç"
#: editor/property_editor.cpp
msgid "Bit %d, val %d."
-msgstr "Bit %d, val %d."
+msgstr "Bit %d, deÄŸer %d."
#: editor/property_selector.cpp
msgid "Select Property"
@@ -10425,9 +10446,8 @@ msgid "Regular Expression Error"
msgstr "Düzenli İfade Hatası"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "At character %s"
-msgstr "Geçerli karakterler:"
+msgstr "%s karakterinde"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent Node"
@@ -10494,8 +10514,9 @@ msgid "Instance Child Scene"
msgstr "Çocuk Sahnesini Örnekle"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "BetiÄŸi Temizle"
+#, fuzzy
+msgid "Detach Script"
+msgstr "Betik Ä°liÅŸtir"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10660,6 +10681,13 @@ msgid "Open Documentation"
msgstr "Klavuzu Aç"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Çocuk Düğüm Ekle"
@@ -10708,11 +10736,13 @@ msgstr ""
"alınmış bir sahne oluşturur."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "Seçili düğüm için yeni veya mevcut bir betik iliştir."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "Seçilen düğüm için betik temizle."
#: editor/scene_tree_dock.cpp
@@ -10844,6 +10874,10 @@ msgid "A directory with the same name exists."
msgstr "Aynı isimde dizin zaten var."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Dosya yok."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Geçersiz uzantı."
@@ -10884,6 +10918,10 @@ msgid "File exists, it will be reused."
msgstr "Dosya mevcut, yeniden kullanılacak."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Geçersiz yol."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Geçersiz sınıf ismi."
@@ -11044,9 +11082,8 @@ msgid "Total:"
msgstr "Toplam:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Export list to a CSV file"
-msgstr "Profil Dışa Aktar"
+msgstr "Listeyi CSV dosyasına aktar"
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
@@ -11928,6 +11965,13 @@ msgstr ""
"yapılandırılmamış."
#: platform/android/export/export.cpp
+#, fuzzy
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"Anahtar deposunda Hata Ayıklayıcı Ayarları'nda veya ön ayarda "
+"yapılandırılmamış."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"Özel derleme için Editör Ayarları'nda geçerli bir Android SDK yolu gerekir."
@@ -11953,6 +11997,32 @@ msgstr "Geçersiz paket ismi:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12733,6 +12803,21 @@ msgstr "varyings yalnızca vertex işlevinde atanabilir."
msgid "Constants cannot be modified."
msgstr "Sabit deÄŸerler deÄŸiÅŸtirilemez."
+#~ msgid "Not in resource path."
+#~ msgstr "Kaynak yolunda deÄŸil."
+
+#~ msgid "Revert"
+#~ msgstr "Geri dön"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Bu eylem geri alınamaz. Yine de geri dönsün mü?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Sahneyi Eski Durumuna Çevir"
+
+#~ msgid "Clear Script"
+#~ msgstr "BetiÄŸi Temizle"
+
#~ msgid "Issue Tracker"
#~ msgstr "Sorun Ä°zleyici"
diff --git a/editor/translations/uk.po b/editor/translations/uk.po
index e713e79a4c..75cce04e0e 100644
--- a/editor/translations/uk.po
+++ b/editor/translations/uk.po
@@ -13,11 +13,12 @@
# ÐлекÑандр <ol-vin@mail.ru>, 2018.
# Богдан Матвіїв <bomtvv@gmail.com>, 2019.
# Tymofij Lytvynenko <till.svit@gmail.com>, 2020.
+# Vladislav Glinsky <cl0ne@mithril.org.ua>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Ukrainian (Godot Engine)\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-01 11:43+0000\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/"
"godot/uk/>\n"
@@ -27,24 +28,24 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.0.2\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
msgstr ""
-"Ðекоректний тип аргументу Ð´Ð»Ñ convert(), Ñлід викориÑтовувати конÑтанту "
+"Ðекоректний тип аргументу Ð´Ð»Ñ convert(), Ñлід викориÑтовувати конÑтанти "
"TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "Мало бути вказано Ñ€Ñдок довжини 1 (Ñимвол)."
+msgstr "ОчікувавÑÑ Ñ€Ñдок довжиною 1 (Ñимвол)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "ÐедоÑтатньо байтів Ð´Ð»Ñ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ вказано некоректний формат."
+msgstr "ÐедоÑтатньо байтів Ð´Ð»Ñ Ñ—Ñ… Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ вказано некоректний формат."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -53,7 +54,8 @@ msgstr "Ðекоректні вхідні дані %i (не передано) у
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
msgstr ""
-"не можна викориÑтовувати self, оÑкільки екземплÑÑ€ Ñ” порожнім (не передано)"
+"неможливо викориÑтовувати self, оÑкільки екземплÑÑ€ має Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ null (не "
+"передано)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -65,15 +67,15 @@ msgstr "Ðекоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ‚Ð¸Ð¿Ñƒ %s Ð´Ð»Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr "Ðекоректний іменований Ñ–Ð½Ð´ÐµÐºÑ Â«%s» Ð´Ð»Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ типу %s"
+msgstr "Ðекоректний іменований Ñ–Ð½Ð´ÐµÐºÑ \"%s\" Ð´Ð»Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ типу %s"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr "Ðекоректні аргументи Ð´Ð»Ñ Ð¿Ð¾Ð±ÑƒÐ´Ð¾Ð²Ð¸ «%s»"
+msgstr "Ðекоректні аргументи Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ \"%s\""
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr "При виклику «%s»:"
+msgstr "При виклику \"%s\":"
#: core/ustring.cpp
msgid "B"
@@ -105,15 +107,15 @@ msgstr "ЕіБ"
#: editor/animation_bezier_editor.cpp
msgid "Free"
-msgstr "Вивільнити"
+msgstr "Вільні"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
-msgstr "ЗбаланÑована"
+msgstr "БаланÑовані"
#: editor/animation_bezier_editor.cpp
msgid "Mirror"
-msgstr "Віддзеркалити"
+msgstr "Віддзеркалені"
#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
msgid "Time:"
@@ -125,7 +127,7 @@ msgstr "ЗначеннÑ:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr "Тут Ñлід вÑтавити ключ"
+msgstr "Ð’Ñтавити ключ тут"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
@@ -574,7 +576,7 @@ msgstr "МаÑштаб від курÑору"
#: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp
msgid "Duplicate Selection"
-msgstr "Дублювати виділене"
+msgstr "Дублювати позначене"
#: editor/animation_track_editor.cpp
msgid "Duplicate Transposed"
@@ -854,7 +856,6 @@ msgstr "Ðе вдалоÑÑ Ð·'єднати Ñигнал"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1212,7 +1213,7 @@ msgstr "%s (вже Ñ–Ñнує)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
-msgstr "Ð Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ñ–Ð²"
+msgstr "Ð Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑів"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "The following files failed extraction from package:"
@@ -1448,7 +1449,7 @@ msgstr "Перейменувати автозавантаженнÑ"
#: editor/editor_autoload_settings.cpp
msgid "Toggle AutoLoad Globals"
-msgstr "Увімкнути Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñкриптів"
+msgstr "Увімкнути Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñкриптів"
#: editor/editor_autoload_settings.cpp
msgid "Move Autoload"
@@ -1460,23 +1461,15 @@ msgstr "Видалити автозавантаженнÑ"
#: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp
msgid "Enable"
-msgstr "Ðктивувати"
+msgstr "Увімкнути"
#: editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
msgstr "Змінити порÑдок автозавантажень"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "Ðеправильний шлÑÑ…."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Файл не Ñ–Ñнує."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "Ðе в реÑурÑному шлÑху."
+msgid "Can't add autoload:"
+msgstr "Ðе вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ автозавантаженнÑ:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1628,7 +1621,7 @@ msgstr "Редактор Ñкриптів"
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
-msgstr "Бібліотека активів"
+msgstr "Бібліотека реÑурÑів"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
@@ -1934,7 +1927,7 @@ msgstr ""
#: editor/editor_file_system.cpp
msgid "(Re)Importing Assets"
-msgstr "Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ñ–Ð²"
+msgstr "Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑів"
#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
msgid "Top"
@@ -2434,12 +2427,17 @@ msgid "Can't reload a scene that was never saved."
msgstr "Ðеможливо перезавантажити Ñцену, Ñку ніколи не зберігали."
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "ПовернутиÑÑ"
+msgid "Reload Saved Scene"
+msgstr "ÐŸÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾Ñ— Ñцени"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Цю дію не можна ÑкаÑувати. ПовернутиÑÑ Ð² будь-Ñкому випадку?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
+"Зміни до поточної Ñцени не збережено.\n"
+"Перезавантажити збережену Ñцену попри це? ÐаÑлідки Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ можна "
+"буде ÑкаÑувати."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2493,8 +2491,8 @@ msgstr "Повторно відкрити закриту Ñцену"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
msgstr ""
-"Ðе вдаєтьÑÑ Ð²Ð²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸ плагін addon: '%s' не вдалоÑÑ Ð¿Ñ€Ð¾Ð°Ð½Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ "
-"Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ—."
+"Ðе вдалоÑÑ Ð²Ð²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸ додаток addon: «%s» не вдалоÑÑ Ð¿Ñ€Ð¾Ð°Ð½Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ "
+"налаштуваннÑ."
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
@@ -2730,10 +2728,6 @@ msgid "Redo"
msgstr "Повернути"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "Повернути Ñцену"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "Різні проєктні або Ñценографічні інÑтрументи."
@@ -3126,7 +3120,7 @@ msgstr "Відкрити редактор Ñкриптів"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
-msgstr "Відкрити бібліотеку активів"
+msgstr "Відкрити бібліотеку реÑурÑів"
#: editor/editor_node.cpp
msgid "Open the next Editor"
@@ -3381,6 +3375,12 @@ msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити Ñкрипт:"
msgid "Did you forget the '_run' method?"
msgstr "Ви забули метод '_run'?"
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+"Утримуйте натиÑнутою Ctrl, щоб заокруглити до цілих. Утримуйте натиÑнутою "
+"Shift, щоб зміни були точнішими."
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Виберіть вузол(вузли) Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ"
@@ -3977,6 +3977,10 @@ msgid "Error running post-import script:"
msgstr "Помилка запуÑку піÑÐ»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ Ñкрипту:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr "Повернули об'єкт, що походить від Node, у методі «post_import()»?"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "ЗбереженнÑ..."
@@ -4016,8 +4020,8 @@ msgstr "Зміна типу імпортованого файла потребу
msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
-"Увага: Ñ–Ñують об'єкти, Ñкі викориÑтовують цей реÑурÑ, — вони можуть "
-"припинити завантажуватиÑÑ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¼ чином."
+"УВÐГÐ: Ñ–Ñнують об'єкти, що викориÑтовують цей реÑÑƒÑ€Ñ Ñ‚Ð° можуть припинити "
+"завантажуватиÑÑ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¼ чином."
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
@@ -4958,7 +4962,7 @@ msgstr "Помилка перевірки Ñ…ÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ sha256"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ñƒ:"
+msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€ÐµÑурÑу:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading (%s / %s)..."
@@ -4994,7 +4998,7 @@ msgstr "Помилка завантаженнÑ"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download for this asset is already in progress!"
-msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ активу вже виконуєтьÑÑ!"
+msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ реÑурÑу вже виконуєтьÑÑ!"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Recently Updated"
@@ -5083,7 +5087,7 @@ msgstr "ЗавантаженнÑ…"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
-msgstr "ZIP файл активів"
+msgstr "ZIP файл реÑурÑів"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -6933,12 +6937,12 @@ msgstr ""
"«%s»."
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "РÑдок"
+msgid "[Ignore]"
+msgstr "[Ігнорувати]"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(ігнорувати)"
+msgid "Line"
+msgstr "РÑдок"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7414,6 +7418,20 @@ msgid "XForm Dialog"
msgstr "Вікно XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+"Клацніть Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¼Ñ–Ð¶ Ñтанами видимоÑÑ‚Ñ–.\n"
+"\n"
+"Відкрите око: Gizmo є видимим.\n"
+"Закрите око: Gizmo приховано.\n"
+"Ðапівзакрите око: Gizmo Ñ” також видимим крізь непрозорі поверхні («рентген»)."
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Приліпити вузли до підлоги"
@@ -9835,8 +9853,9 @@ msgid ""
"Can't run project: Assets need to be imported.\n"
"Please edit the project to trigger the initial import."
msgstr ""
-"Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити проєкт: Ñлід імпортувати вміÑÑ‚.\n"
-"Будь лаÑка, змініть проєкт так, щоб увімкнути початкове імпортуваннÑ."
+"Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити проєкт: Ñлід імпортувати реÑурÑи.\n"
+"Будь лаÑка, відкрийте проєкт на редагуваннÑ, щоб запуÑтити початкове "
+"імпортуваннÑ."
#: editor/project_manager.cpp
msgid "Are you sure to run %d projects at once?"
@@ -9928,8 +9947,8 @@ msgid ""
"You currently don't have any projects.\n"
"Would you like to explore official example projects in the Asset Library?"
msgstr ""
-"Зараз проєктів немає.\n"
-"Хочете вивчити проєкти офіційних прикладів з бібліотеки даних?"
+"Ðаразі у Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” проєктів.\n"
+"Бажаєте переглÑнути офіційні приклади проєктів з бібліотеки реÑурÑів?"
#: editor/project_manager.cpp
msgid ""
@@ -10508,8 +10527,8 @@ msgid "Instance Child Scene"
msgstr "Створити екземплÑÑ€ дочірньої Ñцени"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "Вилучити Ñкрипт"
+msgid "Detach Script"
+msgstr "Від'єднати Ñкрипт"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10674,6 +10693,16 @@ msgid "Open Documentation"
msgstr "Відкрити документацію"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+"Ðе вдалоÑÑ Ð´Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ Ñкрипт: не зареєÑтровано жодної мови.\n"
+"Ймовірно, причиною Ñ” те, що цей редактор було зібрано із вимкненими модулÑми "
+"уÑÑ–Ñ… мов."
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Додати дочірній вузол"
@@ -10722,12 +10751,12 @@ msgstr ""
"кореневого вузла не Ñ–Ñнує."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr "Долучити новий або наÑвний Ñкрипт до позначеного вузла."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr "Вилучити Ñкрипт Ð´Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ вузла."
+msgid "Detach the script from the selected node."
+msgstr "Від'єднати Ñкрипт від позначеного вузла."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10858,6 +10887,10 @@ msgid "A directory with the same name exists."
msgstr "Каталог із такою назвою вже Ñ–Ñнує."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Файл не Ñ–Ñнує."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "Ðекоректний ÑуфікÑ."
@@ -10898,6 +10931,10 @@ msgid "File exists, it will be reused."
msgstr "Файл вже Ñ–Ñнує, його буде викориÑтано повторно."
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "Ðеправильний шлÑÑ…."
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "Ðекоректна назва клаÑу."
@@ -11948,6 +11985,11 @@ msgstr ""
"ключів."
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+"У шаблоні екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾ налаштовано Ñховище ключів випуÑку."
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
"Ðетипове Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” коректного шлÑху до SDK Ð´Ð»Ñ Android у параметрах "
@@ -11977,6 +12019,42 @@ msgstr "Ðекоректна назва пакунка:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+"Ðекоректний модуль «GodotPaymentV3» включено до параметрів проєкту «android/"
+"modules» (змінено у Godot 3.2.2).\n"
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+"Щоб можна було кориÑтуватиÑÑ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ°Ð¼Ð¸, Ñлід позначити пункт "
+"«ВикориÑтовувати нетипову збірку»."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+"«.Степені Ñвободи» працюють, лише Ñкщо «Режим Xr» має Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«Oculus "
+"Mobile VR»."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"«СтеженнÑм за руками» можна ÑкориÑтатиÑÑ, лише Ñкщо «Режим Xr» дорівнює "
+"«Oculus Mobile VR»."
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"«ВрахуваннÑм фокуÑа» можна ÑкориÑтатиÑÑ, лише Ñкщо «Режим Xr» дорівнює "
+"«Oculus Mobile VR»."
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12772,6 +12850,21 @@ msgstr "Змінні величини можна пов'Ñзувати лише
msgid "Constants cannot be modified."
msgstr "Сталі не можна змінювати."
+#~ msgid "Not in resource path."
+#~ msgstr "Ðе в реÑурÑному шлÑху."
+
+#~ msgid "Revert"
+#~ msgstr "ПовернутиÑÑ"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Цю дію не можна ÑкаÑувати. ПовернутиÑÑ Ð² будь-Ñкому випадку?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "Повернути Ñцену"
+
+#~ msgid "Clear Script"
+#~ msgstr "Вилучити Ñкрипт"
+
#~ msgid "Issue Tracker"
#~ msgstr "ВідÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº"
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index 432a8d1137..10558ad98e 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -829,7 +829,6 @@ msgstr ".تمام کا انتخاب"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1437,18 +1436,9 @@ msgstr ""
msgid "Rearrange Autoloads"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr ""
-
#: editor/editor_autoload_settings.cpp
-#, fuzzy
-msgid "Not in resource path."
-msgstr ".ÛŒÛ Ø±ÛŒØ³ÙˆØ±Ø³ Ùائل پر مبنی Ù†ÛÛŒ ÛÛ’"
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2390,11 +2380,14 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "سب سکریپشن بنائیں"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2664,10 +2657,6 @@ msgid "Redo"
msgstr ""
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3282,6 +3271,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr ""
@@ -3882,6 +3875,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr ""
@@ -6829,11 +6826,11 @@ msgid ""
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
+msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
+msgid "Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -7312,6 +7309,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10312,7 +10318,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
-msgid "Clear Script"
+msgid "Detach Script"
msgstr "سب سکریپشن بنائیں"
#: editor/scene_tree_dock.cpp
@@ -10475,6 +10481,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10523,11 +10536,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -10651,6 +10664,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr ""
@@ -10692,6 +10709,10 @@ msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr ""
@@ -11755,6 +11776,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11778,6 +11803,32 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12420,6 +12471,14 @@ msgid "Constants cannot be modified."
msgstr ""
#, fuzzy
+#~ msgid "Not in resource path."
+#~ msgstr ".ÛŒÛ Ø±ÛŒØ³ÙˆØ±Ø³ Ùائل پر مبنی Ù†ÛÛŒ ÛÛ’"
+
+#, fuzzy
+#~ msgid "Clear Script"
+#~ msgstr "سب سکریپشن بنائیں"
+
+#, fuzzy
#~ msgid "Class Description"
#~ msgstr "سب سکریپشن بنائیں"
diff --git a/editor/translations/vi.po b/editor/translations/vi.po
index a52a3dedf3..fe846d5e08 100644
--- a/editor/translations/vi.po
+++ b/editor/translations/vi.po
@@ -846,7 +846,6 @@ msgstr "Không thể kết nối tín hiệu"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1463,17 +1462,8 @@ msgstr "Mở"
msgid "Rearrange Autoloads"
msgstr "Sắp xếp lại Autoloads"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "ÄÆ°á»ng dẫn sai."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "Tệp không tồn tại."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
+msgid "Can't add autoload:"
msgstr ""
#: editor/editor_autoload_settings.cpp
@@ -2434,12 +2424,14 @@ msgstr "Không thể nạp má»™t cảnh mà chÆ°a lÆ°u bao giá»."
#: editor/editor_node.cpp
#, fuzzy
-msgid "Revert"
-msgstr "Trở lại"
+msgid "Reload Saved Scene"
+msgstr "Lưu Cảnh"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "Hành động này không thể hoàn tác. Trở lại luôn?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2719,10 +2711,6 @@ msgid "Redo"
msgstr "Làm lại"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3349,6 +3337,10 @@ msgstr ""
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "Chá»n Nút để Nhập"
@@ -3949,6 +3941,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "Äang lÆ°u ..."
@@ -6919,15 +6915,15 @@ msgstr ""
"Không có phương thức kết nối '%s' của tín hiệu '%s' từ nút '%s' đến nút '%s'."
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "Dòng:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "Thêm Hàm"
@@ -7408,6 +7404,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "Snap các nút đến Floor"
@@ -10439,8 +10444,9 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+#, fuzzy
+msgid "Detach Script"
+msgstr "Äính kèm Script"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10603,6 +10609,13 @@ msgid "Open Documentation"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "Thêm nút con"
@@ -10651,11 +10664,13 @@ msgstr ""
"Tệp tin cảnh giống như một nút. Tạo một cảnh kế thừa nếu nó không có nút gốc."
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "Äính kèm má»™t tệp lệnh cho nút đã chá»n."
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "Xoá tệp lệnh khá»i nút đã chá»n."
#: editor/scene_tree_dock.cpp
@@ -10788,6 +10803,10 @@ msgid "A directory with the same name exists."
msgstr "Äã có má»™t file hoặc folder trùng tên."
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "Tệp không tồn tại."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "Phải sử dụng extension có hiệu lực"
@@ -10832,6 +10851,11 @@ msgstr ""
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "ÄÆ°á»ng dẫn sai."
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "Kích thước font không hợp lệ."
@@ -11896,6 +11920,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -11920,6 +11948,32 @@ msgstr "Kích thước font không hợp lệ."
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12574,6 +12628,13 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Không thể chỉnh sửa hằng số."
+#, fuzzy
+#~ msgid "Revert"
+#~ msgstr "Trở lại"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "Hành động này không thể hoàn tác. Trở lại luôn?"
+
#~ msgid "Issue Tracker"
#~ msgstr "Theo dõi vấn Ä‘á»"
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index 538e017a5d..5dc2b5948f 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -60,12 +60,16 @@
# silentbird <silentbird520@outlook.com>, 2019.
# Haoyu Qiu <timothyqiu32@gmail.com>, 2019, 2020.
# Revan Ji <jiruifancr@gmail.com>, 2020.
+# nieyuanhong <15625988003@163.com>, 2020.
+# binotaliu <binota@protonmail.ch>, 2020.
+# BinotaLIU <binota@protonmail.ch>, 2020.
+# Tim Bao <honiebao@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Chinese (Simplified) (Godot Engine)\n"
"POT-Creation-Date: 2018-01-20 12:15+0200\n"
-"PO-Revision-Date: 2020-05-01 11:42+0000\n"
-"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
+"Last-Translator: Tim Bao <honiebao@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hans/>\n"
"Language: zh_CN\n"
@@ -73,7 +77,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.0.2\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -82,25 +86,25 @@ msgstr "convert()çš„å‚数类型无效,请使用TYPE_*常é‡ã€‚"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "预期为长度为1的字符串(一个字符)。"
+msgstr "仅需è¦é•¿åº¦ä¸º1的字符串(1字符)。"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "解ç çš„字节ä¸è¶³ï¼Œæˆ–æ ¼å¼æ— æ•ˆã€‚"
+msgstr "没有足够的字节æ¥è§£ç ï¼Œæˆ–æ ¼å¼æ— æ•ˆã€‚"
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "表达å¼ä¸­çš„输入 %i 无效(未传递)"
+msgstr "表达å¼ä¸­åŒ…å«å¾—%i无效(未传递)"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "self 无法使用,因为实例为空(未传递)"
+msgstr "实例为null(未传递),无法传递自身self"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr "æ“作符 %s çš„æ“作数 %s å’Œ %s 无效。"
+msgstr "æ“作符 %s ,%s å’Œ %s çš„æ“作数无效。"
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
@@ -108,15 +112,15 @@ msgstr "将 %s 类型作为 %s 基础类型的索引无效"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr "将“%sâ€ä½œä¸º %s 基础类型的具å索引无效"
+msgstr "å°† '%s' 作为 %s 基础类型的具å索引无效"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr "构造“%sâ€çš„å‚数无效"
+msgstr "构造 '%s' çš„å‚数无效"
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr "调用“%sâ€æ—¶ï¼š"
+msgstr "在调用'%s'时:"
#: core/ustring.cpp
msgid "B"
@@ -881,7 +885,6 @@ msgstr "无法连接信å·"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1489,17 +1492,9 @@ msgstr "å¯ç”¨"
msgid "Rearrange Autoloads"
msgstr "é‡æŽ’åºAutoload"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "Invalid path."
-msgstr "路径无效。"
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "文件ä¸å­˜åœ¨ã€‚"
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "ä¸åœ¨èµ„æºè·¯å¾„下。"
+msgid "Can't add autoload:"
+msgstr "无法加载autoload:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1874,7 +1869,7 @@ msgstr "切æ¢æ¨¡å¼"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr "设置路径焦点"
+msgstr "èšç„¦è·¯å¾„"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
@@ -2435,12 +2430,14 @@ msgid "Can't reload a scene that was never saved."
msgstr "无法é‡æ–°åŠ è½½æœªä¿å­˜çš„场景。"
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "æ¢å¤"
+msgid "Reload Saved Scene"
+msgstr "é‡è½½å·²ä¿å­˜åœºæ™¯"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "æ­¤æ“作无法撤销,是å¦ç»§ç»­ï¼Ÿ"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2715,10 +2712,6 @@ msgid "Redo"
msgstr "é‡åš"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "æ¢å¤åœºæ™¯"
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr "其他项目或全场景工具。"
@@ -3345,6 +3338,11 @@ msgstr "无法执行脚本:"
msgid "Did you forget the '_run' method?"
msgstr "您是å¦é—æ¼äº†_run()方法?"
+#: editor/editor_spin_slider.cpp
+#, fuzzy
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr "按ä½Ctrl键放置一个Getter节点。按ä½Shift键放置一个通用签å。"
+
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
msgstr "选择è¦å¯¼å…¥çš„节点"
@@ -3933,6 +3931,10 @@ msgid "Error running post-import script:"
msgstr "åŽå¤„ç†è„šæœ¬è¿è¡Œå‘生错误:"
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "ä¿å­˜ä¸­..."
@@ -6319,7 +6321,9 @@ msgstr "åŒæ­¥éª¨éª¼"
msgid ""
"No texture in this polygon.\n"
"Set a texture to be able to edit UV."
-msgstr "此多边形没有贴图,请先为它设置贴图åŽå†å°è¯•ç¼–辑UV。"
+msgstr ""
+"此多边形没有贴图。\n"
+"请先为它设置贴图åŽå†å°è¯•ç¼–辑UV。"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create UV Map"
@@ -6840,12 +6844,13 @@ msgid ""
msgstr "未找到方法“%sâ€ï¼ˆè¿žæŽ¥äºŽä¿¡å·â€œ%sâ€ã€æ¥è‡ªèŠ‚点“%sâ€ã€ç›®æ ‡èŠ‚点“%sâ€ï¼‰ã€‚"
#: editor/plugins/script_text_editor.cpp
-msgid "Line"
-msgstr "行"
+#, fuzzy
+msgid "[Ignore]"
+msgstr "(忽略)"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(忽略)"
+msgid "Line"
+msgstr "行"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7318,6 +7323,15 @@ msgid "XForm Dialog"
msgstr "XForm对è¯æ¡†"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr "将节点å¸é™„至地é¢"
@@ -8174,7 +8188,7 @@ msgid ""
"Drag handles to edit Rect.\n"
"Click on another Tile to edit it."
msgstr ""
-"拖拽手柄以编辑举行。\n"
+"拖拽手柄以编辑矩形。\n"
"点击å¦ä¸€ä¸ªå›¾å—进行编辑。"
#: editor/plugins/tile_set_editor_plugin.cpp
@@ -8336,7 +8350,7 @@ msgstr "没有æä¾›æ交消æ¯"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "No files added to stage"
-msgstr "没有文件添加到舞å°"
+msgstr "没有文件被添加到暂存区"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Commit"
@@ -8384,11 +8398,11 @@ msgstr "类型更改"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Stage Selected"
-msgstr "舞å°é€‰å®š"
+msgstr "将选定放入暂存区"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Stage All"
-msgstr "所有舞å°"
+msgstr "暂存全部"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Add a commit message"
@@ -8632,7 +8646,7 @@ msgstr "返回NaN和标é‡å‚数之间比较的布尔结果。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Less Than (<)"
-msgstr "å°äºŽ (*)"
+msgstr "å°äºŽ (<)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Less Than or Equal (<=)"
@@ -8640,7 +8654,7 @@ msgstr "å°äºŽæˆ–等于(<=)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Not Equal (!=)"
-msgstr "ä¸ç­‰äºŽï¼ˆï¼=)"
+msgstr "ä¸ç­‰äºŽï¼ˆ!=)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -8650,7 +8664,7 @@ msgstr "如果æ供的布尔值是true或false,则返回关è”çš„å‘é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns an associated scalar if the provided boolean value is true or false."
-msgstr "如果æ供的布尔值是true或false,则返回关è”çš„å‘é‡ã€‚"
+msgstr "如果æ供的布尔值是true或false,则返回关è”çš„æ ‡é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the boolean result of the comparison between two parameters."
@@ -8953,7 +8967,7 @@ msgstr "执行立方体纹ç†æŸ¥æ‰¾ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Perform the texture lookup."
-msgstr "执行立方体纹ç†æŸ¥æ‰¾ã€‚"
+msgstr "执行纹ç†æŸ¥æ‰¾ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Cubic texture uniform lookup."
@@ -8981,9 +8995,11 @@ msgid ""
"whose number of rows is the number of components in 'c' and whose number of "
"columns is the number of components in 'r'."
msgstr ""
-"计算一对矢é‡çš„外部乘积。 OuterProduct 将第一个å‚æ•°\"c\"视为列矢é‡ï¼ˆåŒ…å«ä¸€åˆ—çš„"
-"矩阵),将第二个å‚æ•°\"r\"视为行矢é‡ï¼ˆå…·æœ‰ä¸€è¡Œçš„矩阵),并执行线性代数矩阵乘以"
-"\"c = r\",生æˆè¡Œæ•°ä¸º\"c\"中的组件,其列数是\"r\"中的组件数。"
+"计算一对矢é‡çš„外积。\n"
+"\n"
+"OuterProduct 将第一个å‚æ•°\"c\"视为列矢é‡ï¼ˆåŒ…å«ä¸€åˆ—的矩阵),将第二个å‚æ•°\"r"
+"\"视为行矢é‡ï¼ˆå…·æœ‰ä¸€è¡Œçš„矩阵),并执行线性代数矩阵乘以\"c * r\",生æˆè¡Œæ•°ä¸º"
+"\"c\"中的组件,其列数是\"r\"中的组件数。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Composes transform from four vectors."
@@ -9101,9 +9117,10 @@ msgid ""
"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
"using Hermite polynomials."
msgstr ""
-"平滑步函数(矢é‡ï¼ˆè¾¹ç¼˜0)ã€çŸ¢é‡ï¼ˆè¾¹ç¼˜1)ã€çŸ¢é‡ï¼ˆx))。 如果\"x\"å°äºŽ"
-"\"edge0\",则返回 0.0;如果\"x\"大于\"edge1\",则返回 0.0。å¦åˆ™ï¼Œè¿”回值将使用"
-"赫密特多项å¼åœ¨ 0.0 å’Œ 1.0 之间æ’值。"
+"SmoothStep 函数(矢é‡ï¼ˆedge0)ã€çŸ¢é‡ï¼ˆedge1)ã€çŸ¢é‡ï¼ˆx))。 \n"
+"\n"
+"如果\"x\"å°äºŽ\"edge0\",则返回 0.0;如果\"x\"大于\"edge1\",则返回 0.0。å¦åˆ™ï¼Œ"
+"返回值将使用赫密特多项å¼åœ¨ 0.0 å’Œ 1.0 之间æ’值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9708,7 +9725,9 @@ msgstr ""
msgid ""
"Language changed.\n"
"The interface will update after restarting the editor or project manager."
-msgstr "语言已更改。 é‡æ–°å¯åŠ¨ç¼–辑器或项目管ç†å™¨åŽï¼Œç•Œé¢å°†æ›´æ–°ã€‚"
+msgstr ""
+"语言已更改。\n"
+"ç•Œé¢å°†åœ¨é‡æ–°å¯åŠ¨ç¼–辑器或项目管ç†å™¨åŽæ›´æ–°ã€‚"
#: editor/project_manager.cpp
msgid ""
@@ -9916,7 +9935,7 @@ msgstr "滚轮å‘下滚动。"
#: editor/project_settings_editor.cpp
msgid "Add Global Property"
-msgstr "添加Getter属性"
+msgstr "添加全局属性"
#: editor/project_settings_editor.cpp
msgid "Select a setting item first!"
@@ -10310,7 +10329,7 @@ msgstr "场景è¿è¡Œè®¾ç½®"
#: editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
-msgstr "没有选中节点æ¥æ·»åŠ å®žä¾‹ã€‚"
+msgstr "没有å¯å®žä¾‹åŒ–场景的父节点。"
#: editor/scene_tree_dock.cpp
msgid "Error loading scene from %s"
@@ -10335,8 +10354,9 @@ msgid "Instance Child Scene"
msgstr "实例化å­åœºæ™¯"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr "清除脚本"
+#, fuzzy
+msgid "Detach Script"
+msgstr "添加脚本"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10494,6 +10514,13 @@ msgid "Open Documentation"
msgstr "打开文档"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "添加å­èŠ‚点"
@@ -10540,11 +10567,13 @@ msgid ""
msgstr "实例化场景文件为一个节点,如果没有根节点则创建一个继承自该文件的场景。"
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script to the selected node."
msgstr "为选中节点创建或设置脚本。"
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+#, fuzzy
+msgid "Detach the script from the selected node."
msgstr "清除选中节点的脚本。"
#: editor/scene_tree_dock.cpp
@@ -10676,6 +10705,10 @@ msgid "A directory with the same name exists."
msgstr "存在åŒå目录。"
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "文件ä¸å­˜åœ¨ã€‚"
+
+#: editor/script_create_dialog.cpp
msgid "Invalid extension."
msgstr "扩展å无效。"
@@ -10716,6 +10749,10 @@ msgid "File exists, it will be reused."
msgstr "文件存在,将被é‡ç”¨ã€‚"
#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "路径无效。"
+
+#: editor/script_create_dialog.cpp
msgid "Invalid class name."
msgstr "无效的类别å称。"
@@ -10729,7 +10766,7 @@ msgstr "脚本路径/å称有效。"
#: editor/script_create_dialog.cpp
msgid "Allowed: a-z, A-Z, 0-9, _ and ."
-msgstr "å…许:a-z,a-z,0-9,u和。"
+msgstr "å…许:a-z,a-z,0-9,_ å’Œ ."
#: editor/script_create_dialog.cpp
msgid "Built-in script (into scene file)."
@@ -10979,19 +11016,19 @@ msgstr "改å˜æ–¹æ¡†å¤§å°"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Radius"
-msgstr "修改胶囊体åŠå¾„"
+msgstr "修改椭圆形åŠå¾„"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Height"
-msgstr "修改胶囊体高度"
+msgstr "修改椭圆形高度"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Cylinder Shape Radius"
-msgstr "修改胶囊体åŠå¾„"
+msgstr "修改圆柱形åŠå¾„"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Cylinder Shape Height"
-msgstr "修改胶囊体高度"
+msgstr "修改圆柱形高度"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Ray Shape Length"
@@ -11003,7 +11040,7 @@ msgstr "改å˜åœ†æŸ±ä½“åŠå¾„"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Height"
-msgstr "修改胶囊体高度"
+msgstr "修改圆柱体高度"
#: modules/csg/csg_gizmos.cpp
msgid "Change Torus Inner Radius"
@@ -11696,7 +11733,7 @@ msgstr "æœç´¢å¯è§†åŒ–脚本节点"
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Get %s"
-msgstr "得到 %s"
+msgstr "èŽ·å– %s"
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -11743,6 +11780,11 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr "未在编辑器设置或预设中é…置调试密钥库。"
#: platform/android/export/export.cpp
+#, fuzzy
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr "未在编辑器设置或预设中é…置调试密钥库。"
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr "自定义构建需è¦åœ¨â€œç¼–辑器设置â€ä¸­ä½¿ç”¨æœ‰æ•ˆçš„Android SDK路径。"
@@ -11766,6 +11808,32 @@ msgstr "无效的包å称:"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12384,15 +12452,15 @@ msgid ""
"children placement behavior.\n"
"If you don't intend to add a script, use a plain Control node instead."
msgstr ""
-"除éžè„šæœ¬é…置其å­ä»£æ”¾ç½®è¡Œä¸ºï¼Œå¦åˆ™å®¹å™¨æœ¬èº«æ²¡æœ‰ä»»ä½•ä½œç”¨ã€‚ 如果您ä¸æƒ³æ·»åŠ è„šæœ¬ï¼Œè¯·"
-"改用普通的Control节点。"
+"除éžè„šæœ¬é…置其å­ä»£æ”¾ç½®è¡Œä¸ºï¼Œå¦åˆ™å®¹å™¨æœ¬èº«æ²¡æœ‰ä»»ä½•ä½œç”¨ã€‚\n"
+"如果您ä¸æƒ³æ·»åŠ è„šæœ¬ï¼Œè¯·æ”¹ç”¨æ™®é€šçš„Control节点。"
#: scene/gui/control.cpp
msgid ""
"The Hint Tooltip won't be displayed as the control's Mouse Filter is set to "
"\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"."
msgstr ""
-"由于该控件的 Mouse Filter 设置为 \"Ignore\" 因此它的 Hint Tooltip å°†ä¸ä¼šå±•"
+"由于该控件的 Mouse Filter 设置为 \"Ignore\" 因此它的 Hint Tooltip å°†ä¸ä¼šå±•"
"示。将 Mouse Filter 设置为 \"Stop\" 或 \"Pass\" å¯ä¿®æ­£æ­¤é—®é¢˜ã€‚"
#: scene/gui/dialogs.cpp
@@ -12422,8 +12490,9 @@ msgid ""
"Use a container as child (VBox, HBox, etc.), or a Control and set the custom "
"minimum size manually."
msgstr ""
-"ScrollContainer旨在与å•ä¸ªå­æŽ§ä»¶ä¸€èµ·ä½¿ç”¨ã€‚ 使用容器作为å­å®¹å™¨ï¼ˆVBox,HBox等)"
-"或控件,并手动设置自定义最å°å°ºå¯¸ã€‚"
+"ScrollContainer旨在与å•ä¸ªå­æŽ§ä»¶ä¸€èµ·ä½¿ç”¨ã€‚\n"
+"å­èŠ‚点应该是å•ä¸ªå®¹å™¨ï¼ˆVBoxã€HBox等)或者使用å•ä¸ªæŽ§ä»¶å¹¶æ‰‹åŠ¨è®¾ç½®å…¶è‡ªå®šä¹‰æœ€å°å°º"
+"寸。"
#: scene/gui/tree.cpp
msgid "(Other)"
@@ -12478,6 +12547,21 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸­æŒ‡å®šã€‚"
msgid "Constants cannot be modified."
msgstr "ä¸å…许修改常é‡ã€‚"
+#~ msgid "Not in resource path."
+#~ msgstr "ä¸åœ¨èµ„æºè·¯å¾„下。"
+
+#~ msgid "Revert"
+#~ msgstr "æ¢å¤"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "æ­¤æ“作无法撤销,是å¦ç»§ç»­ï¼Ÿ"
+
+#~ msgid "Revert Scene"
+#~ msgstr "æ¢å¤åœºæ™¯"
+
+#~ msgid "Clear Script"
+#~ msgstr "清除脚本"
+
#~ msgid "Issue Tracker"
#~ msgstr "问题跟踪器"
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index 770b4d38f2..4832307ce5 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -873,7 +873,6 @@ msgstr "無法連接訊號"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1513,19 +1512,9 @@ msgstr "啟用"
msgid "Rearrange Autoloads"
msgstr "é‡æ–°æŽ’例Autoloads"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "有效的路徑"
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "檔案ä¸å­˜åœ¨."
-
#: editor/editor_autoload_settings.cpp
-#, fuzzy
-msgid "Not in resource path."
-msgstr "ä¸åœ¨è³‡æºè·¯å¾‘。"
+msgid "Can't add autoload:"
+msgstr ""
#: editor/editor_autoload_settings.cpp
#, fuzzy
@@ -2505,11 +2494,14 @@ msgid "Can't reload a scene that was never saved."
msgstr "ä¸èƒ½é‡æ–°è¼‰å…¥å¾žæœªå„²å­˜çš„場景。"
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
+#, fuzzy
+msgid "Reload Saved Scene"
+msgstr "儲存場景"
#: editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
#: editor/editor_node.cpp
@@ -2805,10 +2797,6 @@ msgid "Redo"
msgstr "é‡è£½"
#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
msgstr ""
@@ -3455,6 +3443,10 @@ msgstr "ä¸èƒ½åŸ·è¡Œè…³æœ¬ï¼š"
msgid "Did you forget the '_run' method?"
msgstr ""
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
#: editor/editor_sub_scene.cpp
#, fuzzy
msgid "Select Node(s) to Import"
@@ -4100,6 +4092,10 @@ msgid "Error running post-import script:"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
msgstr "儲存中..."
@@ -7160,15 +7156,15 @@ msgid ""
msgstr "由 '%s' 連到 '%s'"
#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Line"
msgstr "行:"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
#, fuzzy
msgid "Go to Function"
msgstr "行為"
@@ -7666,6 +7662,15 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
msgstr ""
@@ -10765,8 +10770,8 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
-msgid "Clear Script"
-msgstr "下一個腳本"
+msgid "Detach Script"
+msgstr "腳本"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10938,6 +10943,13 @@ msgid "Open Documentation"
msgstr "開啓最近的"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr ""
@@ -10989,11 +11001,11 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
+msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
+msgid "Detach the script from the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
@@ -11122,6 +11134,10 @@ msgid "A directory with the same name exists."
msgstr ""
#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "檔案ä¸å­˜åœ¨."
+
+#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid extension."
msgstr "無效副檔å"
@@ -11169,6 +11185,11 @@ msgstr "檔案已存在, è¦è¦†è“‹å—Ž?"
#: editor/script_create_dialog.cpp
#, fuzzy
+msgid "Invalid path."
+msgstr "有效的路徑"
+
+#: editor/script_create_dialog.cpp
+#, fuzzy
msgid "Invalid class name."
msgstr "無效å稱"
@@ -12263,6 +12284,10 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
@@ -12287,6 +12312,32 @@ msgstr "無效å稱"
#: platform/android/export/export.cpp
msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
@@ -12948,6 +12999,14 @@ msgid "Constants cannot be modified."
msgstr ""
#, fuzzy
+#~ msgid "Not in resource path."
+#~ msgstr "ä¸åœ¨è³‡æºè·¯å¾‘。"
+
+#, fuzzy
+#~ msgid "Clear Script"
+#~ msgstr "下一個腳本"
+
+#, fuzzy
#~ msgid "Replaced %d occurrence(s)."
#~ msgstr "å–代了 %d 個。"
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index 6b3651b5f6..22051058ad 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -14,18 +14,22 @@
# ken l <macauhome@gmail.com>, 2018.
# Eric K <eric900601@gmail.com>, 2019.
# cnieFIT <dtotncq@gmail.com>, 2019.
-# Bluesir Bruce <a5566740293@gmail.com>, 2019.
+# Bluesir Bruce <a5566740293@gmail.com>, 2019, 2020.
# leela <53352@protonmail.com>, 2019.
# Kenneth Lo <closer.tw@gmail.com>, 2019.
# SIYU FU <1002492607@qq.com>, 2019.
# 鄭惟中 <biglionlion06@gmail.com>, 2020.
# Alexander Wang <zxcvb22217@gmail.com>, 2020.
+# binotaliu <binota@protonmail.ch>, 2020.
+# Allen H. <w84miracle@gmail.com>, 2020.
+# BinotaLIU <binota@protonmail.ch>, 2020.
+# BinotaLIU <me@binota.org>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-03-01 19:57+0000\n"
-"Last-Translator: Alexander Wang <zxcvb22217@gmail.com>\n"
+"PO-Revision-Date: 2020-06-15 01:48+0000\n"
+"Last-Translator: BinotaLIU <me@binota.org>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hant/>\n"
"Language: zh_TW\n"
@@ -33,58 +37,58 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.0-dev\n"
+"X-Generator: Weblate 4.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Convert()函數所收到的åƒæ•¸éŒ¯èª¤ï¼Œè«‹ç”¨ TYPE_* 常數。"
+msgstr "convert() 函å¼æ”¶åˆ°äº†ç„¡æ•ˆçš„引數,請使用 TYPE_* 常數。"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "應為一個長度是1(一個字元)的字串。"
+msgstr "應為一個長度為 1(一個字元)的字串。"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "輸入的解碼字節ä¸è¶³ã€æˆ–為無效格å¼ã€‚"
+msgstr "欲解碼的ä½å…ƒçµ„ä¸è¶³æˆ–æ ¼å¼ç„¡æ•ˆã€‚"
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "é‹ç®—å¼ä¸­çš„輸入 %i 無效 (未傳éž)"
+msgstr "é‹ç®—å¼ä¸­çš„輸入 %i 無效 (未傳éžï¼‰"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "因該實例(instance)為空,self 無法被使用"
+msgstr "該實體爲 null,無法使用 self"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr "此數值無法被 %sã€%s 和与%s é‹ç®—。"
+msgstr "該é‹ç®—元無法由é‹ç®—å­ %sã€%sã€èˆ‡ %s é‹ç®—。"
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr "無效的內存地å€é¡žåž‹ %sï¼ŒåŸºç¤Žåž‹å¼ %s"
+msgstr "在型別 %s ã€åŸºç¤Žé¡žåž‹ %s 上存å–了無效的索引"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr "基本類型 %s 的命å索引 '%s' 無效"
+msgstr "命å索引「%sã€å°åŸºç¤Žåž‹åˆ¥ %s 無效"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr "無效åƒæ•¸é¡žåž‹: '%s'"
+msgstr "用了無效的引數來建構「%sã€"
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr "調用“%sâ€æ™‚:"
+msgstr "呼å«ã€Œ%sã€æ™‚:"
#: core/ustring.cpp
msgid "B"
-msgstr "Byte"
+msgstr "B"
#: core/ustring.cpp
msgid "KiB"
-msgstr "基布"
+msgstr "KiB"
#: core/ustring.cpp
msgid "MiB"
@@ -92,23 +96,23 @@ msgstr "MiB"
#: core/ustring.cpp
msgid "GiB"
-msgstr ""
+msgstr "GiB"
#: core/ustring.cpp
msgid "TiB"
-msgstr ""
+msgstr "TiB"
#: core/ustring.cpp
msgid "PiB"
-msgstr ""
+msgstr "PiB"
#: core/ustring.cpp
msgid "EiB"
-msgstr ""
+msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
-msgstr "釋放"
+msgstr "ä¸å—é™"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
@@ -124,90 +128,84 @@ msgstr "時間:"
#: editor/animation_bezier_editor.cpp
msgid "Value:"
-msgstr "數值:"
+msgstr "數值:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr "在此æ’入畫格"
+msgstr "在此æ’入關éµç•«æ ¼"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
-msgstr "複製所é¸ç•«æ ¼"
+msgstr "é‡è¤‡æ‰€é¸é—œéµç•«æ ¼"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr "刪除所é¸ç•«æ ¼"
+msgstr "刪除所é¸é—œéµç•«æ ¼"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
-msgstr "添加è²å¡žçˆ¾é»ž"
+msgstr "新增è²èŒ²æ›²ç·šæŽ§åˆ¶é»ž"
#: editor/animation_bezier_editor.cpp
msgid "Move Bezier Points"
-msgstr "移動Bezier點"
+msgstr "移動è²èŒ²æ›²ç·šæŽ§åˆ¶é»ž"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "複製關éµç•«æ ¼"
+msgstr "é‡è¤‡å‹•ç•«é—œéµç•«æ ¼"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
-msgstr "刪除關éµç•«æ ¼"
+msgstr "刪除動畫關éµç•«æ ¼"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Time"
-msgstr "變更關éµç•«æ ¼çš„時間"
+msgstr "更改動畫關éµç•«æ ¼æ™‚é–“"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
-msgstr "變更轉場效果"
+msgstr "更改動畫轉場效果"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
-msgstr "變更動畫變æ›"
+msgstr "更改動畫變æ›"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
-msgstr "變更關éµç•«æ ¼çš„數值"
+msgstr "更改動畫關éµç•«æ ¼æ•¸å€¼"
#: editor/animation_track_editor.cpp
msgid "Anim Change Call"
-msgstr "更改回調"
+msgstr "更改動畫呼å«"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Keyframe Time"
-msgstr "變更關éµç•«æ ¼çš„時間"
+msgstr "更改多個動畫的關éµç•«æ ¼æ™‚é–“"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Transition"
-msgstr "變更轉場效果"
+msgstr "更改多個動畫的轉場效果"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Transform"
-msgstr "變更動畫變æ›"
+msgstr "更改多個動畫的變æ›"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Keyframe Value"
-msgstr "變更關éµç•«æ ¼çš„數值"
+msgstr "更改多個動畫的關éµç•«æ ¼æ•¸å€¼"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Call"
-msgstr "更改回調"
+msgstr "更改多個動畫的回調"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Length"
-msgstr "變更動畫長度"
+msgstr "更改動畫長度"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr "變更動畫循環"
+msgstr "更改動畫循環"
#: editor/animation_track_editor.cpp
msgid "Property Track"
@@ -219,11 +217,11 @@ msgstr "3D 變æ›è»Œé“"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
-msgstr "調用方法軌é“"
+msgstr "呼å«æ–¹æ³•è»Œé“"
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
-msgstr "è²å¡žçˆ¾æ›²ç·šè»Œè·¡"
+msgstr "è²èŒ²æ›²ç·šè»Œé“"
#: editor/animation_track_editor.cpp
msgid "Audio Playback Track"
@@ -234,50 +232,45 @@ msgid "Animation Playback Track"
msgstr "動畫回放軌é“"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation length (frames)"
-msgstr "動畫長度(秒)"
+msgstr "動畫長度(幀)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation length (seconds)"
msgstr "動畫長度(秒)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track"
-msgstr "添加動畫軌"
+msgstr "新增動畫軌"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation Looping"
-msgstr "動畫空間。"
+msgstr "é‡è¤‡å‹•ç•«"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Functions:"
-msgstr "函數:"
+msgstr "函å¼ï¼š"
#: editor/animation_track_editor.cpp
msgid "Audio Clips:"
-msgstr "音訊剪輯:"
+msgstr "音訊片段:"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
-msgstr "動畫剪輯:"
+msgstr "動畫片段:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Track Path"
-msgstr "調整陣列資料"
+msgstr "調整軌é“路徑"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
-msgstr "打開/關閉此軌é“."
+msgstr "打開ï¼é—œé–‰æ­¤è»Œé“。"
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr "æ›´æ–°æ¨¡å¼ (如何設置此屬性)"
+msgstr "更新模å¼ï¼ˆå±¬æ€§è¨­å®šæ–¹æ³•ï¼‰"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
@@ -285,22 +278,19 @@ msgstr "æ’值模å¼"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr "循環包裹模å¼ï¼ˆå¾žå¾ªç’°é–‹å§‹æ’å…¥çµæŸï¼‰"
+msgstr "無縫循環模å¼ï¼ˆå¾žå¾ªç’°é–‹å§‹æ’å…¥çµæŸï¼‰"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Remove this track."
-msgstr "移除é¸æ“‡çš„動畫軌。"
+msgstr "移除該動畫軌。"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Time (s): "
-msgstr "步驟 :"
+msgstr "時間(秒) : "
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Toggle Track Enabled"
-msgstr "啟用"
+msgstr "啟用ï¼ç¦ç”¨è»Œé“"
#: editor/animation_track_editor.cpp
msgid "Continuous"
@@ -316,7 +306,7 @@ msgstr "觸發器"
#: editor/animation_track_editor.cpp
msgid "Capture"
-msgstr "æ•ç²"
+msgstr "截圖"
#: editor/animation_track_editor.cpp
msgid "Nearest"
@@ -333,40 +323,36 @@ msgstr "立方體"
#: editor/animation_track_editor.cpp
msgid "Clamp Loop Interp"
-msgstr "Clampå¼å…§æ’循環"
+msgstr "Clamp å¼å…§æ’循環"
#: editor/animation_track_editor.cpp
msgid "Wrap Loop Interp"
-msgstr "Wrapå¼å…§æ’循環"
+msgstr "Wrap å¼å…§æ’循環"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr "æ’入畫格"
+msgstr "æ’入關éµç•«æ ¼"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Duplicate Key(s)"
-msgstr "複製動畫關éµç•«æ ¼"
+msgstr "é‡è¤‡é—œéµç•«æ ¼"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Delete Key(s)"
-msgstr "刪除動畫關éµç•«æ ¼"
+msgstr "刪除關éµç•«æ ¼"
#: editor/animation_track_editor.cpp
msgid "Change Animation Update Mode"
-msgstr "變更動畫更新模å¼"
+msgstr "更改動畫更新模å¼"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Interpolation Mode"
-msgstr "變更動畫內æ’模å¼"
+msgstr "更改動畫æ’值模å¼"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Loop Mode"
-msgstr "變更動畫循環模å¼"
+msgstr "更改動畫循環模å¼"
#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
@@ -374,11 +360,11 @@ msgstr "刪除動畫軌"
#: editor/animation_track_editor.cpp
msgid "Create NEW track for %s and insert key?"
-msgstr "為 %s 新增動畫軌並æ’入畫格?"
+msgstr "確定è¦ç‚º %s 建立動畫軌並æ’入關éµç•«æ ¼å—Žï¼Ÿ"
#: editor/animation_track_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
-msgstr "新增 %d 個動畫軌並æ’入畫格?"
+msgstr "確定è¦å»ºç«‹ %d 個動畫軌並æ’入畫格嗎?"
#: editor/animation_track_editor.cpp editor/create_dialog.cpp
#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp
@@ -390,7 +376,7 @@ msgstr "新增 %d 個動畫軌並æ’入畫格?"
#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Create"
-msgstr "新增"
+msgstr "建立"
#: editor/animation_track_editor.cpp
msgid "Anim Insert"
@@ -398,11 +384,11 @@ msgstr "æ’入動畫"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
-msgstr "AnimationPlayerä¸èƒ½è¢«è‡ªå·±æ‰€å•Ÿå‹•ï¼Œå¿…須由其他player啟動。"
+msgstr "AnimationPlayer ä¸èƒ½æ’­æ”¾è‡ªå·±ï¼Œåªå¯æ’­æ”¾å…¶ä»– Player。"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
-msgstr "新增/æ’入動畫"
+msgstr "新增ï¼æ’入動畫"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Track & Key"
@@ -413,18 +399,16 @@ msgid "Anim Insert Key"
msgstr "新增關éµç•«æ ¼"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Step"
-msgstr "變更動畫長度"
+msgstr "更改動畫步長"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Rearrange Tracks"
-msgstr "é‡æ–°æŽ’列 Autoload"
+msgstr "é‡æ–°æŽ’列軌é“"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr "Transform軌åªèƒ½æ·»åŠ åœ¨spatial為主的節點。"
+msgstr "變形軌åªèƒ½å¥—用至 Spatial 節點。"
#: editor/animation_track_editor.cpp
msgid ""
@@ -440,80 +424,74 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr "動畫軌跡åªèƒ½æŒ‡å‘ AnimationPlayer 節點."
+msgstr "動畫軌åªèƒ½æŒ‡å‘ AnimationPlayer 節點。"
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
-msgstr ""
+msgstr "å‹•ç•« Player 無法播放自己,åªèƒ½æ’­æ”¾å…¶ä»– Player。"
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
-msgstr "無法添加沒有根目錄的新曲目"
+msgstr "沒有根節點時無法新增軌é“"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr "此軌ä¸èƒ½ç”¨æ–¼Bezier(å­å±¬æ€§ä¸é©åˆ)"
+msgstr "å°æ–¼è²èŒ²æ›²ç·šç„¡æ•ˆçš„軌é“(éžé©ç”¨ä¹‹å­å±¬æ€§ï¼‰"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Bezier Track"
-msgstr "添加動畫軌"
+msgstr "新增è²èŒ²æ›²ç·šè»Œ"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
-msgstr "軌é“路徑無效, 因此無法添加éµã€‚"
+msgstr "無效的軌é“路徑,無法新增關éµç•«æ ¼ã€‚"
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
-msgstr "軌é“ä¸æ˜¯ç©ºé–“é¡žåž‹, ä¸èƒ½æ’å…¥éµ"
+msgstr "éž Spatial 類型之軌é“,無法æ’入關éµç•«æ ¼"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Transform Track Key"
-msgstr "動畫新增軌跡與按éµ"
+msgstr "新增變形軌關éµç•«æ ¼"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track Key"
-msgstr "添加動畫軌"
+msgstr "添加軌é“é—œéµç•«æ ¼"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
-msgstr "跟蹤路徑無效, 因此無法添加方法éµã€‚"
+msgstr "無效的軌é“路徑,無法新增方法關éµç•«æ ¼ã€‚"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Method Track Key"
-msgstr "動畫新增軌跡與按éµ"
+msgstr "新增方法軌é“é—œéµç•«æ ¼"
#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
-msgstr "在å°è±¡ä¸­æ‰¾ä¸åˆ°æ–¹æ³•ï¼š "
+msgstr "在物件中找ä¸åˆ°æ–¹æ³•ï¼š "
#: editor/animation_track_editor.cpp
msgid "Anim Move Keys"
-msgstr "移動關éµç•«æ ¼"
+msgstr "移動動畫關éµç•«æ ¼"
#: editor/animation_track_editor.cpp
msgid "Clipboard is empty"
-msgstr "剪貼æ¿ç‚ºç©º"
+msgstr "空白剪貼æ¿"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Paste Tracks"
-msgstr "貼上åƒæ•¸"
+msgstr "貼上關éµç•«æ ¼"
#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
-msgstr "縮尺éµ"
+msgstr "動畫縮放關éµå½±æ ¼"
#: editor/animation_track_editor.cpp
msgid ""
"This option does not work for Bezier editing, as it's only a single track."
-msgstr "這個é¸é …ä¸é©ç”¨æ–¼è²å¡žçˆ¾ç·¨è¼¯ï¼Œå› ç‚ºå®ƒåªæ˜¯ä¸€å€‹å–®è»Œã€‚"
+msgstr "該é¸é …ä¸é©ç”¨æ–¼ç·¨è¼¯è²èŒ²æ›²ç·šï¼Œå…¶åƒ…有單一軌é“。"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -525,22 +503,19 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
-"這個動畫存在於匯入的場景中,因此å°åŒ¯å…¥è»Œæ‰€åšçš„變更ä¸æœƒè¢«å„²å­˜ã€‚\n"
+"這個動畫是由外部匯入之場景æ供,套用於匯入軌é“的修改將ä¸æœƒè¢«ä¿å­˜ã€‚\n"
"\n"
-"若是è¦é–‹å•Ÿã€ŒåŠ å…¥å®¢åˆ¶è»Œã€çš„功能,請在場景的匯入設定中將「動畫 -> 存放ã€è¨­å®š"
-"為\n"
-"「檔案ã€ï¼Œé–‹å•Ÿã€Œå‹•ç•« -> ä¿å­˜å®¢åˆ¶è»Œã€ï¼Œç„¶å¾Œé‡æ–°å…¥åŒ¯å…¥ã€‚\n"
-"或者,你å¯ä»¥åœ¨åŒ¯å…¥æ™‚,將動畫資料匯入單ç¨çš„檔案之中。"
+"è‹¥è¦é–‹å•Ÿã€ŒåŠ å…¥å®¢åˆ¶è»Œã€çš„功能,請在場景在匯入設定中將「動畫 -> 儲存ã€è¨­å®šç‚º\n"
+"「檔案ã€ï¼Œä¸¦å•Ÿç”¨ã€Œå‹•ç•« -> ä¿å­˜å®¢åˆ¶è»Œã€ï¼Œç„¶å¾Œé‡æ–°åŒ¯å…¥ã€‚\n"
+"或者也å¯ä½¿ç”¨æœƒå°‡å‹•ç•«åŒ¯å…¥ç¨ç«‹æª”案的匯入 Preset。"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Warning: Editing imported animation"
msgstr "警告:正在編輯匯入的動畫"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select an AnimationPlayer node to create and edit animations."
-msgstr "從場景樹中é¸æ“‡ä¸€å€‹ AnimationPlayer 來編輯動畫。"
+msgstr "é¸æ“‡ AnimationPlayer 節點以建立並編輯動畫。"
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
@@ -548,26 +523,23 @@ msgstr "僅顯示樹中所é¸ç¯€é»žçš„軌跡。"
#: editor/animation_track_editor.cpp
msgid "Group tracks by node or display them as plain list."
-msgstr "按節點å°è»Œè·¡åˆ†çµ„或將其顯示為普通清單。"
+msgstr "ä¾ç¯€é»žåˆ†çµ„軌跡或將其顯示為普通清單。"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Snap:"
-msgstr "步驟 :"
+msgstr "å¸é™„:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation step value."
-msgstr "動畫空間。"
+msgstr "動畫步進值。"
#: editor/animation_track_editor.cpp
msgid "Seconds"
msgstr "秒"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "FPS"
-msgstr "æ¯ç§’張數"
+msgstr "FPS"
#: editor/animation_track_editor.cpp editor/editor_properties.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -580,14 +552,12 @@ msgid "Edit"
msgstr "編輯"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation properties."
-msgstr "動畫空間。"
+msgstr "動畫屬性。"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Copy Tracks"
-msgstr "複製åƒæ•¸"
+msgstr "複製軌é“"
#: editor/animation_track_editor.cpp
msgid "Scale Selection"
@@ -595,34 +565,31 @@ msgstr "縮放所é¸"
#: editor/animation_track_editor.cpp
msgid "Scale From Cursor"
-msgstr "由游標縮放"
+msgstr "以游標縮放"
#: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp
msgid "Duplicate Selection"
-msgstr "複製所é¸"
+msgstr "é‡è¤‡æ‰€é¸"
#: editor/animation_track_editor.cpp
msgid "Duplicate Transposed"
-msgstr "複製並轉置"
+msgstr "轉置並é‡è¤‡"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Delete Selection"
-msgstr "複製所é¸"
+msgstr "刪除所é¸"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Next Step"
-msgstr "往下一步"
+msgstr "跳至下一步"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Previous Step"
-msgstr "往上一步"
+msgstr "跳至上一步"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
-msgstr "動畫最佳化"
+msgstr "最佳化動畫"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation"
@@ -634,23 +601,23 @@ msgstr "é¸æ“‡è¦è¨­å®šå‹•ç•«çš„節點:"
#: editor/animation_track_editor.cpp
msgid "Use Bezier Curves"
-msgstr "使用è²å¡žçˆ¾æ›²ç·š"
+msgstr "使用è²èŒ²æ›²ç·š"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
-msgstr "動畫最佳化"
+msgstr "最佳化動畫工具"
#: editor/animation_track_editor.cpp
msgid "Max. Linear Error:"
-msgstr "最大線性錯誤:"
+msgstr "最大線性錯誤:"
#: editor/animation_track_editor.cpp
msgid "Max. Angular Error:"
-msgstr "最大角度錯誤:"
+msgstr "最大角度錯誤:"
#: editor/animation_track_editor.cpp
msgid "Max Optimizable Angle:"
-msgstr "最大å¯å„ªåŒ–角度:"
+msgstr "最大å¯æœ€ä½³åŒ–角度:"
#: editor/animation_track_editor.cpp
msgid "Optimize"
@@ -662,7 +629,7 @@ msgstr "移除無效的關éµç•«æ ¼"
#: editor/animation_track_editor.cpp
msgid "Remove unresolved and empty tracks"
-msgstr "刪除未處ç†çš„空白軌é“"
+msgstr "刪除未處ç†èˆ‡ç©ºç™½çš„軌é“"
#: editor/animation_track_editor.cpp
msgid "Clean-up all animations"
@@ -678,12 +645,11 @@ msgstr "清除"
#: editor/animation_track_editor.cpp
msgid "Scale Ratio:"
-msgstr "縮放比例:"
+msgstr "縮放比例:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select Tracks to Copy"
-msgstr "é¸æ“‡è¦è¤‡è£½çš„軌é“:"
+msgstr "é¸æ“‡è»Œé“以複製"
#: editor/animation_track_editor.cpp editor/editor_log.cpp
#: editor/editor_properties.cpp
@@ -695,22 +661,20 @@ msgid "Copy"
msgstr "複製"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select All/None"
-msgstr "é¸æ“‡æ¨¡å¼"
+msgstr "é¸æ“‡å…¨éƒ¨ï¼å–消é¸æ“‡"
#: editor/animation_track_editor_plugins.cpp
-#, fuzzy
msgid "Add Audio Track Clip"
-msgstr "添加動畫軌"
+msgstr "新增音訊軌片段"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip Start Offset"
-msgstr "更改音訊軌é“剪輯起始å移"
+msgstr "更改音訊軌片段起始å移"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip End Offset"
-msgstr "更改音訊曲目剪輯çµæŸå移"
+msgstr "更改音訊軌片段çµæŸå移"
#: editor/array_property_edit.cpp
msgid "Resize Array"
@@ -718,42 +682,39 @@ msgstr "調整陣列大å°"
#: editor/array_property_edit.cpp
msgid "Change Array Value Type"
-msgstr "調整陣列資料型態"
+msgstr "更改陣列資料型別"
#: editor/array_property_edit.cpp
msgid "Change Array Value"
-msgstr "調整陣列資料"
+msgstr "更改陣列資料"
#: editor/code_editor.cpp
msgid "Go to Line"
-msgstr "å‰å¾€ç¬¬...è¡Œ"
+msgstr "跳至第 ... 行"
#: editor/code_editor.cpp
msgid "Line Number:"
-msgstr "行號:"
+msgstr "行號:"
#: editor/code_editor.cpp
-#, fuzzy
msgid "%d replaced."
-msgstr "替æ›â€¦"
+msgstr "å·²å–代了 %d 件。"
#: editor/code_editor.cpp editor/editor_help.cpp
-#, fuzzy
msgid "%d match."
-msgstr "找到 %d 件符åˆçµæžœã€‚"
+msgstr "%d 件相符åˆçš„çµæžœã€‚"
#: editor/code_editor.cpp editor/editor_help.cpp
-#, fuzzy
msgid "%d matches."
-msgstr "找到 %d 件符åˆçµæžœã€‚"
+msgstr "%d 件相符åˆçš„çµæžœã€‚"
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
-msgstr "符åˆå¤§å°å¯«"
+msgstr "å€åˆ†å¤§å°å¯«"
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Whole Words"
-msgstr "符åˆå®Œæ•´å–®å­—"
+msgstr "æœå°‹å®Œæ•´å–®å­—"
#: editor/code_editor.cpp editor/rename_dialog.cpp
msgid "Replace"
@@ -765,7 +726,7 @@ msgstr "å–代全部"
#: editor/code_editor.cpp
msgid "Selection Only"
-msgstr "僅é¸æ“‡å€åŸŸ"
+msgstr "僅æœå°‹æ‰€é¸å€åŸŸ"
#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp
#: editor/plugins/text_editor.cpp
@@ -774,7 +735,7 @@ msgstr "標準"
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
-msgstr "\"切æ›è…³æœ¬\" é¢æ¿"
+msgstr "é–‹å•Ÿï¼é—œé–‰è…³æœ¬é¢æ¿"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
@@ -801,35 +762,30 @@ msgid "Line and column numbers."
msgstr "行號和列號。"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method in target node must be specified."
-msgstr "必須指定å°ç›®æ¨™ç¯€é»žçš„行為ï¼"
+msgstr "必須指定目標節點的方法。"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
-msgstr "找ä¸åˆ°ç›®æ¨™æ–¹æ³•ï¼è«‹æŒ‡å®šæœ‰æ•ˆæ–¹æ³•ã€æˆ–將腳本附加至目標節點上。"
+msgstr "找ä¸åˆ°ç›®æ¨™æ–¹æ³•ï¼è«‹æŒ‡å®šä¸€å€‹æœ‰æ•ˆçš„方法ã€æˆ–將腳本附加至目標節點上。"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect to Node:"
-msgstr "連接到節點:"
+msgstr "連接至節點:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect to Script:"
-msgstr "無法連接到主機:"
+msgstr "連接至腳本:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "From Signal:"
-msgstr "訊號:"
+msgstr "自訊號:"
#: editor/connections_dialog.cpp
msgid "Scene does not contain any script."
-msgstr "場景中沒有任何的腳本。"
+msgstr "場景中無任何的腳本。"
#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
@@ -850,39 +806,36 @@ msgstr "移除"
#: editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
-msgstr "新增é¡å¤–呼å«åƒæ•¸:"
+msgstr "新增é¡å¤–呼å«å¼•æ•¸ï¼š"
#: editor/connections_dialog.cpp
msgid "Extra Call Arguments:"
-msgstr "é¡å¤–呼å«åƒæ•¸:"
+msgstr "é¡å¤–呼å«å¼•æ•¸ï¼š"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Receiver Method:"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "Receiver 方法:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Advanced"
-msgstr "進階設定"
+msgstr "進階"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Deferred"
msgstr "延é²"
#: editor/connections_dialog.cpp
msgid ""
"Defers the signal, storing it in a queue and only firing it at idle time."
-msgstr "延後é€å‡ºè¨Šè™Ÿï¼Œå°‡è¨Šè™Ÿæš«å­˜è‡³ä½‡åˆ—中,等到閒置時å†é€å‡ºã€‚"
+msgstr "延後é€å‡ºè¨Šè™Ÿï¼Œå°‡å…¶å­˜æ”¾æ–¼ä½‡åˆ—中並待閒置時å†é€å‡ºã€‚"
#: editor/connections_dialog.cpp
msgid "Oneshot"
-msgstr "一次性"
+msgstr "單次"
#: editor/connections_dialog.cpp
msgid "Disconnects the signal after its first emission."
-msgstr "第一次é€å‡ºè¨Šè™Ÿå¾Œå³ä¸­æ–·é€£æŽ¥ã€‚"
+msgstr "首次發é€è¨Šè™Ÿå¾Œä¸­æ–·é€£æŽ¥ã€‚"
#: editor/connections_dialog.cpp
msgid "Cannot connect signal"
@@ -892,7 +845,6 @@ msgstr "無法連接訊號"
#: editor/export_template_manager.cpp editor/groups_editor.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -913,15 +865,15 @@ msgstr "訊號:"
#: editor/connections_dialog.cpp
msgid "Connect '%s' to '%s'"
-msgstr "將 '%s' 連接到 '%s'"
+msgstr "將「%sã€é€£æŽ¥è‡³ã€Œ%sã€"
#: editor/connections_dialog.cpp
msgid "Disconnect '%s' from '%s'"
-msgstr "將 '%s' 從 '%s' 中斷連接"
+msgstr "將「%sã€è‡ªã€Œ%sã€æ–·é–‹"
#: editor/connections_dialog.cpp
msgid "Disconnect all from signal: '%s'"
-msgstr "中斷所有來自 '%s' 的訊號連接"
+msgstr "中斷所有來自「%sã€çš„訊號"
#: editor/connections_dialog.cpp
msgid "Connect..."
@@ -930,7 +882,7 @@ msgstr "連接..."
#: editor/connections_dialog.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Disconnect"
-msgstr "æ–·ç·š"
+msgstr "斷開訊號連接"
#: editor/connections_dialog.cpp
msgid "Connect a Signal to a Method"
@@ -942,7 +894,7 @@ msgstr "編輯連接內容:"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
-msgstr "確定è¦åˆ é™¤æ‰€æœ‰ä¾†è‡ª \"%s\" 的訊號連接嗎?"
+msgstr "確定è¦åˆ é™¤æ‰€æœ‰ä¾†è‡ªè¨Šè™Ÿã€Œ%sã€çš„連接嗎?"
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
@@ -954,7 +906,7 @@ msgstr "確定è¦åˆªé™¤æ‰€æœ‰ä¾†è‡ªæ­¤è¨Šè™Ÿçš„連接嗎?"
#: editor/connections_dialog.cpp
msgid "Disconnect All"
-msgstr "中斷所有連接"
+msgstr "中斷全部"
#: editor/connections_dialog.cpp
msgid "Edit..."
@@ -962,40 +914,40 @@ msgstr "編輯…"
#: editor/connections_dialog.cpp
msgid "Go To Method"
-msgstr "å‰å¾€æ–¹æ³•"
+msgstr "跳至方法"
#: editor/create_dialog.cpp
msgid "Change %s Type"
-msgstr "變更 %s 種類"
+msgstr "更改 %s 型別"
#: editor/create_dialog.cpp editor/project_settings_editor.cpp
msgid "Change"
-msgstr "æ›´æ›"
+msgstr "更改"
#: editor/create_dialog.cpp
msgid "Create New %s"
-msgstr "新增 %s"
+msgstr "建立新的 %s"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
msgid "Favorites:"
-msgstr "我的最愛:"
+msgstr "我的最愛:"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
msgid "Recent:"
-msgstr "最近存å–:"
+msgstr "最近存å–:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
#: editor/property_selector.cpp editor/quick_open.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
-msgstr "æœå°‹:"
+msgstr "æœå°‹ï¼š"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
#: editor/property_selector.cpp editor/quick_open.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Matches:"
-msgstr "符åˆæ¢ä»¶:"
+msgstr "符åˆæ¢ä»¶ï¼š"
#: editor/create_dialog.cpp editor/editor_plugin_settings.cpp
#: editor/plugin_config_dialog.cpp
@@ -1003,37 +955,36 @@ msgstr "符åˆæ¢ä»¶:"
#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Description:"
-msgstr "æè¿°:"
+msgstr "æ述:"
#: editor/dependency_editor.cpp
msgid "Search Replacement For:"
-msgstr "尋找å–代目標:"
+msgstr "尋找å–代目標:"
#: editor/dependency_editor.cpp
msgid "Dependencies For:"
-msgstr "相ä¾æ–¼:"
+msgstr "相ä¾æ–¼ï¼š"
#: editor/dependency_editor.cpp
msgid ""
"Scene '%s' is currently being edited.\n"
"Changes will only take effect when reloaded."
msgstr ""
-"場景 '%s' 正在編譯中。\n"
-"需é‡æ–°è¼‰å…¥æ‰èƒ½ä½¿è®Šæ›´ç”Ÿæ•ˆã€‚"
+"場景「%sã€æ­£åœ¨ç·¨è¼¯ä¸­ã€‚\n"
+"變更會在é‡æ–°è¼‰å…¥æ™‚套用。"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Resource '%s' is in use.\n"
"Changes will only take effect when reloaded."
msgstr ""
-"'%s' 資æºæ­£åœ¨ä½¿ç”¨ä¸­ã€‚\n"
+"資æºã€Œ%sã€æ­£åœ¨ä½¿ç”¨ä¸­ã€‚\n"
"變更會在é‡æ–°è¼‰å…¥æ™‚套用。"
#: editor/dependency_editor.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
-msgstr "相ä¾"
+msgstr "相ä¾æ€§"
#: editor/dependency_editor.cpp
msgid "Resource"
@@ -1046,7 +997,7 @@ msgstr "路徑"
#: editor/dependency_editor.cpp
msgid "Dependencies:"
-msgstr "相ä¾:"
+msgstr "相ä¾æ–¼ï¼š"
#: editor/dependency_editor.cpp
msgid "Fix Broken"
@@ -1058,7 +1009,7 @@ msgstr "相ä¾æ€§ç·¨è¼¯å™¨"
#: editor/dependency_editor.cpp
msgid "Search Replacement Resource:"
-msgstr "æœå°‹æ›¿ä»£è³‡æºï¼š"
+msgstr "æœå°‹ä¸¦å–代資æºï¼š"
#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp
#: editor/editor_help_search.cpp editor/editor_node.cpp
@@ -1072,12 +1023,11 @@ msgstr "é–‹å•Ÿ"
#: editor/dependency_editor.cpp
msgid "Owners Of:"
-msgstr "æ“有者:"
+msgstr "æ“有者:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Remove selected files from the project? (Can't be restored)"
-msgstr "此動作無法復原, 確定è¦å¾žå°ˆæ¡ˆä¸­åˆªé™¤æ‰€é¸çš„檔案?"
+msgstr "確定è¦å°‡æ‰€é¸æª”案自專案中移除嗎?(無法復原)"
#: editor/dependency_editor.cpp
msgid ""
@@ -1085,21 +1035,20 @@ msgid ""
"work.\n"
"Remove them anyway? (no undo)"
msgstr ""
-"刪除這些檔案å¯èƒ½é€ æˆå…¶ä»–資æºç„¡æ³•æ­£å¸¸é‹ä½œ\n"
-"此動作無法復原, 確定è¦åˆªé™¤å—Ž?"
+"有其他資æºéœ€è¦æ­£åœ¨åˆªé™¤çš„檔案以正常é‹ä½œã€‚\n"
+"ä¾ç„¶è¦ç§»é™¤å—Žï¼Ÿï¼ˆç„¡æ³•å¾©åŽŸï¼‰"
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
-msgstr "無法移除:"
+msgstr "無法移除:"
#: editor/dependency_editor.cpp
msgid "Error loading:"
-msgstr "載入時發生錯誤:"
+msgstr "載入時發生錯誤:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Load failed due to missing dependencies:"
-msgstr "場景缺少了æŸäº›è³‡æºä»¥è‡³æ–¼ç„¡æ³•è¼‰å…¥"
+msgstr "由於缺ä¹ä¸‹åˆ—相ä¾æ€§å…§å®¹è€Œç„¡æ³•è¼‰å…¥ï¼š"
#: editor/dependency_editor.cpp editor/editor_node.cpp
msgid "Open Anyway"
@@ -1107,7 +1056,7 @@ msgstr "強制開啟"
#: editor/dependency_editor.cpp
msgid "Which action should be taken?"
-msgstr "該執行什麼æ“作呢?"
+msgstr "該執行什麼æ“作?"
#: editor/dependency_editor.cpp
msgid "Fix Dependencies"
@@ -1115,20 +1064,19 @@ msgstr "修復相ä¾æ€§"
#: editor/dependency_editor.cpp
msgid "Errors loading!"
-msgstr "載入錯誤!"
+msgstr "載入錯誤ï¼"
#: editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr "確定è¦æ°¸ä¹…刪除 %d 個物件 ? (無法復原)"
+msgstr "是å¦è¦æ°¸ä¹…刪除「%dã€å€‹é …目?(無法復原ï¼ï¼‰"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Show Dependencies"
-msgstr "相ä¾"
+msgstr "顯示相ä¾æ€§"
#: editor/dependency_editor.cpp
msgid "Orphan Resource Explorer"
-msgstr "孤立資料管ç†å™¨"
+msgstr "孤立資æºç€è¦½å™¨"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
@@ -1144,21 +1092,19 @@ msgstr "æ“有"
#: editor/dependency_editor.cpp
msgid "Resources Without Explicit Ownership:"
-msgstr "沒有明定æ“有者的資æºï¼š"
+msgstr "沒有明確從屬關係的資æºï¼š"
#: editor/dictionary_property_edit.cpp
-#, fuzzy
msgid "Change Dictionary Key"
-msgstr "改變字典 key"
+msgstr "改變字典éµ"
#: editor/dictionary_property_edit.cpp
-#, fuzzy
msgid "Change Dictionary Value"
-msgstr "改變字典 value"
+msgstr "改變字典值"
#: editor/editor_about.cpp
msgid "Thanks from the Godot community!"
-msgstr "Godot 社群感è¬ä½ !"
+msgstr "Godot 社群感è¬ä½ ï¼"
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
@@ -1170,11 +1116,11 @@ msgstr "專案創始人"
#: editor/editor_about.cpp
msgid "Lead Developer"
-msgstr "主開發者"
+msgstr "主è¦é–‹ç™¼è€…"
#: editor/editor_about.cpp
msgid "Project Manager "
-msgstr "專案管ç†äºº "
+msgstr "專案管ç†å“¡ "
#: editor/editor_about.cpp
msgid "Developers"
@@ -1214,23 +1160,21 @@ msgstr "æ贈者"
#: editor/editor_about.cpp
msgid "License"
-msgstr "授權"
+msgstr "授權æ¢æ¬¾"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Third-party Licenses"
msgstr "第三方授權æ¢æ¬¾"
#: editor/editor_about.cpp
-#, fuzzy
msgid ""
"Godot Engine relies on a number of third-party free and open source "
"libraries, all compatible with the terms of its MIT license. The following "
"is an exhaustive list of all such third-party components with their "
"respective copyright statements and license terms."
msgstr ""
-"Godot Engine ä¾è³´è‘—許多與 MIT 授權æ¢æ¬¾ç›¸å®¹ã€è‡ªç”±é–‹æºçš„第三方函å¼åº«ã€‚以下是這"
-"些第三方元件的完整列表,附有它們å„自的著作權宣示與授權æ¢æ¬¾ã€‚"
+"Godot Engine ä¾è³´æ•¸å€‹è‡ªç”±ä¸”開放原始碼的第三方函å¼åº«ï¼Œæ‰€æœ‰å‡½å¼åº«çš†ç›¸å®¹æ–¼ MIT "
+"授權æ¢æ¬¾ã€‚以下是這些第三方元件的完整列表於其å„自之著作權宣告與授權æ¢æ¬¾ã€‚"
#: editor/editor_about.cpp
msgid "All Components"
@@ -1242,17 +1186,15 @@ msgstr "元件"
#: editor/editor_about.cpp
msgid "Licenses"
-msgstr "授權"
+msgstr "授權æ¢æ¬¾"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Error opening package file, not in ZIP format."
-msgstr "é–‹å•Ÿå¥—ä»¶æª”æ¡ˆå‡ºéŒ¯ï¼Œéž zip æ ¼å¼ã€‚"
+msgstr "ç„¡æ³•é–‹å•Ÿå¥—ä»¶æª”æ¡ˆï¼Œéž ZIP æ ¼å¼ã€‚"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (Already Exists)"
-msgstr "Autoload「%sã€å·²ç¶“存在!"
+msgstr "%s(已經存在)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1260,27 +1202,24 @@ msgstr "正在解壓縮素æ"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "The following files failed extraction from package:"
-msgstr "æå–以下檔案失敗:"
+msgstr "自套件中å–得下列檔案失敗:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "And %s more files."
-msgstr "還有 %d 個檔案"
+msgstr "與其他 %d 個檔案。"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Package installed successfully!"
-msgstr "套件安è£æˆåŠŸ!"
+msgstr "套件安è£æˆåŠŸï¼"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Success!"
-msgstr "æˆåŠŸ!"
+msgstr "æˆåŠŸï¼"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Package Contents:"
-msgstr "內容:"
+msgstr "套件內容:"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
@@ -1292,7 +1231,7 @@ msgstr "套件安è£"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
-msgstr "å–‡å­"
+msgstr "æšè²å™¨"
#: editor/editor_audio_buses.cpp
msgid "Add Effect"
@@ -1300,34 +1239,31 @@ msgstr "新增效果"
#: editor/editor_audio_buses.cpp
msgid "Rename Audio Bus"
-msgstr "é‡æ–°å‘½å Audio Bus"
+msgstr "é‡æ–°å‘½å音訊 Bus"
#: editor/editor_audio_buses.cpp
msgid "Change Audio Bus Volume"
-msgstr "變更 Audio Bus 音é‡"
+msgstr "更改音訊 Bus 音é‡"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Toggle Audio Bus Solo"
-msgstr "åˆ‡æ› Audio Bus çš„ Solo"
+msgstr "切æ›éŸ³è¨Š Bus çš„ Solo"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Toggle Audio Bus Mute"
-msgstr "åˆ‡æ› Audio Bus çš„ Mute"
+msgstr "éœéŸ³ï¼å–消éœéŸ³éŸ³è¨Š Bus"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Toggle Audio Bus Bypass Effects"
-msgstr "åˆ‡æ› Audio Bus 忽略效果"
+msgstr "忽略ï¼å–消忽略音訊 Bus 效果"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
-msgstr "é¸æ“‡ Audio Bus 輸出地點"
+msgstr "é¸æ“‡ Bus 輸出地點"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus Effect"
-msgstr "新增 Audio Bus 效果"
+msgstr "新增音效 Bus 效果"
#: editor/editor_audio_buses.cpp
msgid "Move Bus Effect"
@@ -1338,12 +1274,10 @@ msgid "Delete Bus Effect"
msgstr "刪除 Bus 效果"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Drag & drop to rearrange."
-msgstr "Audio Bus。拖放以é‡æ–°æŽ’列。"
+msgstr "拖放以é‡æ–°æŽ’列。"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Solo"
msgstr "Solo"
@@ -1352,9 +1286,8 @@ msgid "Mute"
msgstr "éœéŸ³"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bypass"
-msgstr "忽略效果 (Bypass)"
+msgstr "忽略效果"
#: editor/editor_audio_buses.cpp
msgid "Bus options"
@@ -1363,7 +1296,7 @@ msgstr "Bus é¸é …"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
-msgstr "製作複本"
+msgstr "é‡è¤‡"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
@@ -1375,23 +1308,23 @@ msgstr "刪除效果"
#: editor/editor_audio_buses.cpp
msgid "Audio"
-msgstr "è²éŸ³"
+msgstr "音訊"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
-msgstr "新增 Audio Bus"
+msgstr "新增音訊 Bus"
#: editor/editor_audio_buses.cpp
msgid "Master bus can't be deleted!"
-msgstr "Master Bus ä¸èƒ½è¢«åˆªé™¤!"
+msgstr "Master Bus ä¸å¯åˆªé™¤ï¼"
#: editor/editor_audio_buses.cpp
msgid "Delete Audio Bus"
-msgstr "刪除 Audio Bus"
+msgstr "刪除音訊 Bus"
#: editor/editor_audio_buses.cpp
msgid "Duplicate Audio Bus"
-msgstr "製作 Audio Bus 的複本"
+msgstr "é‡è¤‡éŸ³è¨Š Bus"
#: editor/editor_audio_buses.cpp
msgid "Reset Bus Volume"
@@ -1399,46 +1332,43 @@ msgstr "é‡è¨­ Bus 音é‡"
#: editor/editor_audio_buses.cpp
msgid "Move Audio Bus"
-msgstr "移動 Audio Bus"
+msgstr "移動音訊 Bus"
#: editor/editor_audio_buses.cpp
msgid "Save Audio Bus Layout As..."
-msgstr "å¦å­˜ Audio Bus é…置為..."
+msgstr "å¦å­˜éŸ³è¨Š Bus é…置為..."
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Location for New Layout..."
msgstr "æ–°é…置的ä½ç½®..."
#: editor/editor_audio_buses.cpp
msgid "Open Audio Bus Layout"
-msgstr "é–‹å•Ÿ Audio Bus é…ç½®"
+msgstr "開啟音訊 Bus é…ç½®"
#: editor/editor_audio_buses.cpp
msgid "There is no '%s' file."
-msgstr "'%s' 這個檔案ä¸å­˜åœ¨ã€‚"
+msgstr "檔案「%sã€ä¸å­˜åœ¨ã€‚"
#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp
msgid "Layout"
-msgstr "佈局"
+msgstr "ç•«é¢é…ç½®"
#: editor/editor_audio_buses.cpp
msgid "Invalid file, not an audio bus layout."
-msgstr "檔案格å¼ä¸æ­£ç¢ºï¼Œä¸æ˜¯ Audio Bus é…置檔。"
+msgstr "無效的檔案,或該檔案ä¸æ˜¯éŸ³è¨Š Bus é…置檔。"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Error saving file: %s"
-msgstr "儲存資æºéŒ¯èª¤!"
+msgstr "無法ä¿å­˜æª”案:%s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
msgstr "新增 Bus"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "å¦å­˜ Audio Bus é…置為..."
+msgstr "新增一個新的音訊 Bus 至該é…置。"
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1456,11 +1386,11 @@ msgstr "å¦å­˜æ–°æª”"
#: editor/editor_audio_buses.cpp
msgid "Save this Bus Layout to a file."
-msgstr "儲存目å‰çš„ Bus é…置到檔案裡。"
+msgstr "將該 Bus é…ç½®ä¿å­˜è‡³æª”案。"
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
-msgstr "載入é è¨­å€¼"
+msgstr "載入é è¨­"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
@@ -1472,52 +1402,45 @@ msgstr "建立新的 Bus é…置。"
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
-msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。"
+msgstr "無效的å稱。"
#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
-msgstr "åˆæ³•å­—å…ƒ:"
+msgstr "å¯ä½¿ç”¨çš„字元:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing engine class name."
-msgstr "ä¸æ­£ç¢ºçš„å字。åå­—ä¸èƒ½èˆ‡ç¾æœ‰çš„ engine class åè¡çªã€‚"
+msgstr "ä¸å¯èˆ‡ç¾å­˜çš„引擎類別å稱è¡çªã€‚"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing built-in type name."
-msgstr "無效å稱.ä¸èƒ½èˆ‡ç¾æœ‰çš„內置類型å稱沖çª."
+msgstr "ä¸å¯èˆ‡å…§å»ºçš„列表å稱è¡çªã€‚"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing global constant name."
-msgstr "無效å稱.ä¸èƒ½è·Ÿå·²ç¶“存在的全局常é‡å稱é‡è¤‡."
+msgstr "ä¸å¯èˆ‡ç¾å­˜çš„全域常數å稱è¡çªã€‚"
#: editor/editor_autoload_settings.cpp
msgid "Keyword cannot be used as an autoload name."
-msgstr "無法使用關éµå­—當作自動載入的å稱。"
+msgstr "é—œéµå­—無法作為 Autoload å稱。"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Autoload '%s' already exists!"
-msgstr "Autoload「%sã€å·²ç¶“存在!"
+msgstr "Autoload「%sã€å·²ç¶“存在ï¼"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Rename Autoload"
msgstr "é‡æ–°å‘½å Autoload"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Toggle AutoLoad Globals"
-msgstr "åˆ‡æ› AutoLoad 的全域變數"
+msgstr "觸發全域 AutoLoad"
#: editor/editor_autoload_settings.cpp
msgid "Move Autoload"
msgstr "移動 Autoload"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Remove Autoload"
msgstr "刪除 Autoload"
@@ -1526,38 +1449,27 @@ msgid "Enable"
msgstr "啟用"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Rearrange Autoloads"
msgstr "é‡æ–°æŽ’列 Autoload"
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
-msgid "Invalid path."
-msgstr "無效的路徑."
-
-#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-msgid "File does not exist."
-msgstr "檔案ä¸å­˜åœ¨."
-
#: editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr "ä¸åœ¨è³‡æºè·¯å¾‘中。"
+msgid "Can't add autoload:"
+msgstr "無法新增 Autoload:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Add AutoLoad"
-msgstr "新增 AutoLoad"
+msgstr "新增 Autoload"
#: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp
msgid "Path:"
-msgstr "路徑:"
+msgstr "路徑:"
#: editor/editor_autoload_settings.cpp
msgid "Node Name:"
-msgstr "節點å稱:"
+msgstr "節點å稱:"
#: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp
#: editor/editor_profiler.cpp editor/project_manager.cpp
@@ -1567,7 +1479,7 @@ msgstr "å稱"
#: editor/editor_autoload_settings.cpp
msgid "Singleton"
-msgstr "單例"
+msgstr "單例 (Singleton)"
#: editor/editor_data.cpp editor/inspector_dock.cpp
msgid "Paste Params"
@@ -1583,21 +1495,19 @@ msgstr "正在儲存變更..."
#: editor/editor_data.cpp
msgid "Updating scene..."
-msgstr "場景更新中…"
+msgstr "正在更新場景…"
#: editor/editor_data.cpp editor/editor_properties.cpp
-#, fuzzy
msgid "[empty]"
-msgstr "(空)"
+msgstr "[空]"
#: editor/editor_data.cpp
msgid "[unsaved]"
-msgstr "(未儲存)"
+msgstr "[未ä¿å­˜]"
#: editor/editor_dir_dialog.cpp
-#, fuzzy
msgid "Please select a base directory first."
-msgstr "è«‹å…ˆé¸æ“‡ä¸€å€‹åŸºåº•çš„資料夾"
+msgstr "è«‹å…ˆé¸æ“‡ä¸€å€‹åŸºç¤Žçš„資料夾。"
#: editor/editor_dir_dialog.cpp
msgid "Choose a Directory"
@@ -1607,19 +1517,19 @@ msgstr "é¸æ“‡è³‡æ–™å¤¾"
#: editor/filesystem_dock.cpp editor/project_manager.cpp
#: scene/gui/file_dialog.cpp
msgid "Create Folder"
-msgstr "新增資料夾"
+msgstr "建立資料夾"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
-msgstr "å稱:"
+msgstr "å稱:"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Could not create folder."
-msgstr "無法新增資料夾."
+msgstr "無法新增資料夾。"
#: editor/editor_dir_dialog.cpp
msgid "Choose"
@@ -1627,181 +1537,158 @@ msgstr "é¸æ“‡"
#: editor/editor_export.cpp
msgid "Storing File:"
-msgstr "儲存檔案:"
+msgstr "儲存檔案:"
#: editor/editor_export.cpp
msgid "No export template found at the expected path:"
-msgstr "在é æœŸçš„路徑中找ä¸åˆ°åŒ¯å…¥æ¨¡æ¿ï¼š"
+msgstr "在é æœŸçš„路徑中找ä¸åˆ°åŒ¯å‡ºæ¨£æ¿ï¼š"
#: editor/editor_export.cpp
msgid "Packing"
-msgstr "包è£ä¸­"
+msgstr "正在打包"
#: editor/editor_export.cpp
msgid ""
"Target platform requires 'ETC' texture compression for GLES2. Enable 'Import "
"Etc' in Project Settings."
msgstr ""
-"使用 GLES2 時,目標平å°è¦æ±‚使用 'ETC' æ質壓縮。請在「專案設定ã€ä¸­é–‹å•Ÿã€ŒåŒ¯å…¥ "
-"Etcã€ã€‚"
+"目標平å°ä¸Šçš„ GLES2 必須使用「ETCã€ç´‹ç†å£“縮。請在專案設定中啟用「匯入 ETCã€ã€‚"
#: editor/editor_export.cpp
msgid ""
"Target platform requires 'ETC2' texture compression for GLES3. Enable "
"'Import Etc 2' in Project Settings."
msgstr ""
-"使用 GLES3 時,目標平å°è¦æ±‚使用 'ETC2' æ質壓縮。請在「專案設定ã€ä¸­é–‹å•Ÿã€ŒåŒ¯"
-"å…¥ Etc 2ã€ã€‚"
+"目標平å°ä¸Šçš„ GLES3 必須使用「ETC2ã€ç´‹ç†å£“縮。請在專案設定中啟用「匯入 "
+"ETC2ã€ã€‚"
#: editor/editor_export.cpp
-#, fuzzy
msgid ""
"Target platform requires 'ETC' texture compression for the driver fallback "
"to GLES2.\n"
"Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback "
"Enabled'."
msgstr ""
-"使用「回退至 GLES2ã€çš„驅動器時,目標平å°è¦æ±‚使用 'ETC' 貼圖壓縮。\n"
-"請在「專案設定ã€ä¸­é–‹å•Ÿã€ŒåŒ¯å…¥ Etcã€ï¼Œæˆ–是關閉「開啟驅動器回退ã€é¸é …。"
+"目標平å°ä¸Šçš„ GLES2 回退驅動器功能必須使用「ETCã€ç´‹ç†å£“縮。\n"
+"請在專案設定中啟用「匯入 ETCã€æˆ–是ç¦ç”¨ã€Œå•Ÿç”¨é©…動器回退ã€ã€‚"
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
-msgstr "找ä¸åˆ°è‡ªå®šç¾©èª¿è©¦ç¯„本。"
+msgstr "找ä¸åˆ°è‡ªå®šç¾©åµéŒ¯æ¨£æ¿ã€‚"
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
-msgstr "找ä¸åˆ°è‡ªå®šç¾©ç™¼ä½ˆç¯„本。"
+msgstr "找ä¸åˆ°è‡ªå®šç¾©é‡‹å‡ºæ¨£æ¿ã€‚"
#: editor/editor_export.cpp platform/javascript/export/export.cpp
msgid "Template file not found:"
-msgstr "找ä¸åˆ°ç¯„本檔案:"
+msgstr "找ä¸åˆ°æ¨£æ¿æª”案:"
#: editor/editor_export.cpp
msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
-msgstr "匯出為 32 ä½å…ƒåŸ·è¡Œæª”時,內嵌的 PCK 大å°ä¸å¾—è¶…éŽ 4 GB。"
+msgstr "匯出 32 ä½å…ƒæª”時,內嵌的 PCK 大å°ä¸å¾—è¶…éŽ 4 GB。"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "3D Editor"
-msgstr "編輯器"
+msgstr "3D 編輯器"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Script Editor"
-msgstr "開啟腳本編輯器"
+msgstr "腳本編輯器"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Asset Library"
-msgstr "é–‹å•Ÿç´ æ倉庫"
+msgstr "ç´ æ庫"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
-msgstr "正在編譯場景樹"
+msgstr "正在編輯場景樹"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Import Dock"
-msgstr "å°Žå…¥"
+msgstr "匯入 Dock"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
-msgstr "節點å稱:"
+msgstr "節點 Dock"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem and Import Docks"
-msgstr "文件系統"
+msgstr "檔案系統與匯入 Dock"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Erase profile '%s'? (no undo)"
-msgstr "å–代全部"
+msgstr "確定è¦æ¸…除 Profile「%sã€å—Žï¼Ÿï¼ˆç„¡æ³•å¾©åŽŸï¼‰"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Profile must be a valid filename and must not contain '.'"
-msgstr "Profile 必須為有效的檔å,而且其中ä¸å¾—åŒ…å« '.' 字元。"
+msgstr "Profile 必須為一個有效的檔案å稱,並且ä¸åŒ…å«ã€Œ.ã€"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Profile with this name already exists."
-msgstr "具有此å稱的檔或資料夾已存在。"
+msgstr "已有相åŒå稱的 Profile 存在。"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(Editor Disabled, Properties Disabled)"
-msgstr "(編譯已關閉,屬性已關閉)"
+msgstr "(已ç¦ç”¨ç·¨è¼¯å™¨ï¼Œå·²ç¦ç”¨å±¬æ€§ï¼‰"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(Properties Disabled)"
-msgstr "僅屬性"
+msgstr "(已ç¦ç”¨å±¬æ€§ï¼‰"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(Editor Disabled)"
-msgstr "å·²åœç”¨"
+msgstr "(已ç¦ç”¨ç·¨è¼¯å™¨ï¼‰"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Options:"
-msgstr "æè¿°:"
+msgstr "類別é¸é …:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enable Contextual Editor"
-msgstr "開啟下一個編輯器"
+msgstr "啟用上下文編輯器"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enabled Properties:"
-msgstr "效能:"
+msgstr "啟用屬性:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enabled Features:"
-msgstr "功能"
+msgstr "啟用功能:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enabled Classes:"
-msgstr "æœå°‹ Class"
+msgstr "啟用類別:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
-msgstr "檔案 '%s' 的內容格å¼éŒ¯èª¤ï¼Œä¸­æ­¢åŒ¯å…¥ã€‚"
+msgstr "檔案「%sã€çš„æ ¼å¼ç„¡æ•ˆï¼Œå·²ä¸­æ­¢åŒ¯å…¥ã€‚"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid ""
"Profile '%s' already exists. Remove it first before importing, import "
"aborted."
-msgstr "Profile '%s' 已經存在。在匯入的å‰è«‹å…ˆç§»é™¤ã€‚中止匯入。"
+msgstr "Profile「%sã€å·²ç¶“存在。匯入å‰è«‹å…ˆå°‡å…¶ç§»é™¤ã€‚已中止匯入。"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Error saving profile to path: '%s'."
-msgstr "載入場景時發生錯誤"
+msgstr "ä¿å­˜ Profile 至路徑「%sã€æ™‚發生錯誤。"
#: editor/editor_feature_profile.cpp
msgid "Unset"
msgstr "未設定"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Current Profile:"
-msgstr "當å‰ç‰ˆæœ¬:"
+msgstr "ç›®å‰ç‰ˆæœ¬ï¼š"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Make Current"
-msgstr "當å‰ï¼š"
+msgstr "設為目å‰çš„"
#: editor/editor_feature_profile.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
@@ -1812,51 +1699,43 @@ msgstr "新增"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/project_manager.cpp
msgid "Import"
-msgstr "å°Žå…¥"
+msgstr "匯入"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
-msgstr "輸出"
+msgstr "匯出"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Available Profiles:"
-msgstr "效能:"
+msgstr "å¯ç”¨çš„ Profile:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Options"
-msgstr "æè¿°:"
+msgstr "類別é¸é …"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "New profile name:"
-msgstr "æ–°å稱:"
+msgstr "新增 Profile å稱:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Erase Profile"
-msgstr "擦除磚塊地圖"
+msgstr "清除 Profile"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Godot Feature Profile"
-msgstr "管ç†è¼¸å‡ºæ¨¡æ¿"
+msgstr "Godot 功能 Profile"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Import Profile(s)"
-msgstr "已導入的項目"
+msgstr "匯入 Profile"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Export Profile"
-msgstr "輸出專案"
+msgstr "匯出 Profile"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Manage Editor Feature Profiles"
-msgstr "管ç†è¼¸å‡ºæ¨¡æ¿"
+msgstr "管ç†ç·¨è¼¯å™¨åŠŸèƒ½ Profile"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select Current Folder"
@@ -1864,10 +1743,9 @@ msgstr "é¸æ“‡ç›®å‰çš„資料夾"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File Exists, Overwrite?"
-msgstr "檔案已經存在, è¦è¦†å¯«å—Ž?"
+msgstr "檔案已存在,是å¦è¦†è“‹ï¼Ÿ"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select This Folder"
msgstr "é¸æ“‡æ­¤è³‡æ–™å¤¾"
@@ -1876,15 +1754,13 @@ msgid "Copy Path"
msgstr "複製路徑"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-#, fuzzy
msgid "Open in File Manager"
-msgstr "在檔案管ç†å“¡å…§é¡¯ç¤º"
+msgstr "在檔案總管中開啟"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/filesystem_dock.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Show in File Manager"
-msgstr "在檔案管ç†å“¡å…§é¡¯ç¤º"
+msgstr "在檔案總管中顯示"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "New Folder..."
@@ -1897,11 +1773,11 @@ msgstr "é‡æ–°æ•´ç†"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
-msgstr "å¯èªå¾—全部"
+msgstr "支æ´çš„é¡žåž‹"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Files (*)"
-msgstr "所有類型檔案"
+msgstr "所有類型的檔案 (*)"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File"
@@ -1924,32 +1800,31 @@ msgstr "開啟檔案或資料夾"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp scene/gui/file_dialog.cpp
msgid "Save"
-msgstr "儲存"
+msgstr "ä¿å­˜"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Save a File"
-msgstr "儲存檔案"
+msgstr "ä¿å­˜æª”案"
#: editor/editor_file_dialog.cpp
msgid "Go Back"
-msgstr "往後"
+msgstr "上一é "
#: editor/editor_file_dialog.cpp
msgid "Go Forward"
-msgstr "å¾€å‰"
+msgstr "下一é "
#: editor/editor_file_dialog.cpp
msgid "Go Up"
-msgstr "往上"
+msgstr "上一層"
#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr "切æ›é¡¯ç¤ºéš±è—檔案"
+msgstr "顯示ï¼éš±è—éš±è—檔案"
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Toggle Favorite"
-msgstr "切æ›æœ€æ„›"
+msgstr "新增ï¼å–消我的最愛"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
@@ -1961,214 +1836,191 @@ msgstr "èšç„¦è·¯å¾‘"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr "å‘上移動收è—"
+msgstr "å‘上移動我的最愛"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr "å‘下移動收è—"
+msgstr "å‘下移動我的最愛"
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to previous folder."
-msgstr "無法新增資料夾"
+msgstr "å‰å¾€ä¸Šä¸€å€‹è³‡æ–™å¤¾ã€‚"
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to next folder."
-msgstr "無法新增資料夾"
+msgstr "å‰å¾€ä¸‹ä¸€å€‹è³‡æ–™å¤¾ã€‚"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Go to parent folder."
-msgstr "無法新增資料夾"
+msgstr "å‰å¾€ä¸Šå±¤è³‡æ–™å¤¾ã€‚"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Refresh files."
-msgstr "æœå°‹ Class"
+msgstr "é‡æ–°æ•´ç†æª”案。"
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "(Un)favorite current folder."
-msgstr "無法新增資料夾"
+msgstr "將目å‰çš„資料夾新增或移除我的最愛。"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Toggle the visibility of hidden files."
-msgstr "切æ›é¡¯ç¤ºéš±è—檔案"
+msgstr "顯示ï¼å–消顯示隱è—檔案。"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails."
-msgstr "以縮略圖網格形å¼æŸ¥çœ‹é …目。"
+msgstr "以網格縮圖方å¼é¡¯ç¤ºé …目。"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a list."
-msgstr "以清單形å¼æŸ¥çœ‹é …目。"
+msgstr "以清單方å¼é¡¯ç¤ºé …目。"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
-msgstr "資料夾 & 檔案:"
+msgstr "資料夾與檔案:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Preview:"
-msgstr "é è¦½:"
+msgstr "é è¦½ï¼š"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File:"
-msgstr "檔案:"
+msgstr "檔案:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Must use a valid extension."
msgstr "必須使用有效的副檔å。"
#: editor/editor_file_system.cpp
msgid "ScanSources"
-msgstr "掃ææº"
+msgstr "掃æ原始檔"
#: editor/editor_file_system.cpp
msgid ""
"There are multiple importers for different types pointing to file %s, import "
"aborted"
-msgstr "因為有多個ä¸åŒç¨®é¡žimporter指å‘檔案 %s,導入失敗"
+msgstr "由於多個匯入器以ä¸åŒçš„型別指å‘檔案 %s,已中止匯入"
#: editor/editor_file_system.cpp
msgid "(Re)Importing Assets"
-msgstr "(é‡æ–°)載入素æ"
+msgstr "(é‡æ–°ï¼‰åŒ¯å…¥ç´ æ"
#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Top"
-msgstr "上é¢"
+msgstr "上"
#: editor/editor_help.cpp
msgid "Class:"
-msgstr "Class:"
+msgstr "類別:"
#: editor/editor_help.cpp editor/scene_tree_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Inherits:"
-msgstr "繼承:"
+msgstr "繼承:"
#: editor/editor_help.cpp
msgid "Inherited by:"
-msgstr "繼承:"
+msgstr "被繼承:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Description"
-msgstr "æè¿°:"
+msgstr "說明"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Online Tutorials"
-msgstr "線上教學:"
+msgstr "線上教學"
#: editor/editor_help.cpp
msgid "Properties"
-msgstr "性質"
+msgstr "屬性"
#: editor/editor_help.cpp
-#, fuzzy
msgid "override:"
-msgstr "覆蓋"
+msgstr "複寫:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "default:"
-msgstr "é è¨­"
+msgstr "é è¨­ï¼š"
#: editor/editor_help.cpp
msgid "Methods"
msgstr "方法"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Theme Properties"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "主題屬性"
#: editor/editor_help.cpp
msgid "Enumerations"
-msgstr "枚舉"
+msgstr "列舉類型"
#: editor/editor_help.cpp
msgid "Constants"
-msgstr "定數"
+msgstr "常數"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Property Descriptions"
-msgstr "Property 說明:"
+msgstr "屬性說明"
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "數值"
+msgstr "(數值)"
#: editor/editor_help.cpp
msgid ""
"There is currently no description for this property. Please help us by "
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"ç›®å‰æ²’有這個 property 的說明。請幫我們[color=$color][url=$url]è²¢ç»[/url][/"
-"color]一個!"
+"該屬性目å‰ç„¡èªªæ˜Žã€‚請幫助我們[color=$color][url=$url]è²¢ç»ä¸€å€‹[/url][/color]ï¼"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Method Descriptions"
-msgstr "Method 說明:"
+msgstr "方法說明"
#: editor/editor_help.cpp
msgid ""
"There is currently no description for this method. Please help us by [color="
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"ç›®å‰æ²’有這個 method 的說明。請幫我們[color=$color][url=$url]è²¢ç»[/url][/"
-"color]一個!"
+"該方法目å‰æ²’有說明。請幫我們[color=$color][url=$url]è²¢ç»ä¸€å€‹[/url][/color]ï¼"
#: editor/editor_help_search.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
msgid "Search Help"
-msgstr "æœå°‹å¹«åŠ©"
+msgstr "æœå°‹èªªæ˜Ž"
#: editor/editor_help_search.cpp
msgid "Case Sensitive"
msgstr "å€åˆ†å¤§å°å¯«"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Show Hierarchy"
-msgstr "顯示輔助線"
+msgstr "以樹狀顯示"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Display All"
-msgstr "å–代全部"
+msgstr "全部顯示"
#: editor/editor_help_search.cpp
msgid "Classes Only"
-msgstr "僅é™é¡ž"
+msgstr "僅é™é¡žåˆ¥"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Methods Only"
-msgstr "方法"
+msgstr "僅é™æ–¹æ³•"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Signals Only"
-msgstr "信號"
+msgstr "僅é™ä¿¡è™Ÿ"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Constants Only"
-msgstr "定數"
+msgstr "僅é™å¸¸æ•¸"
#: editor/editor_help_search.cpp
msgid "Properties Only"
-msgstr "僅屬性"
+msgstr "僅é™å±¬æ€§"
#: editor/editor_help_search.cpp
msgid "Theme Properties Only"
@@ -2176,36 +2028,31 @@ msgstr "僅é™ä¸»é¡Œå±¬æ€§"
#: editor/editor_help_search.cpp
msgid "Member Type"
-msgstr "æˆå“¡é¡žåž‹"
+msgstr "æˆå“¡åž‹åˆ¥"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Class"
-msgstr "Class:"
+msgstr "類別"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Method"
msgstr "方法"
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Signal"
-msgstr "信號"
+msgstr "訊號"
#: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constant"
-msgstr "固定"
+msgstr "常數"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Property"
-msgstr "屬性:"
+msgstr "屬性"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Theme Property"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "主題屬性"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
@@ -2213,21 +2060,19 @@ msgstr "屬性:"
#: editor/editor_inspector.cpp
msgid "Set"
-msgstr "集åˆ"
+msgstr "設定"
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Set Multiple:"
-msgstr "複數設定:"
+msgstr "設定多個:"
#: editor/editor_log.cpp
msgid "Output:"
-msgstr "輸出:"
+msgstr "輸出:"
#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Copy Selection"
-msgstr "複製é¸æ“‡"
+msgstr "複製所é¸"
#: editor/editor_log.cpp editor/editor_network_profiler.cpp
#: editor/editor_profiler.cpp editor/editor_properties.cpp
@@ -2240,9 +2085,8 @@ msgid "Clear"
msgstr "清除"
#: editor/editor_log.cpp
-#, fuzzy
msgid "Clear Output"
-msgstr "輸出:"
+msgstr "清除輸出"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
#: editor/editor_profiler.cpp
@@ -2255,39 +2099,36 @@ msgid "Start"
msgstr "開始"
#: editor/editor_network_profiler.cpp
-#, fuzzy
msgid "%s/s"
-msgstr "%s/s"
+msgstr "%s/秒"
#: editor/editor_network_profiler.cpp
-#, fuzzy
msgid "Down"
-msgstr "下載"
+msgstr "下行"
#: editor/editor_network_profiler.cpp
msgid "Up"
-msgstr "上"
+msgstr "上行"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
-#, fuzzy
msgid "Node"
msgstr "節點"
#: editor/editor_network_profiler.cpp
msgid "Incoming RPC"
-msgstr "進來的Rpc"
+msgstr "連入 RPC"
#: editor/editor_network_profiler.cpp
msgid "Incoming RSET"
-msgstr "進來的Rset"
+msgstr "連入 RSET"
#: editor/editor_network_profiler.cpp
msgid "Outgoing RPC"
-msgstr "出去的 RPC"
+msgstr "連出 RPC"
#: editor/editor_network_profiler.cpp
msgid "Outgoing RSET"
-msgstr "出去的 RSET"
+msgstr "連出 RSET"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "New Window"
@@ -2295,96 +2136,92 @@ msgstr "新視窗"
#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
-msgstr "無法ä¿å­˜å°Žå…¥çš„資æºã€‚"
+msgstr "匯入的資æºç„¡æ³•ä¿å­˜ã€‚"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: scene/gui/dialogs.cpp
msgid "OK"
-msgstr "確定"
+msgstr "好"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
-msgstr "儲存資æºéŒ¯èª¤!"
+msgstr "ä¿å­˜è³‡æºéŒ¯èª¤ï¼"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"This resource can't be saved because it does not belong to the edited scene. "
"Make it unique first."
-msgstr "無法儲存此資æºï¼Œå› ç‚ºå®ƒä¸å±¬æ–¼å·²ç·¨è¼¯çš„場景。請先讓它æˆç‚ºå”¯ä¸€ã€‚"
+msgstr "由於該資æºä¸å±¬æ–¼å·²ç·¨è¼¯çš„場景,無法ä¿å­˜è©²è³‡æºã€‚請先確ä¿å…¶ç¨ç«‹ã€‚"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As..."
msgstr "å¦å­˜è³‡æºç‚º..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Can't open file for writing:"
-msgstr "無法以寫入模å¼é–‹å•Ÿæª”案:"
+msgstr "無法開啟欲寫入的檔案:"
#: editor/editor_node.cpp
msgid "Requested file format unknown:"
-msgstr "è¦æ±‚了ä¸æ˜Žçš„檔案格å¼:"
+msgstr "è¦æ±‚的檔案格å¼æœªçŸ¥ï¼š"
#: editor/editor_node.cpp
msgid "Error while saving."
-msgstr "儲存中發生了錯誤。"
+msgstr "ä¿å­˜æ™‚發生錯誤。"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Can't open '%s'. The file could have been moved or deleted."
-msgstr "無法打開“%sâ€ã€‚檔案å¯èƒ½å·²è¢«ç§»å‹•æˆ–删除。"
+msgstr "無法開啟「%sã€ã€‚該檔案å¯èƒ½å·²è¢«ç§»å‹•æˆ–刪除。"
#: editor/editor_node.cpp
msgid "Error while parsing '%s'."
-msgstr "åˆ†æž \"%s\" 時發生錯誤。"
+msgstr "無法解æžã€Œ%sã€ã€‚"
#: editor/editor_node.cpp
msgid "Unexpected end of file '%s'."
-msgstr "æ„料外的檔案çµå°¾ (EOF) '%s'。"
+msgstr "未é æœŸçš„檔案çµå°¾ (EOF)「%sã€ã€‚"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Missing '%s' or its dependencies."
-msgstr "缺失 '%s' 或它的ä¾å­˜ã€‚"
+msgstr "缺少「%sã€æˆ–其相ä¾æ€§ã€‚"
#: editor/editor_node.cpp
msgid "Error while loading '%s'."
-msgstr "載入 \"%s\" 時發生錯誤。"
+msgstr "載入「%sã€æ™‚發生錯誤。"
#: editor/editor_node.cpp
msgid "Saving Scene"
-msgstr "正在儲存場景"
+msgstr "正在ä¿å­˜å ´æ™¯"
#: editor/editor_node.cpp
msgid "Analyzing"
-msgstr "分æžä¸­"
+msgstr "正在分æž"
#: editor/editor_node.cpp
msgid "Creating Thumbnail"
msgstr "正在建立縮圖"
#: editor/editor_node.cpp
-#, fuzzy
msgid "This operation can't be done without a tree root."
-msgstr "æ­¤æ“作無法復原, 確定è¦é‚„原嗎?"
+msgstr "無樹狀根目錄無法進行此æ“作。"
#: editor/editor_node.cpp
msgid ""
"This scene can't be saved because there is a cyclic instancing inclusion.\n"
"Please resolve it and then attempt to save again."
msgstr ""
-"åµæ¸¬åˆ°æ­¤å ´æ™¯ä¸­æœ‰å¾ªç’°å¯¦ä¾‹åŒ–引入ç¾è±¡ï¼Œå› æ­¤ç„¡æ³•å„²å­˜ã€‚\n"
+"該場景有循環性實體化å•é¡Œï¼Œç„¡æ³•ä¿å­˜ã€‚\n"
"請先解決此å•é¡Œå¾Œå†è©¦ä¸€æ¬¡ã€‚"
#: editor/editor_node.cpp
msgid ""
"Couldn't save scene. Likely dependencies (instances or inheritance) couldn't "
"be satisfied."
-msgstr "無法儲存此場景。å¯èƒ½æœ‰ä¸å®Œæ•´çš„ä¾å­˜é—œä¿‚(實例化或是繼承上的)。"
+msgstr "無法ä¿å­˜å ´æ™¯ã€‚å¯èƒ½æ˜¯ç”±æ–¼ç›¸ä¾æ€§ï¼ˆå¯¦é«”或繼承)無法滿足。"
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "Can't overwrite scene that is still open!"
-msgstr "無法覆寫ä»è™•æ–¼é–‹å•Ÿç‹€æ…‹çš„場景ï¼"
+msgstr "無法複寫開啟中的場景ï¼"
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
@@ -2392,31 +2229,31 @@ msgstr "無法加載è¦åˆä½µçš„網格庫ï¼"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr "ä¿å­˜MeshLibrary時出錯ï¼"
+msgstr "ä¿å­˜ç¶²æ ¼åº«æ™‚出錯ï¼"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
-msgstr "無法加載Tileset進行åˆä½µï¼"
+msgstr "無法加載è¦åˆä½µçš„圖塊集ï¼"
#: editor/editor_node.cpp
msgid "Error saving TileSet!"
-msgstr "ä¿å­˜tileset時出錯ï¼"
+msgstr "ä¿å­˜ä¿å­˜åœ–塊集時發生錯誤ï¼"
#: editor/editor_node.cpp
msgid "Error trying to save layout!"
-msgstr "嘗試ä¿å­˜ä½ˆå±€æ™‚出錯ï¼"
+msgstr "嘗試ä¿å­˜é…置時出錯ï¼"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr "覆蓋默èªç·¨è¼¯å™¨ä½ˆå±€ã€‚"
+msgstr "已覆蓋é è¨­çš„編輯器é…置。"
#: editor/editor_node.cpp
msgid "Layout name not found!"
-msgstr "找ä¸åˆ°ä½ˆå±€å稱ï¼"
+msgstr "找ä¸åˆ°é…ç½®å稱ï¼"
#: editor/editor_node.cpp
msgid "Restored default layout to base settings."
-msgstr "已將默èªä½ˆå±€é‚„原為基本設定。"
+msgstr "已將é è¨­é…置還原至基本設定。"
#: editor/editor_node.cpp
msgid ""
@@ -2424,24 +2261,22 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"此資æºå±¬æ–¼åŒ¯å…¥çš„場景,因此ä¸å¯ç·¨è¼¯ã€‚\n"
-"請閱讀與匯入場景相關的文件,以便更加瞭解工作æµç¨‹ã€‚"
+"該資æºå±¬æ–¼å·²åŒ¯å…¥çš„場景,因此ä¸å¯ç·¨è¼¯ã€‚ \n"
+"請閱讀有關匯入場景的說明文件以更瞭解該æµç¨‹ã€‚"
#: editor/editor_node.cpp
msgid ""
"This resource belongs to a scene that was instanced or inherited.\n"
"Changes to it won't be kept when saving the current scene."
msgstr ""
-"此資æºå±¬æ–¼è¢«å¯¦ä¾‹åŒ–或被繼承的場景。\n"
-"儲存場景時,此資æºçš„變更ä¸æœƒè¢«ä¿å­˜ã€‚"
+"此資æºå±¬æ–¼å·²è¢«å¯¦ä¾‹åŒ–或被繼承的場景。\n"
+"儲存目å‰å ´æ™¯æ™‚,套用的改動將ä¸æœƒè¢«ä¿å­˜ã€‚"
#: editor/editor_node.cpp
msgid ""
"This resource was imported, so it's not editable. Change its settings in the "
"import panel and then re-import."
-msgstr ""
-"這個資æºæ˜¯åŒ¯å…¥é€²ä¾†çš„,因此無法編譯。請修改匯入控制é¢æ¿ä¸Šçš„設定,å†é‡æ–°åŒ¯å…¥ä¸€"
-"次。"
+msgstr "該資æºè‡ªå¤–部匯入,無法編輯。請在匯入é¢æ¿ä¸­ä¿®æ”¹è¨­å®šä¸¦é‡æ–°åŒ¯å…¥ã€‚"
#: editor/editor_node.cpp
msgid ""
@@ -2450,31 +2285,30 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"此場景是匯入進來的,因此變更ä¸æœƒè¢«ä¿å­˜ã€‚\n"
-"需經éŽå¯¦ä¾‹åŒ–或是繼承,æ‰èƒ½è®Šæ›´å…¶å…§å®¹ã€‚\n"
-"請閱讀與匯入場景相關的文件,以便更加瞭解工作æµç¨‹ã€‚"
+"該場景自外部匯入,因此åšå‡ºçš„改動將ä¸æœƒä¿å­˜ã€‚\n"
+"實例化或繼承後將å¯å°å…¶åšå‡ºä¿®æ”¹ã€‚\n"
+"請閱讀與匯入相關的說明文件以更加瞭解該工作æµç¨‹ã€‚"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"This is a remote object, so changes to it won't be kept.\n"
"Please read the documentation relevant to debugging to better understand "
"this workflow."
msgstr ""
-"此資æºå±¬æ–¼å·²å°Žå…¥çš„場景, å› æ­¤ä¸å¯ç·¨è¼¯ã€‚\n"
-"請閱讀與導入場景相關的文檔, 以便更好地瞭解此工作æµã€‚"
+"該資æºè‡ªå¤–部匯入,因此åšå‡ºçš„改動將ä¸æœƒä¿å­˜ã€‚\n"
+"請閱讀有關åµéŒ¯çš„說明文件以更瞭解該æµç¨‹ã€‚"
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
-msgstr "沒有已定義的場景å¯é‹è¡Œã€‚"
+msgstr "沒有已定義的場景å¯åŸ·è¡Œã€‚"
#: editor/editor_node.cpp
msgid "Current scene was never saved, please save it prior to running."
-msgstr "ç›®å‰çš„場景從未被儲存,在é‹è¡Œå ´æ™¯å‰è«‹å…ˆå­˜æª”。"
+msgstr "ç›®å‰çš„場景從未被ä¿å­˜ï¼Œè«‹å…ˆä¿å­˜ä»¥åŸ·è¡Œã€‚"
#: editor/editor_node.cpp
msgid "Could not start subprocess!"
-msgstr "無法啟動å­é€²ç¨‹!"
+msgstr "無法啟動å­è™•ç†ç¨‹åºï¼"
#: editor/editor_node.cpp editor/filesystem_dock.cpp
msgid "Open Scene"
@@ -2485,9 +2319,8 @@ msgid "Open Base Scene"
msgstr "開啟基本場景"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Quick Open..."
-msgstr "快速開啟場景..."
+msgstr "快速開啟..."
#: editor/editor_node.cpp
msgid "Quick Open Scene..."
@@ -2495,24 +2328,23 @@ msgstr "快速開啟場景…"
#: editor/editor_node.cpp
msgid "Quick Open Script..."
-msgstr "快速打開腳本…"
+msgstr "快速開啟腳本…"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Save & Close"
-msgstr "å¦å­˜æ–°æª”"
+msgstr "ä¿å­˜ä¸¦é—œé–‰"
#: editor/editor_node.cpp
msgid "Save changes to '%s' before closing?"
-msgstr "關閉å‰æ˜¯å¦ä¿å­˜å°â€œ%sâ€çš„更改?"
+msgstr "關閉å‰æ˜¯å¦ä¿å­˜å°ã€Œ%sã€çš„更改?"
#: editor/editor_node.cpp
msgid "Saved %s modified resource(s)."
-msgstr "å·²ä¿å­˜%s個已修改的資æºã€‚"
+msgstr "å·²ä¿å­˜ %s 個已修改的資æºã€‚"
#: editor/editor_node.cpp
msgid "A root node is required to save the scene."
-msgstr "儲存場景需è¦æ ¹ç¯€é»žã€‚"
+msgstr "ä¿å­˜å ´æ™¯éœ€è¦æ ¹ç¯€é»žã€‚"
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2520,7 +2352,7 @@ msgstr "å¦å­˜å ´æ™¯ç‚ºâ€¦"
#: editor/editor_node.cpp
msgid "No"
-msgstr "ä¸æ˜¯"
+msgstr "å¦"
#: editor/editor_node.cpp
msgid "Yes"
@@ -2528,44 +2360,47 @@ msgstr "是"
#: editor/editor_node.cpp
msgid "This scene has never been saved. Save before running?"
-msgstr "此場景從未被儲存。執行å‰å…ˆå­˜æª”?"
+msgstr "此場景從未被ä¿å­˜ã€‚是å¦è¦åœ¨åŸ·è¡Œå‰å…ˆä¿å­˜ï¼Ÿ"
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
-msgstr "這項æ“作必須è¦æœ‰å ´æ™¯å­˜åœ¨ã€‚"
+msgstr "該æ“作必須è¦æœ‰å ´æ™¯æ‰å¯å®Œæˆã€‚"
#: editor/editor_node.cpp
msgid "Export Mesh Library"
-msgstr "導出網格庫"
+msgstr "匯出網格庫"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
-msgstr "在設置根節點(root node)å‰ï¼Œç„¡æ³•å®Œæˆè©²æŒ‡å®šæ“作。"
+msgstr "該æ“作必須è¦æœ‰è·Ÿç¯€é»žæ‰å¯å®Œæˆã€‚"
#: editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr "導出ç£è²¼é›†"
+msgstr "匯出 Tile Set"
#: editor/editor_node.cpp
msgid "This operation can't be done without a selected node."
-msgstr "在設置著節點(selected node)å‰ï¼Œç„¡æ³•å®Œæˆè©²æŒ‡å®šæ“作。"
+msgstr "該æ“作必須è¦æœ‰å·²é¸æ“‡çš„節點æ‰å¯å®Œæˆã€‚"
#: editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
-msgstr "ç›®å‰çš„場景尚未儲存。還是è¦é–‹å•Ÿå—Žï¼Ÿ"
+msgstr "ç›®å‰çš„場景尚未ä¿å­˜ã€‚ä»ç„¶è¦é–‹å•Ÿå—Žï¼Ÿ"
#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
-msgstr "無法é‡æ–°è¼‰å…¥å¾žæœªå­˜æª”的場景。"
+msgstr "無法é‡æ–°è¼‰å…¥å¾žæœªä¿å­˜éŽçš„場景。"
#: editor/editor_node.cpp
-msgid "Revert"
-msgstr "還原"
+msgid "Reload Saved Scene"
+msgstr "é‡æ–°è¼‰å…¥å·²ä¿å­˜çš„場景"
#: editor/editor_node.cpp
-#, fuzzy
-msgid "This action cannot be undone. Revert anyway?"
-msgstr "æ­¤æ“作無法被, 確定è¦é‚„原嗎?"
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
+"ç›®å‰çš„場景有未ä¿å­˜çš„改動。\n"
+"ä»ç„¶è¦é‡æ–°è¼‰å…¥å ´æ™¯å—Žï¼Ÿé€™å€‹æ“作將無法復原。"
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2581,25 +2416,27 @@ msgstr "è¦çµæŸç·¨è¼¯å™¨å—Žï¼Ÿ"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
-msgstr "è¦é–‹å•Ÿå°ˆæ¡ˆç®¡ç†å—Žï¼Ÿ"
+msgstr "è¦é–‹å•Ÿå°ˆæ¡ˆç®¡ç†å“¡å—Žï¼Ÿ"
#: editor/editor_node.cpp
msgid "Save & Quit"
-msgstr "儲存並離開"
+msgstr "ä¿å­˜ä¸¦é€€å‡º"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr "退出程å¼å‰ï¼Œè¦å„²å­˜ä»¥ä¸‹ä¿®æ”¹éŽçš„場景嗎?"
+msgstr "退出å‰è¦å…ˆä¿å­˜ä¸‹åˆ—場景嗎?"
#: editor/editor_node.cpp
msgid "Save changes the following scene(s) before opening Project Manager?"
-msgstr "開啟專案管ç†å‰ï¼Œè¦å„²å­˜ä»¥ä¸‹ä¿®æ”¹éŽçš„場景嗎?"
+msgstr "開啟專案管ç†å“¡å‰è¦å…ˆä¿å­˜ä»¥ä¸‹å ´æ™¯å—Žï¼Ÿ"
#: editor/editor_node.cpp
msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
-msgstr "ä¸æŽ¨è–¦æ­¤é¸é …。被強制é‡æ–°æ•´ç†çš„情形,å¯èƒ½æ˜¯å› ç¨‹å¼éŒ¯èª¤å°Žè‡´ã€‚請回報。"
+msgstr ""
+"該é¸é …å·²åœæ­¢ç¶­è­·ã€‚é‡åˆ°éœ€è¦å¼·åˆ¶é‡æ–°æ•´ç†çš„ç‹€æ³ç¾åœ¨å·²è¢«è¦–為程å¼éŒ¯èª¤ã€‚請回報該å•"
+"題。"
#: editor/editor_node.cpp
msgid "Pick a Main Scene"
@@ -2610,56 +2447,55 @@ msgid "Close Scene"
msgstr "關閉場景"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reopen Closed Scene"
-msgstr "關閉場景"
+msgstr "é‡æ–°é–‹å•Ÿå·²é—œé–‰çš„場景"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
-msgstr "無法在: \"%s\" 上啟動擴充功能,設定解æžå¤±æ•—。"
+msgstr "無法在「%sã€ä¸Šå•Ÿç”¨æ“´å……功能,解æžçµ„態設定失敗。"
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
-msgstr "在æ’件目錄 'res://addons/%s' 中,找ä¸åˆ°è…³æœ¬ã€‚"
+msgstr "無法在擴充功能「res://addons/%sã€ä¸­ç„¡æ³•æ‰¾åˆ°è…³æœ¬æ¬„ä½ã€‚"
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s'."
-msgstr "無法從 '%s' 中順利讀å–腳本。"
+msgstr "無法自路徑「%sã€è¼‰å…¥æ“´å……腳本。"
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' There seems to be an error in "
"the code, please check the syntax."
-msgstr "無法從 '%s' 中順利讀å–腳本。å¯èƒ½å‡ºè‡ªç·¨ç¢¼éŒ¯èª¤ï¼Œè«‹æª¢å¯Ÿèªžæ³•æ˜¯å¦æ­£ç¢ºã€‚"
+msgstr "無法從路徑「%sã€è¼‰å…¥æ“´å……腳本。看樣å­æ˜¯ç¨‹å¼ç¢¼ä¸­æœ‰éŒ¯èª¤ï¼Œè«‹æª¢æŸ¥èªžæ³•ã€‚"
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
-msgstr "無法從 '%s' 中順利讀å–腳本。基本類型 的腳本並ä¸å±¬æ–¼ 編輯類æ’件。"
+msgstr "無法自路徑「%sã€è¼‰å…¥æ“´å……腳本,基礎型別ä¸æ˜¯ EditorPlugin。"
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
-msgstr "無法從 '%s' 中順利讀å–腳本。此腳本並ä¸è™•æ–¼å·¥å…·æ¨¡å¼ä¸‹ã€‚"
+msgstr "無法自路徑載入擴充腳本「%sã€ï¼Œè…³æœ¬ä¸åœ¨å·¥å…·æ¨¡å¼ä¸‹ã€‚"
#: editor/editor_node.cpp
msgid ""
"Scene '%s' was automatically imported, so it can't be modified.\n"
"To make changes to it, a new inherited scene can be created."
msgstr ""
-"場景 '%s' 為自動匯入的,ä¸èƒ½è¢«ä¿®æ”¹ã€‚\n"
-"è‹¥è¦é€²è¡Œæ›´æ”¹ï¼Œè«‹å»ºç«‹æ–°çš„繼承的場景。"
+"「%sã€ç‚ºè‡ªå‹•åŒ¯å…¥çš„場景,將無法修改。\n"
+"è‹¥è¦å°å…¶é€²è¡Œæ”¹å‹•ï¼Œå¯å»ºç«‹æ–°ç¹¼æ‰¿å ´æ™¯ã€‚"
#: editor/editor_node.cpp
msgid ""
"Error loading scene, it must be inside the project path. Use 'Import' to "
"open the scene, then save it inside the project path."
msgstr ""
-"讀å–場景時發生錯誤,場景必須放置於專案資料夾中。請用「導入ã€é–‹å•Ÿè©²å ´æ™¯å¾Œï¼Œå†"
-"儲存於專案資料夾。"
+"載入場景時發生錯誤,場景必須置於專案路徑內。請使用「匯入ã€ä¾†é–‹å•Ÿè©²å ´æ™¯ï¼Œä¸¦å°‡"
+"å…¶ä¿å­˜æ–¼å°ˆæ¡ˆè·¯å¾‘內。"
#: editor/editor_node.cpp
msgid "Scene '%s' has broken dependencies:"
-msgstr "場景 '%s' çš„ä¾å­˜é—œä¿‚已被破壞:"
+msgstr "場景「%sã€çš„相ä¾æ€§æ壞:"
#: editor/editor_node.cpp
msgid "Clear Recent Scenes"
@@ -2672,7 +2508,7 @@ msgid ""
"category."
msgstr ""
"尚未定義主場景。è¦é¸æ“‡ä¸€å€‹å ´æ™¯å—Žï¼Ÿ\n"
-"你之後å¯ä»¥åœ¨ã€Œæ‡‰ç”¨ç¨‹å¼ã€åˆ†é¡žä¸­çš„「專案設定ã€è®Šæ›´é€™è¨­å®šã€‚"
+"ç¨å¾Œå¯åœ¨ã€Œæ‡‰ç”¨ç¨‹å¼ã€åˆ†é¡žä¸­çš„「專案設定ã€ä¿®æ”¹ã€‚"
#: editor/editor_node.cpp
msgid ""
@@ -2680,8 +2516,8 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"é¸æ“‡å ´æ™¯'%s'ä¸å­˜åœ¨ï¼Œé¸æ“‡å¦ä¸€å€‹å ´æ™¯ï¼Ÿ\n"
-"你之後å¯ä»¥åœ¨ã€Œæ‡‰ç”¨ç¨‹å¼ã€åˆ†é¡žä¸­çš„「專案設定ã€è®Šæ›´é€™è¨­å®šã€‚"
+"所é¸çš„場景「%sã€ä¸å­˜åœ¨ï¼Œæ˜¯å¦è¦é¸æ“‡ä¸€å€‹æœ‰æ•ˆçš„場景?\n"
+"ç¨å¾Œå¯åœ¨ã€Œæ‡‰ç”¨ç¨‹å¼ã€åˆ†é¡žä¸­çš„「專案設定ã€ä¸­ä¿®æ”¹ã€‚"
#: editor/editor_node.cpp
msgid ""
@@ -2689,16 +2525,16 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"é¸æ“‡çš„場景'%s'ä¸æ˜¯ä¸€å€‹å ´æ™¯æª”案,è¦é¸æ“‡å¦ä¸€å€‹å ´æ™¯å—Žï¼Ÿ\n"
-"你之後å¯ä»¥åœ¨ã€Œæ‡‰ç”¨ç¨‹å¼ã€åˆ†é¡žä¸­çš„「專案設定ã€è®Šæ›´é€™è¨­å®šã€‚"
+"所é¸çš„場景「%sã€ä¸æ˜¯å ´æ™¯æª”案,是å¦è¦é¸æ“‡å¦ä¸€å€‹æœ‰æ•ˆçš„場景?\n"
+"ç¨å¾Œå¯åœ¨ã€Œæ‡‰ç”¨ç¨‹å¼ã€åˆ†é¡žä¸­çš„「專案設定ã€ä¸­ä¿®æ”¹ã€‚"
#: editor/editor_node.cpp
msgid "Save Layout"
-msgstr "儲存佈局"
+msgstr "儲存é…ç½®"
#: editor/editor_node.cpp
msgid "Delete Layout"
-msgstr "刪除佈局"
+msgstr "刪除é…ç½®"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
@@ -2712,29 +2548,27 @@ msgstr "在檔案系統中顯示"
#: editor/editor_node.cpp
msgid "Play This Scene"
-msgstr "é‹è¡Œæ­¤å ´æ™¯"
+msgstr "執行此場景"
#: editor/editor_node.cpp
msgid "Close Tab"
msgstr "關閉分é "
#: editor/editor_node.cpp
-#, fuzzy
msgid "Undo Close Tab"
-msgstr "關閉分é "
+msgstr "å–消關閉分é "
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Close Other Tabs"
-msgstr "關閉其他é¸é …å¡"
+msgstr "關閉其他分é "
#: editor/editor_node.cpp
msgid "Close Tabs to the Right"
-msgstr "關閉å³æ–¹æ‰€æœ‰çš„分é "
+msgstr "關閉å³å´åˆ†é "
#: editor/editor_node.cpp
-#, fuzzy
msgid "Close All Tabs"
-msgstr "全部關閉"
+msgstr "全部所有分é "
#: editor/editor_node.cpp
msgid "Switch Scene Tab"
@@ -2742,12 +2576,11 @@ msgstr "切æ›å ´æ™¯åˆ†é "
#: editor/editor_node.cpp
msgid "%d more files or folders"
-msgstr "還有 %d 個檔案/資料夾"
+msgstr "還有 %d 個檔案ï¼è³‡æ–™å¤¾"
#: editor/editor_node.cpp
-#, fuzzy
msgid "%d more folders"
-msgstr "還有 %d 個檔案"
+msgstr "還有 %d 個資料夾"
#: editor/editor_node.cpp
msgid "%d more files"
@@ -2755,33 +2588,31 @@ msgstr "還有 %d 個檔案"
#: editor/editor_node.cpp
msgid "Dock Position"
-msgstr "版é¢ä½ç½®"
+msgstr "Dock ä½ç½®"
#: editor/editor_node.cpp
msgid "Distraction Free Mode"
-msgstr "無干擾模å¼"
+msgstr "專注模å¼"
#: editor/editor_node.cpp
msgid "Toggle distraction-free mode."
-msgstr "切æ›ç‚ºç„¡å¹²æ“¾æ¨¡å¼ã€‚"
+msgstr "切æ›ï¼å–消專注模å¼ã€‚"
#: editor/editor_node.cpp
msgid "Add a new scene."
msgstr "新增場景。"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Scene"
msgstr "場景"
#: editor/editor_node.cpp
msgid "Go to previously opened scene."
-msgstr "å‰å¾€ä¸Šæ¬¡é–‹å•Ÿçš„場景。"
+msgstr "跳至上一個開啟的場景。"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Copy Text"
-msgstr "複製路徑"
+msgstr "複製文字"
#: editor/editor_node.cpp
msgid "Next tab"
@@ -2805,7 +2636,7 @@ msgstr "新場景"
#: editor/editor_node.cpp
msgid "New Inherited Scene..."
-msgstr "從ç¾æœ‰å ´æ™¯ä¸­å»ºç«‹â€¦"
+msgstr "新增繼承場景…"
#: editor/editor_node.cpp
msgid "Open Scene..."
@@ -2817,12 +2648,11 @@ msgstr "最近開啟的場景"
#: editor/editor_node.cpp
msgid "Save Scene"
-msgstr "儲存場景"
+msgstr "ä¿å­˜å ´æ™¯"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Save All Scenes"
-msgstr "儲存全部場景"
+msgstr "ä¿å­˜æ‰€æœ‰å ´æ™¯"
#: editor/editor_node.cpp
msgid "Convert To..."
@@ -2830,29 +2660,25 @@ msgstr "轉æ›æˆâ€¦"
#: editor/editor_node.cpp
msgid "MeshLibrary..."
-msgstr "網狀資料庫(MeshLibrary)…"
+msgstr "網格庫…"
#: editor/editor_node.cpp
msgid "TileSet..."
-msgstr "å€å¡Šç´ æ…"
+msgstr "圖塊集…"
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Undo"
-msgstr "還原"
+msgstr "復原"
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Redo"
-msgstr "é‡ä½œ"
-
-#: editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr "æ¢å¾©å ´æ™¯"
+msgstr "å–消復原"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
-msgstr "其他專案或全螢幕工具。"
+msgstr "其他專案或全場景共通工具。"
#: editor/editor_node.cpp editor/project_manager.cpp
#: editor/script_create_dialog.cpp
@@ -2860,44 +2686,40 @@ msgid "Project"
msgstr "專案"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Project Settings..."
-msgstr "專案設定"
+msgstr "專案設定..."
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Version Control"
-msgstr "版本:"
+msgstr "版本控制"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Set Up Version Control"
-msgstr ""
+msgstr "設定版本控制"
#: editor/editor_node.cpp
msgid "Shut Down Version Control"
-msgstr ""
+msgstr "終止版本控制"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Export..."
-msgstr "輸出"
+msgstr "匯出..."
#: editor/editor_node.cpp
msgid "Install Android Build Template..."
-msgstr ""
+msgstr "å®‰è£ Android 建構樣æ¿..."
#: editor/editor_node.cpp
msgid "Open Project Data Folder"
-msgstr "開啟專案資料夾"
+msgstr "開啟專案資料目錄"
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
msgstr "工具"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Orphan Resource Explorer..."
-msgstr "孤立資料管ç†å™¨"
+msgstr "孤立資æºç€è¦½å™¨..."
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -2910,17 +2732,18 @@ msgstr "åµéŒ¯"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
-msgstr "使用é ç«¯åµéŒ¯"
+msgstr "部署並啟用é ç«¯åµéŒ¯"
#: editor/editor_node.cpp
msgid ""
"When exporting or deploying, the resulting executable will attempt to "
"connect to the IP of this computer in order to be debugged."
-msgstr "當輸出或發布專案後,å¯åŸ·è¡Œæ–‡ä»¶(exe)將會嘗試連çµæœ¬æ©Ÿï¼©ï¼°ï¼Œä»¥é€²è¡ŒåµéŒ¯ã€‚"
+msgstr ""
+"匯出或部署時,輸出的å¯åŸ·è¡Œæª”將會嘗試連接到這å°é›»è…¦çš„ IP ä½ç½®ä»¥é€²è¡Œé™¤éŒ¯ã€‚"
#: editor/editor_node.cpp
msgid "Small Deploy with Network FS"
-msgstr "å°åž‹éƒ¨å±¬ & 網路文件系統(NFS)"
+msgstr "使用網路檔案系統進行å°åž‹éƒ¨ç½²"
#: editor/editor_node.cpp
msgid ""
@@ -2931,34 +2754,34 @@ msgid ""
"On Android, deploy will use the USB cable for faster performance. This "
"option speeds up testing for games with a large footprint."
msgstr ""
-"啟用此é¸é …後,在輸出/發布項目時,執行檔會壓縮至最å°ã€‚\n"
-"至於文件系統,則以網路與編輯器的連çµä¾†ä¾›çµ¦ã€‚\n"
-"在Androidå¹³å°ï¼Œé€éŽUSB發布能ç²å¾—更快的效率。\n"
-"æ­¤é¸é …用於加速éŠæˆ²(尤其是檔案ç¹å¤š)的測試。"
+"當該é¸é …啟用後,匯出或部署將會產生最å°åŒ–çš„å¯åŸ·è¡Œæª”。\n"
+"檔案系統將由這個編輯器在網路上æ供。\n"
+"Android å¹³å°ä¸Šï¼Œéƒ¨ç½²éœ€è¦ä½¿ç”¨ USB 線以ç²å¾—更快速的效能。該é¸é …å°æ–¼å¤§åž‹éŠæˆ²èƒ½åŠ "
+"速測試。"
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
-msgstr "碰撞å€åŸŸçš„顯示"
+msgstr "顯示碰撞å€åŸŸ"
#: editor/editor_node.cpp
msgid ""
"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
"running game if this option is turned on."
-msgstr "啟用此é¸é …後,碰撞å€åŸŸ/射線節點 將會於éŠæˆ²ä¸­é¡¯ç¤ºã€‚"
+msgstr "該é¸é …開啟後,執行éŠæˆ²æ™‚å°‡å¯çœ‹è¦‹ç¢°æ’žå€åŸŸèˆ‡ï¼ˆ2D 或 3D 的)射線節點。"
#: editor/editor_node.cpp
msgid "Visible Navigation"
-msgstr "導航的顯示"
+msgstr "顯示導航"
#: editor/editor_node.cpp
msgid ""
"Navigation meshes and polygons will be visible on the running game if this "
"option is turned on."
-msgstr "啟用此é¸é …後,導航所用的網線/多邊形 將會於éŠæˆ²ä¸­é¡¯ç¤ºã€‚"
+msgstr "該é¸é …開啟後,執行éŠæˆ²æ™‚å°‡å¯çœ‹è¦‹å°Žèˆªç¶²æ ¼ (mesh) 與多邊形。"
#: editor/editor_node.cpp
msgid "Sync Scene Changes"
-msgstr "åŒæ­¥å ´æ™¯çš„變更"
+msgstr "åŒæ­¥å ´æ™¯æ”¹å‹•"
#: editor/editor_node.cpp
msgid ""
@@ -2967,12 +2790,12 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
-"啟用此é¸é …後,編輯器中的所有修改,都會立å³å映於é‹è¡Œä¸­çš„éŠæˆ²ã€‚\n"
-"在é ç«¯è£ç½®æ¸¬è©¦æ™‚,é…åˆç¶²è·¯æ–‡ä»¶ç³»çµ±(NFS)使用能更æ高效率。"
+"開啟該é¸é …後,編輯器中å°è©²å ´æ™¯çš„所有改動都將被套用至執行中的éŠæˆ²ã€‚\n"
+"若在é ç«¯è£ç½®ä¸Šä½¿ç”¨ï¼Œå¯ä½¿ç”¨ç¶²è·¯æª”案系統 NFS 以ç²å¾—最佳效能。"
#: editor/editor_node.cpp
msgid "Sync Script Changes"
-msgstr "åŒæ­¥è…³æœ¬çš„變更"
+msgstr "åŒæ­¥è…³æœ¬æ”¹å‹•"
#: editor/editor_node.cpp
msgid ""
@@ -2981,66 +2804,60 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
-"啟用此é¸é …後,腳本的所有修改,都會立å³å映於é‹è¡Œä¸­çš„éŠæˆ²ã€‚\n"
-"在é ç«¯è£ç½®æ¸¬è©¦æ™‚,é…åˆç¶²è·¯æ–‡ä»¶ç³»çµ±(NFS)使用能更æ高效率。"
+"當開啟該é¸é …後,ä¿å­˜çš„腳本都將在執行中的éŠæˆ²é‡æ–°è¼‰å…¥ã€‚\n"
+"若在é ç«¯è£ç½®ä¸Šä½¿ç”¨ï¼Œå¯ä½¿ç”¨ç¶²è·¯æª”案系統 NFS 以ç²å¾—最佳效能。"
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
msgstr "編輯器"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Editor Settings..."
-msgstr "編輯器設定"
+msgstr "編輯器設定..."
#: editor/editor_node.cpp
msgid "Editor Layout"
-msgstr "編輯器佈局"
+msgstr "編輯器é…ç½®"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Take Screenshot"
-msgstr "儲存場景"
+msgstr "螢幕截圖"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Screenshots are stored in the Editor Data/Settings Folder."
-msgstr "開啟 編輯器數據/設定 資料夾"
+msgstr "截圖將被儲存於編輯器資料或編輯器設定資料夾內。"
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr "全螢幕顯示"
+msgstr "é–‹å•Ÿï¼å–消全螢幕顯示"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Toggle System Console"
-msgstr "切æ›æ¨¡å¼"
+msgstr "é–‹å•Ÿï¼é—œé–‰ç³»çµ±ä¸»æŽ§å°"
#: editor/editor_node.cpp
msgid "Open Editor Data/Settings Folder"
-msgstr "開啟 編輯器數據/設定 資料夾"
+msgstr "開啟「編輯器資料ï¼ç·¨è¼¯å™¨è¨­å®šã€è³‡æ–™å¤¾"
#: editor/editor_node.cpp
msgid "Open Editor Data Folder"
-msgstr "開啟 編輯器數據 資料夾"
+msgstr "開啟編輯器資料目錄"
#: editor/editor_node.cpp
msgid "Open Editor Settings Folder"
-msgstr "開啟 編輯器設定 資料夾"
+msgstr "開啟編輯器設定目錄"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Editor Features..."
-msgstr "管ç†è¼¸å‡ºæ¨¡æ¿"
+msgstr "管ç†ç·¨è¼¯å™¨åŠŸèƒ½..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Export Templates..."
-msgstr "管ç†è¼¸å‡ºæ¨¡æ¿"
+msgstr "管ç†åŒ¯å‡ºæ¨£æ¿..."
#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
msgid "Help"
-msgstr "幫助"
+msgstr "說明"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -3054,24 +2871,23 @@ msgstr "æœå°‹"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/plugins/shader_editor_plugin.cpp
msgid "Online Docs"
-msgstr "線上文件"
+msgstr "線上說明文件"
#: editor/editor_node.cpp
msgid "Q&A"
msgstr "Q&A"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Report a Bug"
-msgstr "é‡æ–°å°Žå…¥"
+msgstr "回報錯誤"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
-msgstr ""
+msgstr "傳é€èªªæ˜Žæ–‡ä»¶å›žé¥‹"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr "社å€"
+msgstr "社群"
#: editor/editor_node.cpp
msgid "About"
@@ -3079,15 +2895,15 @@ msgstr "關於"
#: editor/editor_node.cpp
msgid "Play the project."
-msgstr "é‹è¡Œæ­¤å°ˆæ¡ˆã€‚"
+msgstr "執行該專案。"
#: editor/editor_node.cpp
msgid "Play"
-msgstr "é‹è¡Œ"
+msgstr "執行"
#: editor/editor_node.cpp
msgid "Pause the scene execution for debugging."
-msgstr ""
+msgstr "æš«åœè©²å ´æ™¯ä»¥é€²è¡Œé™¤éŒ¯ã€‚"
#: editor/editor_node.cpp
msgid "Pause Scene"
@@ -3095,56 +2911,52 @@ msgstr "æš«åœå ´æ™¯"
#: editor/editor_node.cpp
msgid "Stop the scene."
-msgstr "åœæ­¢æ­¤å ´æ™¯."
+msgstr "åœæ­¢å ´æ™¯ã€‚"
#: editor/editor_node.cpp
msgid "Play the edited scene."
-msgstr "é‹è¡Œç·¨è¼¯éŽçš„場景。"
+msgstr "執行已編輯的場景。"
#: editor/editor_node.cpp
msgid "Play Scene"
-msgstr "é‹è¡Œå ´æ™¯"
+msgstr "執行場景"
#: editor/editor_node.cpp
msgid "Play custom scene"
-msgstr "é‹è¡Œè‡ªå®šç¾©å ´æ™¯"
+msgstr "執行自定義場景"
#: editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr "é‹è¡Œè‡ªå®šç¾©å ´æ™¯"
+msgstr "執行自定義場景"
#: editor/editor_node.cpp
msgid "Changing the video driver requires restarting the editor."
-msgstr "在更動顯示驅動後,必須é‡æ–°é–‹å•Ÿç·¨è¼¯å™¨ã€‚"
+msgstr "更改視訊驅動程å¼éœ€è¦é‡æ–°å•Ÿå‹•ç·¨è¼¯å™¨ã€‚"
#: editor/editor_node.cpp editor/project_settings_editor.cpp
#: editor/settings_config_dialog.cpp
msgid "Save & Restart"
-msgstr "儲存並é‡å•Ÿ"
+msgstr "ä¿å­˜ä¸¦é‡æ–°å•Ÿå‹•"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Spins when the editor window redraws."
-msgstr "在é‡æ–°ç¹ªè£½(repaint)編輯器視窗時,來個旋轉ï¼"
+msgstr "編輯器視窗é‡æ–°ç¹ªè£½æ™‚旋轉。"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Continuously"
-msgstr "連續"
+msgstr "æŒçºŒæ›´æ–°"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update When Changed"
-msgstr "有更動時自動更新"
+msgstr "更改時更新"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Hide Update Spinner"
-msgstr "ç¦æ­¢è‡ªå‹•æ›´æ–°"
+msgstr "éš±è—更新旋轉圖"
#: editor/editor_node.cpp
msgid "FileSystem"
-msgstr "文件系統"
+msgstr "檔案系統"
#: editor/editor_node.cpp
msgid "Inspector"
@@ -3156,20 +2968,19 @@ msgstr "展開底部é¢æ¿"
#: editor/editor_node.cpp
msgid "Output"
-msgstr "輸出(output)"
+msgstr "輸出"
#: editor/editor_node.cpp
msgid "Don't Save"
-msgstr "ä¸è¦å„²å­˜"
+msgstr "ä¸ä¿å­˜"
#: editor/editor_node.cpp
msgid "Android build template is missing, please install relevant templates."
-msgstr ""
+msgstr "缺少 Android 建構樣æ¿ï¼Œè«‹å…ˆå®‰è£å°æ‡‰çš„樣æ¿ã€‚"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Templates"
-msgstr "管ç†è¼¸å‡ºæ¨¡æ¿"
+msgstr "管ç†æ¨£æ¿"
#: editor/editor_node.cpp
msgid ""
@@ -3181,6 +2992,12 @@ msgid ""
"the \"Use Custom Build\" option should be enabled in the Android export "
"preset."
msgstr ""
+"將通éŽåœ¨ã€Œres://android/buildã€ä¸­å®‰è£åŽŸå§‹æ¨£æ¿ä»¥ç‚ºè©²é …目設定自定 Android 建構"
+"樣æ¿ã€‚\n"
+"輸出時å¯ä»¥å¥—用修改並建構自定 APK(如新增模組ã€ä¿®æ”¹ AndroidManifest.xml …"
+"等)。\n"
+"請注æ„,若è¦ä½¿ç”¨è‡ªå®šå»ºæ§‹è€Œéžä½¿ç”¨é å…ˆå»ºæ§‹å¥½çš„ APK,請啟用 Android 匯出 Preset "
+"中的「使用自定建構ã€é¸é …。"
#: editor/editor_node.cpp
msgid ""
@@ -3189,35 +3006,36 @@ msgid ""
"Remove the \"res://android/build\" directory manually before attempting this "
"operation again."
msgstr ""
+"è©²å°ˆæ¡ˆä¸­å·²å®‰è£ Android 建構樣æ¿ï¼Œå°‡ä¸æœƒè¦†è“‹ã€‚\n"
+"è‹¥è¦å†æ¬¡åŸ·è¡Œæ­¤æ“作,請先手動移除「res://android/buildã€ç›®éŒ„。"
#: editor/editor_node.cpp
msgid "Import Templates From ZIP File"
-msgstr "導入模æ¿ï¼ˆé€éŽZIP檔案)"
+msgstr "自 ZIP 檔匯入樣æ¿"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Template Package"
-msgstr "導出範本管ç†å™¨"
+msgstr "樣æ¿åŒ…"
#: editor/editor_node.cpp
msgid "Export Library"
-msgstr "輸出函å¼åº«"
+msgstr "匯出函å¼åº«"
#: editor/editor_node.cpp
msgid "Merge With Existing"
-msgstr "與ç¾æœ‰å‡½å¼åº«åˆä½µ"
+msgstr "與ç¾æœ‰çš„åˆä½µ"
#: editor/editor_node.cpp
msgid "Open & Run a Script"
-msgstr "開啟並é‹è¡Œè…³æœ¬"
+msgstr "開啟並執行腳本"
#: editor/editor_node.cpp
msgid "New Inherited"
-msgstr "從ç¾æœ‰å ´æ™¯ä¸­å»ºç«‹"
+msgstr "新增繼承"
#: editor/editor_node.cpp
msgid "Load Errors"
-msgstr "讀å–時出ç¾éŒ¯èª¤"
+msgstr "載入錯誤"
#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
msgid "Select"
@@ -3225,11 +3043,11 @@ msgstr "é¸æ“‡"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
-msgstr "開啟2D編輯器"
+msgstr "開啟 2D 編輯器"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
-msgstr "開啟3D編輯器"
+msgstr "開啟 3D 編輯器"
#: editor/editor_node.cpp
msgid "Open Script Editor"
@@ -3237,7 +3055,7 @@ msgstr "開啟腳本編輯器"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
-msgstr "é–‹å•Ÿç´ æ倉庫"
+msgstr "é–‹å•Ÿç´ æ庫"
#: editor/editor_node.cpp
msgid "Open the next Editor"
@@ -3248,35 +3066,32 @@ msgid "Open the previous Editor"
msgstr "開啟上一個編輯器"
#: editor/editor_node.h
-#, fuzzy
msgid "Warning!"
-msgstr "警告"
+msgstr "警告ï¼"
#: editor/editor_path.cpp
-#, fuzzy
msgid "No sub-resources found."
-msgstr "未指定表é¢æºã€‚"
+msgstr "未找到å­è³‡æºã€‚"
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
-msgstr "創建網格é è¦½"
+msgstr "建立網格é è¦½"
#: editor/editor_plugin.cpp
msgid "Thumbnail..."
msgstr "縮圖…"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Main Script:"
-msgstr "開啟最近存å–"
+msgstr "主腳本:"
#: editor/editor_plugin_settings.cpp
msgid "Edit Plugin"
-msgstr "編輯擴充功能"
+msgstr "編輯外掛"
#: editor/editor_plugin_settings.cpp
msgid "Installed Plugins:"
-msgstr "已安è£çš„擴充功能:"
+msgstr "已安è£çš„外掛:"
#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
msgid "Update"
@@ -3301,11 +3116,11 @@ msgstr "編輯:"
#: editor/editor_profiler.cpp
msgid "Measure:"
-msgstr "措施:"
+msgstr "測é‡ï¼š"
#: editor/editor_profiler.cpp
msgid "Frame Time (sec)"
-msgstr "幀時間 (秒)"
+msgstr "影格長度 (秒)"
#: editor/editor_profiler.cpp
msgid "Average Time (sec)"
@@ -3313,19 +3128,19 @@ msgstr "å¹³å‡æ™‚é–“ (秒)"
#: editor/editor_profiler.cpp
msgid "Frame %"
-msgstr "å¹€%"
+msgstr "影格 %"
#: editor/editor_profiler.cpp
msgid "Physics Frame %"
-msgstr "物ç†å¹€%"
+msgstr "物ç†å½±æ ¼ %"
#: editor/editor_profiler.cpp
msgid "Inclusive"
-msgstr "包容"
+msgstr "全部"
#: editor/editor_profiler.cpp
msgid "Self"
-msgstr "自身"
+msgstr "僅自己"
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3337,24 +3152,23 @@ msgstr "時間"
#: editor/editor_profiler.cpp
msgid "Calls"
-msgstr "調用"
+msgstr "呼å«"
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Edit Text:"
-msgstr "編輯主題…"
+msgstr "編輯文字:"
#: editor/editor_properties.cpp editor/script_create_dialog.cpp
msgid "On"
-msgstr "啟用"
+msgstr "é–‹å•Ÿ"
#: editor/editor_properties.cpp
msgid "Layer"
-msgstr "層"
+msgstr "圖層"
#: editor/editor_properties.cpp
msgid "Bit %d, value %d"
-msgstr "ä½ %d, 值 %d"
+msgstr "ä½ %d,值 %d"
#: editor/editor_properties.cpp
msgid "[Empty]"
@@ -3365,21 +3179,22 @@ msgid "Assign..."
msgstr "指派..."
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Invalid RID"
-msgstr "無效的路徑"
+msgstr "無效的 RID"
#: editor/editor_properties.cpp
msgid ""
"The selected resource (%s) does not match any type expected for this "
"property (%s)."
-msgstr "所é¸è³‡æºï¼ˆ%s)與此内容(%s)所需的任何類型都ä¸åŒ¹é…。"
+msgstr "所é¸çš„資æºï¼ˆ%s)並ä¸ç¬¦åˆä»»è©²å±¬æ€§ï¼ˆ%s)的任何型別。"
#: editor/editor_properties.cpp
msgid ""
"Can't create a ViewportTexture on resources saved as a file.\n"
"Resource needs to belong to a scene."
msgstr ""
+"無法為è¦ä¿å­˜ç‚ºæª”案的資æºå»ºç«‹æª¢è¦–å€ç´‹ç† (ViewportTexture)。\n"
+"資æºå¿…須屬於一個場景。"
#: editor/editor_properties.cpp
msgid ""
@@ -3388,27 +3203,28 @@ msgid ""
"Please switch on the 'local to scene' property on it (and all resources "
"containing it up to a node)."
msgstr ""
+"無法為該資æºå»ºç«‹æª¢è¦–å€ç´‹ç† (ViewportTexture),因其未設定å°æ‡‰çš„本地場景。\n"
+"請開啟其(與其至節點的所有資æºï¼‰çš„「本地化場景ã€å±¬æ€§ã€‚"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Pick a Viewport"
-msgstr "é¸æ“‡ä¸€å€‹è¦–å£"
+msgstr "é¸æ“‡æª¢è¦–å€"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "New Script"
-msgstr "新建腳本"
+msgstr "新增腳本"
#: editor/editor_properties.cpp editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Extend Script"
-msgstr "開啟最近存å–"
+msgstr "擴充腳本"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "New %s"
-msgstr "新建 %s"
+msgstr "新增 %s"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Make Unique"
-msgstr "轉æ›ç‚ºç¨ç«‹è³‡æº"
+msgstr "ç¨ç«‹åŒ–"
#: editor/editor_properties.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
@@ -3422,24 +3238,23 @@ msgstr "轉æ›ç‚ºç¨ç«‹è³‡æº"
#: editor/plugins/tile_map_editor_plugin.cpp editor/property_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Paste"
-msgstr "粘貼"
+msgstr "貼上"
#: editor/editor_properties.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert To %s"
-msgstr "轉æ›æˆ..."
+msgstr "轉æ›æˆ %s"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Selected node is not a Viewport!"
-msgstr "é¸å®šçš„節點ä¸æ˜¯è¦–å£!"
+msgstr "所é¸ç¯€é»žä¸æ˜¯æª¢è¦–å€ (Viewport)ï¼"
#: editor/editor_properties_array_dict.cpp
msgid "Size: "
-msgstr "尺寸: "
+msgstr "大å°ï¼š "
#: editor/editor_properties_array_dict.cpp
msgid "Page: "
-msgstr "页: "
+msgstr "é ï¼š "
#: editor/editor_properties_array_dict.cpp
#: editor/plugins/theme_editor_plugin.cpp
@@ -3448,50 +3263,55 @@ msgstr "移除項目"
#: editor/editor_properties_array_dict.cpp
msgid "New Key:"
-msgstr "新建帧:"
+msgstr "新增éµå€¼ï¼š"
#: editor/editor_properties_array_dict.cpp
-#, fuzzy
msgid "New Value:"
-msgstr "數值"
+msgstr "新增數值:"
#: editor/editor_properties_array_dict.cpp
msgid "Add Key/Value Pair"
-msgstr ""
+msgstr "新增éµï¼å€¼é…å°"
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the export menu."
msgstr ""
+"該平å°æ²’有å¯åŸ·è¡Œçš„匯出 Preset。\n"
+"請在匯出é¸å–®ä¸­æ–°å¢žä¸€å€‹å¯åŸ·è¡Œçš„ Preset。"
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
-msgstr "將您的é‚輯寫在_run()方法中。"
+msgstr "在 _run() 方法中填寫é‚輯。"
#: editor/editor_run_script.cpp
msgid "There is an edited scene already."
-msgstr "已經有一個正在編輯的場景。"
+msgstr "已有一個已編輯的場景。"
#: editor/editor_run_script.cpp
msgid "Couldn't instance script:"
-msgstr "無法實例腳本:"
+msgstr "無法實體化腳本:"
#: editor/editor_run_script.cpp
msgid "Did you forget the 'tool' keyword?"
-msgstr "您是å¦éºæ¼äº† 'tool' 关键字?"
+msgstr "是å¦éºæ¼ã€Œtoolã€é—œéµå­—?"
#: editor/editor_run_script.cpp
msgid "Couldn't run script:"
-msgstr "無法é‹è¡Œè…³æœ¬:"
+msgstr "無法執行腳本:"
#: editor/editor_run_script.cpp
msgid "Did you forget the '_run' method?"
-msgstr "您是å¦éºæ¼äº† '_run' 方法?"
+msgstr "是å¦éºæ¼äº†ã€Œ_runã€æ–¹æ³•ï¼Ÿ"
+
+#: editor/editor_spin_slider.cpp
+msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
+msgstr "æŒ‰ä½ Ctrl 以å–æ•´æ•¸ã€‚æŒ‰ä½ Shift 以使用更精確的改動。"
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
-msgstr "é¸æ“‡è¦å°Žå…¥çš„節點"
+msgstr "é¸æ“‡è¦åŒ¯å…¥çš„節點"
#: editor/editor_sub_scene.cpp editor/project_manager.cpp
msgid "Browse"
@@ -3499,24 +3319,23 @@ msgstr "ç€è¦½"
#: editor/editor_sub_scene.cpp
msgid "Scene Path:"
-msgstr "場景路徑:"
+msgstr "場景路徑:"
#: editor/editor_sub_scene.cpp
msgid "Import From Node:"
-msgstr "從節點導入:"
+msgstr "自節點中匯入:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Redownload"
msgstr "é‡æ–°ä¸‹è¼‰"
#: editor/export_template_manager.cpp
msgid "Uninstall"
-msgstr "å¸è¼‰"
+msgstr "å–消安è£"
#: editor/export_template_manager.cpp
msgid "(Installed)"
-msgstr "(已安è£)"
+msgstr "(已安è£ï¼‰"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3525,73 +3344,71 @@ msgstr "下載"
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
-msgstr ""
+msgstr "開發建構 (Development Build) 下無法使用官方匯出樣æ¿ã€‚"
#: editor/export_template_manager.cpp
msgid "(Missing)"
-msgstr "(缺少)"
+msgstr "(éºå¤±ï¼‰"
#: editor/export_template_manager.cpp
msgid "(Current)"
-msgstr "(當å‰)"
+msgstr "(目å‰ï¼‰"
#: editor/export_template_manager.cpp
msgid "Retrieving mirrors, please wait..."
-msgstr "正在檢索é¡åƒï¼Œè«‹ç¨å€™â€¦"
+msgstr "正在å–å¾—é¡åƒï¼Œè«‹ç¨å¾Œ..."
#: editor/export_template_manager.cpp
msgid "Remove template version '%s'?"
-msgstr "是å¦åˆ é™¤ç‰ˆæœ¬ç‚ºâ€œ%sâ€çš„範本?"
+msgstr "是å¦åˆªé™¤æ¨£æ¿ç‰ˆæœ¬ã€Œ%sã€ï¼Ÿ"
#: editor/export_template_manager.cpp
msgid "Can't open export templates zip."
-msgstr "無法打開zip導出範本。"
+msgstr "ç„¡æ³•é–‹å•ŸåŒ¯å‡ºæ¨£æ¿ ZIP 檔。"
#: editor/export_template_manager.cpp
msgid "Invalid version.txt format inside templates: %s."
-msgstr "範本文件: %s 中的 version.txt 無效."
+msgstr "æ¨£æ¿ %s 中的 version.txt æ ¼å¼ç„¡æ•ˆã€‚"
#: editor/export_template_manager.cpp
msgid "No version.txt found inside templates."
-msgstr "範本中沒有找到version.txt文件。"
+msgstr "樣æ¿ä¸­æœªæ‰¾åˆ° version.txt。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for templates:"
-msgstr "載入場景時發生錯誤"
+msgstr "為樣æ¿å»ºç«‹è·¯å¾‘時發生錯誤:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
-msgstr "正在解壓導出範本"
+msgstr "正在解壓縮匯出樣æ¿"
#: editor/export_template_manager.cpp
msgid "Importing:"
-msgstr "å°Žå…¥:"
+msgstr "正在匯入:"
#: editor/export_template_manager.cpp
msgid "Error getting the list of mirrors."
-msgstr ""
+msgstr "å–å¾—é¡åƒåˆ—表時發生錯誤。"
#: editor/export_template_manager.cpp
msgid "Error parsing JSON of mirror list. Please report this issue!"
-msgstr ""
+msgstr "解æžé¡åƒåˆ—表的 JSON 時發生錯誤。請回報此å•é¡Œï¼"
#: editor/export_template_manager.cpp
msgid ""
"No download links found for this version. Direct download is only available "
"for official releases."
-msgstr "沒有找到這個版本的下載éˆæŽ¥. 直接下載é©ç”¨äºŽæ­£å¼ç‰ˆæœ¬."
+msgstr "為找到該版本的下載éˆæŽ¥ã€‚直接下載僅é©ç”¨æ–¼æ­£å¼ç‰ˆæœ¬ã€‚"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve."
-msgstr "無法解æž."
+msgstr "無法解æžã€‚"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Can't connect."
-msgstr "連接..."
+msgstr "無法連線。"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3600,11 +3417,11 @@ msgstr "沒有回應。"
#: editor/export_template_manager.cpp
msgid "Request Failed."
-msgstr "請求失敗."
+msgstr "請求失敗。"
#: editor/export_template_manager.cpp
msgid "Redirect Loop."
-msgstr "é‡æ–°å®šå‘循環."
+msgstr "é‡æ–°å°Žå‘循環。"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3616,35 +3433,32 @@ msgid "Download Complete."
msgstr "下載完æˆã€‚"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cannot remove temporary file:"
-msgstr "無法將主題ä¿å­˜åˆ°æª”案:"
+msgstr "無法移除臨時檔案:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid ""
"Templates installation failed.\n"
"The problematic templates archives can be found at '%s'."
-msgstr "範本安è£å¤±æ•—。有å•é¡Œçš„範本存檔å¯ä»¥åœ¨ \"%s\" 中找到。"
+msgstr ""
+"未找到樣æ¿å®‰è£ã€‚\n"
+"有å•é¡Œçš„樣æ¿æª”案存放於「%sã€ã€‚"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error requesting URL:"
-msgstr "載入場景時發生錯誤"
+msgstr "請求 URL 時發生錯誤:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to Mirror..."
-msgstr "連接..."
+msgstr "正在連線到é¡åƒ..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Disconnected"
-msgstr "æ–·ç·š"
+msgstr "已斷開連線"
#: editor/export_template_manager.cpp
msgid "Resolving"
-msgstr "解æžä¸­"
+msgstr "正在解æž"
#: editor/export_template_manager.cpp
msgid "Can't Resolve"
@@ -3652,19 +3466,16 @@ msgstr "無法解æž"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Connecting..."
-msgstr "連接..."
+msgstr "正在連線..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't Connect"
-msgstr "連接..."
+msgstr "無法連線"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connected"
-msgstr "連接..."
+msgstr "已連線"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3672,242 +3483,217 @@ msgid "Requesting..."
msgstr "正在請求…"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Downloading"
-msgstr "載入時發生錯誤:"
+msgstr "正在下載"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connection Error"
-msgstr "連接..."
+msgstr "連線錯誤"
#: editor/export_template_manager.cpp
msgid "SSL Handshake Error"
-msgstr "SSLæ¡æ‰‹éŒ¯èª¤"
+msgstr "SSL 交æ¡éŒ¯èª¤"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uncompressing Android Build Sources"
-msgstr "正在解壓縮素æ"
+msgstr "正在解壓縮 Android 建構來æº"
#: editor/export_template_manager.cpp
msgid "Current Version:"
-msgstr "當å‰ç‰ˆæœ¬:"
+msgstr "ç›®å‰ç‰ˆæœ¬ï¼š"
#: editor/export_template_manager.cpp
msgid "Installed Versions:"
-msgstr "已安è£ç‰ˆæœ¬:"
+msgstr "已安è£ç‰ˆæœ¬ï¼š"
#: editor/export_template_manager.cpp
msgid "Install From File"
-msgstr "從檔案中安è£"
+msgstr "自檔案安è£"
#: editor/export_template_manager.cpp
msgid "Remove Template"
-msgstr "移除範本"
+msgstr "移除樣æ¿"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select Template File"
-msgstr "é¸æ“‡ç¯„本檔案"
+msgstr "é¸æ“‡æ¨£æ¿æª”案"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Godot Export Templates"
-msgstr "管ç†è¼¸å‡ºæ¨¡æ¿"
+msgstr "Godot 匯出樣æ¿"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
-msgstr "導出範本管ç†å™¨"
+msgstr "匯出樣æ¿ç®¡ç†å“¡"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download Templates"
-msgstr "載入場景時發生錯誤"
+msgstr "下載樣æ¿"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: (Shift+Click: Open in Browser)"
-msgstr "從清單中é¸æ“‡é¡åƒ: (Shift + 單擊: 在ç€è¦½å™¨ä¸­æ‰“é–‹)"
+msgstr "自列表中é¸æ“‡é¡åƒï¼šï¼ˆShift+點擊:在ç€è¦½å™¨ä¸­é–‹å•Ÿï¼‰"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Favorites"
-msgstr "我的最愛:"
+msgstr "我的最愛"
#: editor/filesystem_dock.cpp
msgid "Status: Import of file failed. Please fix file and reimport manually."
-msgstr ""
+msgstr "狀態:檔案匯入失敗。請修正檔案並手動é‡æ–°åŒ¯å…¥ã€‚"
#: editor/filesystem_dock.cpp
msgid "Cannot move/rename resources root."
-msgstr "無法移動/é‡å‘½å資æºæ ¹ç›®éŒ„。"
+msgstr "無法移動ï¼é‡æ–°å‘½å根資æºã€‚"
#: editor/filesystem_dock.cpp
msgid "Cannot move a folder into itself."
-msgstr "無法將資料夾移動到其自身。"
+msgstr "無法移動資料夾至該資料夾自己。"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Error moving:"
-msgstr "載入時發生錯誤:"
+msgstr "移動時發生錯誤:"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Error duplicating:"
-msgstr "載入時發生錯誤:"
+msgstr "複製時發生錯誤:"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Unable to update dependencies:"
-msgstr "場景缺少了æŸäº›è³‡æºä»¥è‡³æ–¼ç„¡æ³•è¼‰å…¥"
+msgstr "無法更新相ä¾æ€§ï¼š"
#: editor/filesystem_dock.cpp editor/scene_tree_editor.cpp
msgid "No name provided."
msgstr "未æä¾›å稱。"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Provided name contains invalid characters."
-msgstr "æ供的å稱包å«ç„¡æ•ˆå­—å…ƒ"
+msgstr "æ供的å稱包å«äº†ç„¡æ•ˆçš„字元。"
#: editor/filesystem_dock.cpp
msgid "A file or folder with this name already exists."
-msgstr "具有此å稱的檔或資料夾已存在。"
+msgstr "已有相åŒå稱的檔案或資料夾存在。"
#: editor/filesystem_dock.cpp
msgid "Name contains invalid characters."
-msgstr "å稱包å«ç„¡æ•ˆå­—元。"
+msgstr "å稱包å«äº†ç„¡æ•ˆçš„字元。"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Renaming file:"
-msgstr "載入時發生錯誤:"
+msgstr "é‡æ–°å‘½å檔案:"
#: editor/filesystem_dock.cpp
msgid "Renaming folder:"
-msgstr "é‡å‘½å資料夾:"
+msgstr "é‡æ–°å‘½å資料夾:"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Duplicating file:"
-msgstr "載入時發生錯誤:"
+msgstr "複製檔案:"
#: editor/filesystem_dock.cpp
msgid "Duplicating folder:"
-msgstr "複製資料夾:"
+msgstr "複製資料夾:"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Inherited Scene"
-msgstr "從ç¾æœ‰å ´æ™¯ä¸­å»ºç«‹â€¦"
+msgstr "新增繼承場景"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Set As Main Scene"
-msgstr "é¸å–主è¦å ´æ™¯"
+msgstr "設為主場景"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Open Scenes"
msgstr "開啟場景"
#: editor/filesystem_dock.cpp
msgid "Instance"
-msgstr "實例"
+msgstr "實體"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Add to Favorites"
-msgstr "我的最愛:"
+msgstr "新增到我的最愛"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Remove from Favorites"
-msgstr "移除"
+msgstr "自我的最愛中移除"
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies..."
-msgstr "編輯ä¾è³´é ……"
+msgstr "編輯相ä¾æ€§..."
#: editor/filesystem_dock.cpp
msgid "View Owners..."
-msgstr "查看所有者…"
+msgstr "檢視æ“有者..."
#: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Rename..."
-msgstr "é‡å‘½å…"
+msgstr "é‡æ–°å‘½å..."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Duplicate..."
-msgstr "複製動畫關éµç•«æ ¼"
+msgstr "é‡è¤‡..."
#: editor/filesystem_dock.cpp
msgid "Move To..."
-msgstr "移動到..。"
+msgstr "移動至..."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Scene..."
-msgstr "新場景"
+msgstr "新增場景..."
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "New Script..."
-msgstr "新增資料夾..."
+msgstr "新增腳本..."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Resource..."
-msgstr "å¦å­˜è³‡æºç‚º..."
+msgstr "新增資æº..."
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
msgid "Expand All"
-msgstr "展開所有"
+msgstr "展開全部"
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Collapse All"
-msgstr "å–代全部"
+msgstr "收åˆå…¨éƒ¨"
#: editor/filesystem_dock.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#: editor/project_manager.cpp editor/rename_dialog.cpp
#: editor/scene_tree_dock.cpp
msgid "Rename"
-msgstr "é‡å‘½å"
+msgstr "é‡æ–°å‘½å"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Previous Folder/File"
-msgstr "上個分é "
+msgstr "上一個資料夾ï¼æª”案"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Next Folder/File"
-msgstr "新增資料夾"
+msgstr "下一個資料夾ï¼æª”案"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
msgstr "é‡æ–°æŽƒæ檔案系統"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Toggle Split Mode"
-msgstr "切æ›æ¨¡å¼"
+msgstr "é–‹å•Ÿï¼é—œé–‰åˆ†å‰²æ¨¡å¼"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Search files"
-msgstr "æœå°‹ Class"
+msgstr "æœå°‹æª”案"
#: editor/filesystem_dock.cpp
msgid ""
"Scanning Files,\n"
"Please Wait..."
-msgstr "正在掃æ檔, è«‹ç¨å€™..。"
+msgstr ""
+"正在掃æ檔案,\n"
+"è«‹ç¨å¾Œ..."
#: editor/filesystem_dock.cpp
msgid "Move"
@@ -3915,290 +3701,270 @@ msgstr "移動"
#: editor/filesystem_dock.cpp
msgid "There is already file or folder with the same name in this location."
-msgstr "æ­¤ä½ç½®å·²å­˜åœ¨åŒå的檔案或資料夾。"
+msgstr "該ä½ç½®å·²æœ‰ç›¸åŒå稱的檔案或資料夾。"
#: editor/filesystem_dock.cpp
msgid "Overwrite"
-msgstr "覆蓋"
+msgstr "複寫"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Create Scene"
-msgstr "從場景創建"
+msgstr "建立場景"
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
-msgstr "創建腳本"
+msgstr "建立腳本"
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Find in Files"
-msgstr "還有 %d 個檔案"
+msgstr "在檔案中æœå°‹"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Find:"
-msgstr "尋找"
+msgstr "æœå°‹ï¼š"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Folder:"
-msgstr "新增資料夾"
+msgstr "資料夾:"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Filters:"
-msgstr "éŽæ¿¾å™¨:"
+msgstr "篩é¸ï¼š"
#: editor/find_in_files.cpp
msgid ""
"Include the files with the following extensions. Add or remove them in "
"ProjectSettings."
-msgstr ""
+msgstr "包å«æœ‰ä¸‹åˆ—副檔å的檔案。å¯åœ¨å°ˆæ¡ˆè¨­å®šä¸­æ–°å¢žæˆ–移除。"
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find..."
-msgstr "尋找..."
+msgstr "æœå°‹..."
#: editor/find_in_files.cpp editor/plugins/script_text_editor.cpp
msgid "Replace..."
-msgstr "替æ›â€¦"
+msgstr "å–代..."
#: editor/find_in_files.cpp editor/progress_dialog.cpp scene/gui/dialogs.cpp
msgid "Cancel"
msgstr "å–消"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Find: "
-msgstr "尋找"
+msgstr "æœå°‹ï¼š "
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace: "
-msgstr "å–代"
+msgstr "å–代: "
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace all (no undo)"
-msgstr "å–代全部"
+msgstr "全部å–代(無法復原)"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Searching..."
-msgstr "æœå°‹"
+msgstr "正在æœå°‹..."
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Search complete"
-msgstr "æœå°‹è©žå½™"
+msgstr "æœå°‹å®Œæˆ"
#: editor/groups_editor.cpp
msgid "Add to Group"
-msgstr "添加到組"
+msgstr "新增到群組"
#: editor/groups_editor.cpp
msgid "Remove from Group"
-msgstr "從群組移除"
+msgstr "自群組中移除"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Group name already exists."
-msgstr "Autoload「%sã€å·²ç¶“存在!"
+msgstr "群組å稱已存在。"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Invalid group name."
-msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。"
+msgstr "無效的群組å稱。"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Rename Group"
-msgstr "管ç†çµ„"
+msgstr "é‡æ–°å‘½å群組"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Delete Group"
-msgstr "刪除佈局"
+msgstr "刪除群組"
#: editor/groups_editor.cpp editor/node_dock.cpp
msgid "Groups"
-msgstr "組"
+msgstr "群組"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Nodes Not in Group"
-msgstr "ä¸åœ¨çµ„中的節點"
+msgstr "節點ä¸åœ¨ç¾¤çµ„中"
#: editor/groups_editor.cpp editor/scene_tree_dock.cpp
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Filter nodes"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "篩é¸ç¯€é»ž"
#: editor/groups_editor.cpp
msgid "Nodes in Group"
-msgstr "組中的節點"
+msgstr "群組中的節點"
#: editor/groups_editor.cpp
msgid "Empty groups will be automatically removed."
-msgstr ""
+msgstr "空群組將被自動移除。"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Group Editor"
-msgstr "開啟腳本編輯器"
+msgstr "群組編輯器"
#: editor/groups_editor.cpp
msgid "Manage Groups"
-msgstr "管ç†çµ„"
+msgstr "管ç†ç¾¤çµ„"
#: editor/import/resource_importer_scene.cpp
-#, fuzzy
msgid "Import as Single Scene"
-msgstr "更新場景"
+msgstr "匯入為單一場景"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Animations"
-msgstr "使用單ç¨çš„動畫一åŒå°Žå…¥"
+msgstr "與動畫分別匯入"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials"
-msgstr "使用單ç¨çš„æ 一åŒå°Žå…¥"
+msgstr "與素æ分別匯入"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects"
-msgstr "使用單ç¨çš„物件導入"
+msgstr "與物件單ç¨åŒ¯å…¥"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials"
-msgstr "使用單ç¨çš„å°è±¡+æ質導入"
+msgstr "與物件 + ç´ æ分別匯入"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Animations"
-msgstr "使用單ç¨çš„å°è±¡+å‹•ç•«å°Žå…¥"
+msgstr "與物件 + 動畫分別匯入"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials+Animations"
-msgstr "使用單ç¨çš„æ質+å‹•ç•«å°Žå…¥"
+msgstr "與素æ + 動畫分別匯入"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials+Animations"
-msgstr "使用單ç¨çš„å°è±¡+æ質+å‹•ç•«å°Žå…¥"
+msgstr "與物件 + ç´ æ + 動畫分別匯入"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes"
-msgstr "作為多個場景導入"
+msgstr "匯入為多個場景"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes+Materials"
-msgstr "導入為多個場景+æ質"
+msgstr "匯入為多個場景 + ç´ æ"
#: editor/import/resource_importer_scene.cpp
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Import Scene"
-msgstr "導入場景"
+msgstr "匯入場景"
#: editor/import/resource_importer_scene.cpp
msgid "Importing Scene..."
-msgstr "正在導入場景…"
+msgstr "正在匯入場景..."
#: editor/import/resource_importer_scene.cpp
msgid "Generating Lightmaps"
-msgstr "生æˆå…‰ç…§åœ–"
+msgstr "正在產生光照圖"
#: editor/import/resource_importer_scene.cpp
msgid "Generating for Mesh: "
-msgstr "為網格生æˆï¼š "
+msgstr "正在產生網格: "
#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script..."
-msgstr "正在é‹è¡Œè‡ªå®šç¾©è…³æœ¬â€¦"
+msgstr "正在執行自定腳本..."
#: editor/import/resource_importer_scene.cpp
msgid "Couldn't load post-import script:"
-msgstr "無法加載導入後腳本:"
+msgstr "無法載入匯入後腳本:"
#: editor/import/resource_importer_scene.cpp
msgid "Invalid/broken script for post-import (check console):"
-msgstr "導入後腳本無效/å·²æ壞(檢查控制å°ï¼‰ï¼š"
+msgstr "匯入後腳本無效或æ毀(請檢查主控å°ï¼‰ï¼š"
#: editor/import/resource_importer_scene.cpp
msgid "Error running post-import script:"
-msgstr "é‹è¡Œå°Žå…¥å¾Œè…³æœ¬æ™‚出錯:"
+msgstr "執行匯入後腳本時發生錯誤:"
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr "是å¦æœ‰åœ¨ `post_import()` 方法內回傳 Node è¡ç”Ÿä¹‹ç‰©ä»¶ï¼Ÿ"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
-msgstr "儲存中……"
+msgstr "正在ä¿å­˜..."
#: editor/import_dock.cpp
-#, fuzzy
msgid "%d Files"
-msgstr " 資料夾"
+msgstr "%d 個檔案"
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
-msgstr "設定為“%sâ€çš„é è¨­å€¼"
+msgstr "設為「%sã€çš„é è¨­"
#: editor/import_dock.cpp
msgid "Clear Default for '%s'"
-msgstr "清除“%sâ€çš„é è¨­å€¼"
+msgstr "清除「%sã€çš„é è¨­"
#: editor/import_dock.cpp
msgid "Import As:"
-msgstr "導入為:"
+msgstr "匯入為:"
#: editor/import_dock.cpp
-#, fuzzy
msgid "Preset"
-msgstr "é è¨­"
+msgstr "Preset"
#: editor/import_dock.cpp
msgid "Reimport"
-msgstr "é‡æ–°å°Žå…¥"
+msgstr "é‡æ–°åŒ¯å…¥"
#: editor/import_dock.cpp
-#, fuzzy
msgid "Save Scenes, Re-Import, and Restart"
-msgstr "ä¿å­˜å ´æ™¯ï¼Œé‡æ–°å°Žå…¥ä¸¦é‡æ–°å•Ÿå‹•"
+msgstr "ä¿å­˜å ´æ™¯ã€é‡æ–°åŒ¯å…¥ã€ä¸¦é‡æ–°å•Ÿå‹•"
#: editor/import_dock.cpp
msgid "Changing the type of an imported file requires editor restart."
-msgstr ""
+msgstr "修改匯入檔案的型別需è¦é‡æ–°å•Ÿå‹•ç·¨è¼¯å™¨ã€‚"
#: editor/import_dock.cpp
msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
-msgstr ""
+msgstr "警告:有素æ使用該資æºï¼Œå°‡æœƒç„¡æ³•æ­£ç¢ºåŠ è¼‰ã€‚"
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
-msgstr "載入資æºå¤±æ•—。"
+msgstr "加載資æºå¤±æ•—。"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Expand All Properties"
msgstr "展開所有屬性"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Collapse All Properties"
-msgstr "展開所有屬性"
+msgstr "收åˆæ‰€æœ‰å±¬æ€§"
#: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
msgid "Save As..."
-msgstr "å¦å­˜ç‚º..。"
+msgstr "å¦å­˜ç‚º..."
#: editor/inspector_dock.cpp
msgid "Copy Params"
msgstr "複製åƒæ•¸"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource Clipboard"
-msgstr "資æºè·¯å¾‘"
+msgstr "編輯資æºå‰ªè²¼ç°¿"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
@@ -4206,78 +3972,75 @@ msgstr "複製資æº"
#: editor/inspector_dock.cpp
msgid "Make Built-In"
-msgstr "內置"
+msgstr "轉為內建"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
-msgstr "使å­è³‡æºå”¯ä¸€"
+msgstr "ç¨ç«‹åŒ–å­è³‡æº"
#: editor/inspector_dock.cpp
msgid "Open in Help"
-msgstr "在幫助界é¢ä¸­é–‹å•Ÿ"
+msgstr "在說明中開啟"
#: editor/inspector_dock.cpp
msgid "Create a new resource in memory and edit it."
-msgstr "在記憶體中創建一個新資æºä¸¦å°å…¶é€²è¡Œç·¨è¼¯ã€‚"
+msgstr "在記憶體中建立一個新的資æºå編輯。"
#: editor/inspector_dock.cpp
msgid "Load an existing resource from disk and edit it."
-msgstr "從ç£ç‰‡åŠ è¼‰ç¾æœ‰è³‡æºä¸¦å°å…¶é€²è¡Œç·¨è¼¯ã€‚"
+msgstr "從ç£ç¢Ÿä¸­è¼‰å…¥ç¾æœ‰çš„資æºä¸¦ç·¨è¼¯ã€‚"
#: editor/inspector_dock.cpp
msgid "Save the currently edited resource."
-msgstr "ä¿å­˜ç•¶å‰ç·¨è¼¯çš„資æºã€‚"
+msgstr "ä¿å­˜ç›®å‰ç·¨è¼¯çš„資æºã€‚"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
-msgstr "轉到歷å²è¨˜éŒ„中以å‰ç·¨è¼¯çš„å°è±¡ã€‚"
+msgstr "在歷å²è¨˜éŒ„中跳至上一個編輯的物件。"
#: editor/inspector_dock.cpp
msgid "Go to the next edited object in history."
-msgstr "轉到歷å²è¨˜éŒ„中的下一個編輯å°è±¡ã€‚"
+msgstr "在歷å²è¨˜éŒ„中跳至下一個編輯的物件。"
#: editor/inspector_dock.cpp
msgid "History of recently edited objects."
-msgstr "最近編輯å°è±¡çš„æ­·å²è¨˜éŒ„。"
+msgstr "最近編輯的物件歷å²è¨˜éŒ„。"
#: editor/inspector_dock.cpp
msgid "Object properties."
-msgstr "å°è±¡å†…容。"
+msgstr "物件屬性。"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Filter properties"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "éŽæ¿¾å±¬æ€§"
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
-msgstr "更改å¯èƒ½æœƒä¸Ÿå¤±!"
+msgstr "改動å¯èƒ½æœƒéºå¤±ï¼"
#: editor/multi_node_edit.cpp
msgid "MultiNode Set"
-msgstr "多節點集"
+msgstr "多節點組"
#: editor/node_dock.cpp
-#, fuzzy
msgid "Select a single node to edit its signals and groups."
-msgstr "é¸æ“‡è¦ç·¨è¼¯è¨Šè™Ÿå’Œçµ„的節點。"
+msgstr "é¸æ“‡å–®ä¸€ç¯€é»žä»¥ç·¨è¼¯å…¶è¨Šè™Ÿèˆ‡ç¾¤çµ„。"
#: editor/plugin_config_dialog.cpp
msgid "Edit a Plugin"
-msgstr "編輯挿件"
+msgstr "編輯外掛"
#: editor/plugin_config_dialog.cpp
-#, fuzzy
msgid "Create a Plugin"
-msgstr "新增"
+msgstr "建立外掛"
#: editor/plugin_config_dialog.cpp
msgid "Plugin Name:"
-msgstr "挿件å稱:"
+msgstr "外掛å稱:"
#: editor/plugin_config_dialog.cpp
msgid "Subfolder:"
-msgstr "å­è³‡æ–™å¤¾:"
+msgstr "å­è³‡æ–™å¤¾ï¼š"
#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp
msgid "Language:"
@@ -4293,16 +4056,14 @@ msgstr "ç¾åœ¨å•Ÿå‹•ï¼Ÿ"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon"
-msgstr "新增資料夾"
+msgstr "新增多邊形"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Create points."
-msgstr "刪除"
+msgstr "建立頂點。"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid ""
@@ -4310,30 +4071,30 @@ msgid ""
"LMB: Move Point\n"
"RMB: Erase Point"
msgstr ""
+"編輯頂點。\n"
+"å·¦éµé»žæ“Šï¼šç§»å‹•é ‚點\n"
+"å³éµé»žæ“Šï¼šåˆªé™¤é ‚點"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
msgid "Erase points."
-msgstr "所有的é¸æ“‡"
+msgstr "移除頂點。"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Edit Polygon"
-msgstr "新增資料夾"
+msgstr "編輯多邊形"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Insert Point"
-msgstr "æ’入點"
+msgstr "æ’入頂點"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Edit Polygon (Remove Point)"
-msgstr "編輯多邊形 (刪除點)"
+msgstr "編輯多邊形(移除頂點)"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Remove Polygon And Point"
-msgstr "移除"
+msgstr "移除多邊形與頂點"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4341,56 +4102,51 @@ msgstr "移除"
#: editor/plugins/animation_state_machine_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Animation"
-msgstr "添加動畫"
+msgstr "新增動畫"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Load..."
-msgstr "載入"
+msgstr "載入..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Move Node Point"
-msgstr "移除"
+msgstr "移動節點頂點"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Change BlendSpace1D Limits"
-msgstr "更改 BlendSpace1D é™åˆ¶"
+msgstr "修改混åˆç©ºé–“ 1D é™åˆ¶"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Change BlendSpace1D Labels"
-msgstr "更改Blendspace1d標籤"
+msgstr "修改混åˆç©ºé–“ 1D 標籤"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
-msgstr "無法使用此類型的節點。åªå…許根節點。"
+msgstr "無法使用該類型的節點。僅å…許根節點。"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Node Point"
-msgstr "移除"
+msgstr "新增節點頂點"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Animation Point"
-msgstr "動畫空間。"
+msgstr "新增動畫頂點"
#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
msgid "Remove BlendSpace1D Point"
-msgstr "移除"
+msgstr "移除混åˆç©ºé–“ 1D 頂點"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Move BlendSpace1D Node Point"
-msgstr "移動 BlendSpace1D 節點點"
+msgstr "移動混åˆç©ºé–“ 1D 節點頂點"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4400,23 +4156,23 @@ msgid ""
"AnimationTree is inactive.\n"
"Activate to enable playback, check node warnings if activation fails."
msgstr ""
-"動畫樹處於éžæ´»å‹•ç‹€æ…‹ã€‚\n"
-"激活以啟用播放, 如果啟動失敗, 請檢查節點警告。"
+"動畫樹未啟用。\n"
+"請先啟用以播放,若啟用失敗請檢查節點警告訊æ¯ã€‚"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Set the blending position within the space"
-msgstr "設置空間內的混åˆä½ç½®"
+msgstr "在此空間中設定混åˆä½ç½®"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Select and move points, create points with RMB."
-msgstr ""
+msgstr "é¸æ“‡èˆ‡ç§»å‹•é ‚點,使用滑鼠å³éµå»ºç«‹é ‚點。"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp
msgid "Enable snap and show grid."
-msgstr "啟用æ•æ‰ä¸¦é¡¯ç¤ºç¶²æ ¼ã€‚"
+msgstr "啟用å¸é™„並顯示網格。"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4426,69 +4182,63 @@ msgstr "點"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Open Editor"
-msgstr "相ä¾æ€§ç·¨è¼¯å™¨"
+msgstr "開啟編輯器"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Open Animation Node"
-msgstr "最佳化動畫"
+msgstr "開啟動畫節點"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Triangle already exists."
-msgstr "Autoload「%sã€å·²ç¶“存在!"
+msgstr "已存在三角形。"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Triangle"
-msgstr "添加動畫軌"
+msgstr "新增三角形"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Change BlendSpace2D Limits"
-msgstr "更改Blendspace2dé™åˆ¶"
+msgstr "修改混åˆç©ºé–“ 2D é™åˆ¶"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Change BlendSpace2D Labels"
-msgstr "更改Blendspace2d標籤"
+msgstr "修改混åˆç©ºé–“ 2D 標籤"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Remove BlendSpace2D Point"
-msgstr "移除"
+msgstr "移除混åˆç©ºé–“ 2D 頂點"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Remove BlendSpace2D Triangle"
-msgstr "删除Blendspace2d三角形"
+msgstr "移除混åˆç©ºé–“ 2D 三角形"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
-msgstr "Blendspace2dä¸å±¬æ–¼AnimationTree節點。"
+msgstr "æ··åˆç©ºé–“ 2D ä¸å±¬æ–¼ä»»ä½•å‹•ç•«æ¨¹ç¯€é»žã€‚"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "No triangles exist, so no blending can take place."
-msgstr "ä¸å­˜åœ¨ä¸‰è§’å½¢, å› æ­¤ä¸èƒ½é€²è¡Œæ··åˆã€‚"
+msgstr "無三角形,將ä¸æœƒé€²è¡Œæ··åˆã€‚"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Toggle Auto Triangles"
-msgstr "切æ›æœ€æ„›"
+msgstr "é–‹å•Ÿï¼å–消自動三角形"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
-msgstr "通éŽé€£æŽ¥é»žå‰µå»ºä¸‰è§’形。"
+msgstr "通éŽé€£æŽ¥é ‚點來建立三角形。"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Erase points and triangles."
-msgstr "删除點和三角形。"
+msgstr "刪除頂點與三角形。"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Generate blend triangles automatically (instead of manually)"
-msgstr "自動生æˆæ··åˆä¸‰è§’å½¢ (而ä¸æ˜¯æ‰‹å‹•ç”Ÿæˆ)"
+msgstr "自動產生混åˆä¸‰è§’形(而éžæ‰‹å‹•ï¼‰"
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -4496,131 +4246,116 @@ msgid "Blend:"
msgstr "æ··åˆï¼š"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed"
-msgstr "正在儲存變更..."
+msgstr "已更改åƒæ•¸"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
-#, fuzzy
msgid "Edit Filters"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "編輯篩é¸"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Output node can't be added to the blend tree."
-msgstr "無法將輸出節點添加到混åˆæ¨¹ä¸­ã€‚"
+msgstr "輸出節點無法被新增到混åˆæ¨¹ã€‚"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Add Node to BlendTree"
-msgstr "將節點添加到BlendTree"
+msgstr "新增節點至混åˆæ¨¹"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Node Moved"
-msgstr "節點å稱:"
+msgstr "已移動節點"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
-msgstr "無法連接,埠å¯èƒ½æ­£åœ¨ä½¿ç”¨ï¼Œæˆ–者連接å¯èƒ½ç„¡æ•ˆã€‚"
+msgstr "無法連線,該連接埠å¯èƒ½å·²è¢«ä½”用或連線無效。"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Nodes Connected"
-msgstr "連接..."
+msgstr "已連接節點"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Nodes Disconnected"
-msgstr "æ–·ç·š"
+msgstr "已斷開節點連接"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Set Animation"
-msgstr "動畫最佳化"
+msgstr "設定動畫"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Delete Node"
-msgstr "刪除"
+msgstr "刪除節點"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)"
-msgstr ""
+msgstr "刪除節點"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Filter On/Off"
-msgstr "切æ›æœ€æ„›"
+msgstr "é–‹å•Ÿï¼é—œé–‰éŽæ¿¾"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Change Filter"
-msgstr "變更é¡é ­å°ºå¯¸"
+msgstr "更改éŽæ¿¾"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
-msgstr "沒有設定動畫播放機,囙此無法檢索曲目å稱。"
+msgstr "未設定動畫播放器,無法å–得軌é“å稱。"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Player path set is invalid, so unable to retrieve track names."
-msgstr ""
+msgstr "播放器ä½ç½®ç„¡æ•ˆï¼Œç„¡æ³•å–得軌é“å稱。"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/root_motion_editor_plugin.cpp
msgid ""
"Animation player has no valid root node path, so unable to retrieve track "
"names."
-msgstr ""
+msgstr "動畫播放器的根節點ä½ç½®ç„¡æ•ˆï¼Œç„¡æ³•å–得軌é“å稱。"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Anim Clips"
-msgstr "動畫剪輯:"
+msgstr "動畫片段"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Audio Clips"
-msgstr "音訊剪輯:"
+msgstr "音訊片段"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Functions"
-msgstr "函數:"
+msgstr "函å¼"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Node Renamed"
-msgstr "節點å稱:"
+msgstr "å·²é‡æ–°å‘½å節點"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
-msgstr "添加節點..。"
+msgstr "新增節點..."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/root_motion_editor_plugin.cpp
-#, fuzzy
msgid "Edit Filtered Tracks:"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "編輯已篩é¸çš„軌é“:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Enable Filtering"
msgstr "啟用篩é¸"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
-msgstr "切æ›è‡ªå‹•æ’­æ”¾"
+msgstr "é–‹å•Ÿï¼é—œé–‰è‡ªå‹•æ’­æ”¾"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
-msgstr "æ–°å‹•ç•«å稱:"
+msgstr "新增動畫å稱:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
@@ -4628,12 +4363,12 @@ msgstr "新增動畫"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Animation Name:"
-msgstr "更改動畫å稱:"
+msgstr "更改動畫å稱:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Animation?"
-msgstr "刪除動畫?"
+msgstr "是å¦åˆªé™¤å‹•ç•«ï¼Ÿ"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -4641,27 +4376,25 @@ msgid "Remove Animation"
msgstr "移除動畫"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Invalid animation name!"
-msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。"
+msgstr "無效的動畫å稱ï¼"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Animation name already exists!"
-msgstr "Autoload「%sã€å·²ç¶“存在!"
+msgstr "å‹•ç•«å稱已存在ï¼"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Rename Animation"
-msgstr "é‡å‘½åå‹•ç•«"
+msgstr "é‡æ–°å‘½åå‹•ç•«"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
-msgstr "æ··åˆä¸‹ä¸€å€‹æ›´æ”¹"
+msgstr "æ··åˆä¸‹ä¸€å€‹æ”¹å‹•"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Blend Time"
-msgstr "更改混åˆæ™‚é–“"
+msgstr "修改混åˆæ™‚é–“"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load Animation"
@@ -4669,49 +4402,47 @@ msgstr "載入動畫"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Duplicate Animation"
-msgstr "複製動畫"
+msgstr "é‡è¤‡å‹•ç•«"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation to copy!"
-msgstr "動畫空間。"
+msgstr "ç„¡å‹•ç•«å¯è¤‡è£½ï¼"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation resource on clipboard!"
-msgstr "在資æºè·¯å¾‘中找ä¸åˆ°"
+msgstr "剪貼簿中沒有動畫資æºï¼"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
-msgstr "粘貼的動畫"
+msgstr "已貼上的動畫"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Paste Animation"
-msgstr "粘貼動畫"
+msgstr "貼上動畫"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation to edit!"
-msgstr "沒有è¦ç·¨è¼¯çš„å‹•ç•«!"
+msgstr "ç„¡å‹•ç•«å¯ç·¨è¼¯ï¼"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
-msgstr "從當å‰ä½ç½®å‘後播放所é¸å‹•ç•«ã€‚(A)"
+msgstr "自目å‰ä½ç½®é–‹å§‹å€’放所é¸çš„動畫。 (A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr "從çµå°¾å‘後播放é¸å®šçš„動畫。(Shift+a)"
+msgstr "自çµå°¾å€’放所é¸å‹•ç•«ã€‚(Shift+A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Stop animation playback. (S)"
-msgstr "åœæ­¢å‹•ç•«å›žæ”¾ã€‚(S)"
+msgstr "åœæ­¢æ’­æ”¾å‹•ç•«ã€‚(S)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from start. (Shift+D)"
-msgstr "從頭開始播放é¸å–中的動畫。(Shift+D)"
+msgstr "從頭播放所é¸å‹•ç•«ã€‚(Shift+D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from current pos. (D)"
-msgstr "從當å‰ä½ç½®æ’­æ”¾é¸å®šçš„動畫。(D)"
+msgstr "自目å‰ä½ç½®é–‹å§‹æ’­æ”¾æ‰€é¸å‹•ç•«ã€‚(D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation position (in seconds)."
@@ -4719,7 +4450,7 @@ msgstr "å‹•ç•«ä½ç½®ï¼ˆç§’)。"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Scale animation playback globally for the node."
-msgstr "在全域範åœå…§ç¸®æ”¾ç¯€é»žçš„動畫播放。"
+msgstr "為節點全域縮放動畫播放。"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
@@ -4730,40 +4461,36 @@ msgid "Animation"
msgstr "å‹•ç•«"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Edit Transitions..."
-msgstr "轉場動畫"
+msgstr "編輯轉場..."
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Open in Inspector"
-msgstr "開啟資料夾"
+msgstr "在屬性é¢æ¿ä¸­é–‹å•Ÿ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Display list of animations in player."
-msgstr "在播放機中顯示動畫清單。"
+msgstr "在播放器中顯示動畫列表。"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Autoplay on Load"
-msgstr "載入åŽè‡ªå‹•æ’­æ”¾"
+msgstr "載入後自動播放"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr "啟用洋葱皮"
+msgstr "啟用洋蔥皮化 (Onion Skinning)"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Onion Skinning Options"
-msgstr "洋葱皮"
+msgstr "洋蔥皮化é¸é …"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "æè¿°:"
+msgstr "æ–¹å‘"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Past"
-msgstr "è·³éŽ"
+msgstr "éŽåŽ»"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Future"
@@ -4775,39 +4502,39 @@ msgstr "深度"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr "1æ­¥"
+msgstr "1 æ­¥"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr "2æ­¥"
+msgstr "2 æ­¥"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr "3æ­¥"
+msgstr "3 æ­¥"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr "僅差異"
+msgstr "僅顯示差異"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr "強制白色調節"
+msgstr "強制使用白色調整"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr "包括3D控制器"
+msgstr "åŒ…å« Gizmo (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pin AnimationPlayer"
-msgstr ""
+msgstr "固定動畫播放器"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
-msgstr "創建新動畫"
+msgstr "建立新動畫"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Name:"
-msgstr "å‹•ç•«å稱:"
+msgstr "å‹•ç•«å稱:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
@@ -4818,35 +4545,32 @@ msgstr "錯誤ï¼"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Times:"
-msgstr "æ··åˆæ™‚é–“:"
+msgstr "æ··åˆæ™‚間:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Next (Auto Queue):"
-msgstr "下一個(自動隊列):"
+msgstr "下一個(自動佇列):"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
msgstr "跨動畫混åˆæ™‚é–“"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Move Node"
msgstr "移動節點"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition exists!"
-msgstr "轉場: "
+msgstr "轉場已存在ï¼"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Add Transition"
-msgstr "添加轉æ›"
+msgstr "新增轉場"
#: editor/plugins/animation_state_machine_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
-msgstr "添加節點"
+msgstr "新增節點"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
@@ -4862,7 +4586,7 @@ msgstr "åŒæ­¥"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "At End"
-msgstr "在末尾"
+msgstr "在çµå°¾"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Travel"
@@ -4870,26 +4594,23 @@ msgstr "行程"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Start and end nodes are needed for a sub-transition."
-msgstr ""
+msgstr "å­è½‰å ´å¿…é ˆè¦æœ‰é–‹å§‹èˆ‡çµæŸç¯€é»žã€‚"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "No playback resource set at path: %s."
-msgstr "在資æºè·¯å¾‘中找ä¸åˆ°"
+msgstr "路徑 %s 中沒有å¯æ’­æ”¾çš„資æºã€‚"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Node Removed"
msgstr "已刪除節點"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition Removed"
-msgstr "已刪除轉æ›"
+msgstr "已刪除轉場"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Set Start Node (Autoplay)"
-msgstr ""
+msgstr "設定開始節點(自動播放)"
#: editor/plugins/animation_state_machine_editor.cpp
msgid ""
@@ -4897,38 +4618,37 @@ msgid ""
"RMB to add new nodes.\n"
"Shift+LMB to create connections."
msgstr ""
+"é¸æ“‡èˆ‡ç§»å‹•ç¯€é»žã€‚\n"
+"å³éµé»žæ“Šä»¥æ–°å¢žç¯€é»žã€‚\n"
+"Shift+å·¦éµé»žæ“Šä»¥å»ºç«‹é€£æŽ¥ã€‚"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Create new nodes."
-msgstr "新增 %s"
+msgstr "建立新節點。"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Connect nodes."
-msgstr "連接..."
+msgstr "連接節點。"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Remove selected node or transition."
-msgstr "移除é¸æ“‡çš„動畫軌。"
+msgstr "移除所é¸çš„節點或轉場。"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Toggle autoplay this animation on start, restart or seek to zero."
-msgstr ""
+msgstr "é–‹å•Ÿï¼é—œé–‰è©²å‹•ç•«åœ¨é–‹å§‹ã€é‡æ–°å•Ÿå‹•æˆ–尋覓至 0 時的自動播放。"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Set the end animation. This is useful for sub-transitions."
-msgstr ""
+msgstr "設定çµå°¾å‹•ç•«ã€‚å°æ–¼å­è½‰å ´å¾ˆæœ‰ç”¨ã€‚"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Transition: "
-msgstr "轉場: "
+msgstr "轉場: "
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Play Mode:"
-msgstr "平移模å¼"
+msgstr "播放模å¼ï¼š"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -4937,16 +4657,16 @@ msgstr "動畫樹"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "New name:"
-msgstr "æ–°å稱:"
+msgstr "æ–°å稱:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Scale:"
-msgstr "縮放:"
+msgstr "縮放:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Fade In (s):"
-msgstr "淡入(秒):"
+msgstr "淡入(秒):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Fade Out (s):"
@@ -4954,23 +4674,23 @@ msgstr "淡出(秒):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend"
-msgstr "æ··åˆ"
+msgstr "æ··åˆ (Blend)"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Mix"
-msgstr "æ··åˆ"
+msgstr "æ··åˆ (Mix)"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Auto Restart:"
-msgstr "自動é‡æ–°é–‹å§‹:"
+msgstr "自動é‡æ–°é–‹å§‹ï¼š"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Restart (s):"
-msgstr "é‡æ–°é–‹å§‹(秒):"
+msgstr "é‡æ–°é–‹å§‹ï¼ˆç§’):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Random Restart (s):"
-msgstr "隨機é‡æ–°é–‹å§‹(秒):"
+msgstr "隨機é‡æ–°é–‹å§‹ï¼ˆç§’):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Start!"
@@ -4983,45 +4703,45 @@ msgstr "數é‡ï¼š"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend 0:"
-msgstr "æ··åˆ 0:"
+msgstr "æ··åˆ 0:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend 1:"
-msgstr "æ··åˆ 1:"
+msgstr "æ··åˆ 1:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "X-Fade Time (s):"
-msgstr ""
+msgstr "交å‰æ·¡åŒ– (X-Fade) 時間(秒):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Current:"
-msgstr "當å‰ï¼š"
+msgstr "ç›®å‰ï¼š"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Input"
-msgstr "添加輸入"
+msgstr "新增輸入"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Clear Auto-Advance"
-msgstr "清除Auto-Advance"
+msgstr "清除自動 Advance"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Set Auto-Advance"
-msgstr "設定自動å‰é€²"
+msgstr "設定自動 Advance"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Delete Input"
-msgstr "刪除輸入事件"
+msgstr "刪除輸入"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation tree is valid."
-msgstr "動畫樹有效。"
+msgstr "有效動畫樹。"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation tree is invalid."
-msgstr "動畫樹無效。"
+msgstr "無效的動畫樹。"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation Node"
@@ -5037,23 +4757,23 @@ msgstr "æ··åˆç¯€é»ž"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend2 Node"
-msgstr "æ··åˆ2 節點"
+msgstr "æ··åˆ 2 節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend3 Node"
-msgstr "æ··åˆ3 節點"
+msgstr "æ··åˆ 3 節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend4 Node"
-msgstr "æ··åˆ4 節點"
+msgstr "æ··åˆ 4 節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "TimeScale Node"
-msgstr "時間尺度節點"
+msgstr "時間縮放節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "TimeSeek Node"
-msgstr "時間æœç´¢ç¯€é»ž"
+msgstr "時間尋覓節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Transition Node"
@@ -5061,123 +4781,115 @@ msgstr "轉場節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Import Animations..."
-msgstr "導入動畫…"
+msgstr "匯入動畫…"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Node Filters"
-msgstr "編輯節點篩é¸"
+msgstr "編輯節點éŽæ¿¾"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Filters..."
-msgstr "篩é¸â€¦"
+msgstr "éŽæ¿¾..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Contents:"
msgstr "內容:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "View Files"
-msgstr "查看檔案"
+msgstr "檢視檔案"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Connection error, please try again."
-msgstr "連接錯誤, è«‹é‡è©¦ã€‚"
+msgstr "連線錯誤,請é‡è©¦ã€‚"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect to host:"
-msgstr "無法連接到主機:"
+msgstr "無法連線至主機:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No response from host:"
-msgstr "主機沒有響應:"
+msgstr "主機沒有回應:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve hostname:"
-msgstr "無法解æžä¸»æ©Ÿå稱:"
+msgstr "無法解æžä¸»æ©Ÿå稱:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, return code:"
-msgstr "請求失敗, 返回代碼:"
+msgstr "請求失敗,回傳代碼:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Request failed."
-msgstr "請求失敗."
+msgstr "請求失敗。"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Cannot save response to:"
-msgstr "無法將主題ä¿å­˜åˆ°æª”案:"
+msgstr "無法ä¿å­˜å›žè¦†è‡³ï¼š"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Write error."
-msgstr ""
+msgstr "寫入錯誤。"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, too many redirects"
-msgstr "請求失敗, é‡å®šå‘次數太多"
+msgstr "請求失敗,éŽå¤šé‡æ–°å°Žå‘"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Redirect loop."
-msgstr "é‡æ–°å®šå‘循環."
+msgstr "é‡æ–°å°Žå‘循環。"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Request failed, timeout"
-msgstr "請求失敗, 返回代碼:"
+msgstr "請求失敗,逾時"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Timeout."
-msgstr "時間"
+msgstr "逾時。"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
-msgstr ""
+msgstr "下載雜湊錯誤,檔案å¯èƒ½è¢«ç¯¡æ”¹ã€‚"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Expected:"
-msgstr "é æœŸï¼š"
+msgstr "é è¨ˆï¼š"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Got:"
-msgstr "ç²å¾—:"
+msgstr "ç²å¾—:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed sha256 hash check"
-msgstr "sha256哈希值檢查失敗"
+msgstr "SHA-256 雜湊檢查失敗"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr "資æºä¸‹è¼‰éŒ¯èª¤:"
+msgstr "ç´ æ下載錯誤:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading (%s / %s)..."
msgstr "正在下載 (%s / %s)…"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Downloading..."
-msgstr "正在下載……"
+msgstr "正在下載..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving..."
-msgstr "解æžä¸­â€¦"
+msgstr "正在解æž..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Error making request"
-msgstr "請求時發生錯誤"
+msgstr "建立請求時發生錯誤"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Idle"
-msgstr "空閒"
+msgstr "待命"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Install..."
-msgstr "安è£"
+msgstr "安è£..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
@@ -5189,46 +4901,43 @@ msgstr "下載錯誤"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download for this asset is already in progress!"
-msgstr "此資æºæ–‡æª”正在下載中!"
+msgstr "該素æ已在下載中ï¼"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Recently Updated"
-msgstr ""
+msgstr "最近更新"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Least Recently Updated"
-msgstr ""
+msgstr "最近更新(倒åºï¼‰"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Name (A-Z)"
-msgstr ""
+msgstr "å稱(A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Name (Z-A)"
-msgstr ""
+msgstr "å稱(Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (A-Z)"
-msgstr "授權"
+msgstr "授權(A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (Z-A)"
-msgstr "授權"
+msgstr "授權(Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "First"
-msgstr "第一項"
+msgstr "首é "
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Previous"
-msgstr "上個分é "
+msgstr "上一é "
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Next"
-msgstr "下一個"
+msgstr "下一é "
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Last"
@@ -5240,35 +4949,32 @@ msgstr "全部"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No results for \"%s\"."
-msgstr ""
+msgstr "無「%sã€ç›¸é—œçš„çµæžœã€‚"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Import..."
-msgstr "å°Žå…¥"
+msgstr "匯入..."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Plugins..."
-msgstr "挿件"
+msgstr "外掛..."
#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
msgid "Sort:"
-msgstr "排åº:"
+msgstr "排åºï¼š"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
msgid "Category:"
-msgstr "類別:"
+msgstr "分類:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Site:"
-msgstr "地å€:"
+msgstr "網站:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Support"
-msgstr "支æŒâ€¦"
+msgstr "支æ´"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Official"
@@ -5279,13 +4985,12 @@ msgid "Testing"
msgstr "測試"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Loading..."
-msgstr "載入"
+msgstr "正在載入..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
-msgstr "ZIP資æºåŒ…"
+msgstr "ç´ æ ZIP 檔"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5293,21 +4998,23 @@ msgid ""
"Save your scene (for images to be saved in the same dir), or pick a save "
"path from the BakedLightmap properties."
msgstr ""
+"無法判斷光照圖的ä¿å­˜è·¯å¾‘。\n"
+"請將場景ä¿å­˜ï¼ˆåœ–片將ä¿å­˜æ–¼ç›¸åŒè³‡æ–™å¤¾ï¼‰ï¼Œæˆ–是在 BackedLightmap 屬性內é¸æ“‡ä¸€å€‹"
+"ä¿å­˜è·¯å¾‘。"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
msgid ""
"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
"Light' flag is on."
-msgstr "沒有å¯ä¾›æ¸²æŸ“çš„Meshes,請確ä¿Mesh包å«UV2通é“並且勾é¸'Bake Light'é¸é …"
+msgstr "æ²’æœ‰å¯ Bake 的網格。請確ä¿ç¶²æ ¼åŒ…å« UV2 通é“並已開啟「Bake 光照ã€æ——標。"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Failed creating lightmap images, make sure path is writable."
-msgstr "創建光圖圖åƒå¤±æ•—, 請確ä¿è·¯å¾‘是å¯å¯«çš„。"
+msgstr "建立光照圖失敗,請確ä¿è©²è·¯å¾‘å¯å¯«å…¥ã€‚"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Bake Lightmaps"
-msgstr "渲染光圖"
+msgstr "Bake 光照圖"
#: editor/plugins/camera_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
@@ -5316,81 +5023,71 @@ msgstr "é è¦½"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap"
-msgstr "é…ç½®å¸é™„"
+msgstr "設定å¸é™„"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Grid Offset:"
-msgstr "網格å移é‡:"
+msgstr "網格å移é‡ï¼š"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Grid Step:"
-msgstr "網格大å°:"
+msgstr "網格大å°ï¼š"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Primary Line Every:"
-msgstr ""
+msgstr "主è¦ç·šæ¢é–“隔:"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "steps"
-msgstr "2æ­¥"
+msgstr "步長"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Offset:"
-msgstr "旋轉å移é‡:"
+msgstr "旋轉å移é‡ï¼š"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Step:"
-msgstr "旋轉步驟:"
+msgstr "旋轉步長:"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Scale Step:"
-msgstr "縮放:"
+msgstr "縮放步長:"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move Vertical Guide"
-msgstr "垂直移動尺標"
+msgstr "移動垂直åƒè€ƒç·š"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Vertical Guide"
-msgstr "創建新的垂直尺標"
+msgstr "建立垂直åƒè€ƒç·š"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Vertical Guide"
-msgstr "刪除垂直尺標"
+msgstr "移除垂直åƒè€ƒç·š"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move Horizontal Guide"
-msgstr "移動水平尺標"
+msgstr "移動水平åƒè€ƒç·š"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Horizontal Guide"
-msgstr "創建新的水平尺標"
+msgstr "建立水平åƒè€ƒç·š"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Horizontal Guide"
-msgstr "移除水平尺標"
+msgstr "移除水平åƒè€ƒç·š"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Horizontal and Vertical Guides"
-msgstr "創建新的水平和垂直尺標"
+msgstr "建立水平與垂直åƒè€ƒç·š"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move pivot"
-msgstr "移動樞軸"
+msgstr "移動軸心"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotate CanvasItem"
-msgstr "旋轉CanvasItem"
+msgstr "旋轉畫布項目"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move anchor"
@@ -5398,112 +5095,99 @@ msgstr "移動錨點"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Resize CanvasItem"
-msgstr "調整CanvasItem的大å°"
+msgstr "調整畫布項目大å°"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale CanvasItem"
-msgstr "縮放CanvasItem"
+msgstr "縮放畫布項目"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move CanvasItem"
-msgstr "移動CanvasItem"
+msgstr "移動畫布項目"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
-msgstr "容器的å­ç´šçš„錨定值和é é‚Šè·å€¼è¢«å…¶çˆ¶ç´šè¦†è“‹ã€‚"
+msgstr "容器å­é …ç›®çš„éŒ¨é»žèˆ‡å¤–é‚Šè· (margin) 值被其æ¯é …目複寫。"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Presets for the anchors and margins values of a Control node."
-msgstr ""
+msgstr "控制節點的錨點與外邊è·çš„ Preset。"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"When active, moving Control nodes changes their anchors instead of their "
"margins."
-msgstr ""
+msgstr "啟用時,移動控制節點將修改錨點而éžå¤–é‚Šè·ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Top Left"
-msgstr "å·¦"
+msgstr "左上"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Top Right"
-msgstr "å³"
+msgstr "å³ä¸Š"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Bottom Right"
-msgstr "å‘å³æ—‹è½‰"
+msgstr "å³ä¸‹"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Bottom Left"
-msgstr "底部視圖"
+msgstr "左下"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Center Left"
-msgstr "å‘左縮進"
+msgstr "中左"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Center Top"
-msgstr "居中é¸æ“‡"
+msgstr "中上"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Center Right"
-msgstr "å‘å³ç¸®é€²"
+msgstr "中å³"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Center Bottom"
-msgstr "底部"
+msgstr "中下"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center"
-msgstr ""
+msgstr "中央"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Left Wide"
-msgstr "左視圖"
+msgstr "左延長"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Top Wide"
-msgstr "俯視圖"
+msgstr "上延長"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Right Wide"
-msgstr "å³è¦–圖"
+msgstr "å³å»¶é•·"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Bottom Wide"
-msgstr "底部視圖"
+msgstr "下延長"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "VCenter Wide"
-msgstr ""
+msgstr "垂直中央延長"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "HCenter Wide"
-msgstr ""
+msgstr "水平中央延長"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Full Rect"
-msgstr ""
+msgstr "全矩形"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Keep Ratio"
-msgstr "縮放比例:"
+msgstr "ä¿æŒæ¯”例"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Anchors only"
@@ -5511,11 +5195,11 @@ msgstr "僅é™éŒ¨é»ž"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Anchors and Margins"
-msgstr "改變錨點和邊è·"
+msgstr "修改錨點與外邊è·"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Anchors"
-msgstr "改變錨點"
+msgstr "修改錨點"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5523,6 +5207,8 @@ msgid ""
"Game Camera Override\n"
"Overrides game camera with editor viewport camera."
msgstr ""
+"éŠæˆ²ç›¸æ©Ÿè¦†è“‹\n"
+"以檢視å€ç›¸æ©Ÿå–代éŠæˆ²ç›¸æ©Ÿã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5530,69 +5216,64 @@ msgid ""
"Game Camera Override\n"
"No game instance running."
msgstr ""
+"éŠæˆ²ç›¸æ©Ÿè¦†è“‹\n"
+"無正在執行的éŠæˆ²å¯¦é«”。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Lock Selected"
-msgstr "工具é¸æ“‡"
+msgstr "鎖定所é¸"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Unlock Selected"
-msgstr "工具é¸æ“‡"
+msgstr "å–消鎖定所é¸"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Group Selected"
-msgstr "複製é¸æ“‡"
+msgstr "為所é¸çš„項目建立群組"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Ungroup Selected"
-msgstr "複製é¸æ“‡"
+msgstr "移除所é¸é …目的群組"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
-msgstr "粘貼姿勢"
+msgstr "貼上姿勢"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Clear Guides"
-msgstr "清除姿勢"
+msgstr "清除åƒè€ƒç·š"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Custom Bone(s) from Node(s)"
-msgstr "從節點製作自定義骨骼"
+msgstr "å­ç¯€é»žå»ºç«‹è‡ªå®šéª¨éª¼"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Clear Bones"
-msgstr "清除姿勢"
+msgstr "清除骨骼"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
-msgstr "製作IKéˆ"
+msgstr "建立 IK éˆ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear IK Chain"
-msgstr "清除IKéˆ"
+msgstr "清除 IK éˆ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Warning: Children of a container get their position and size determined only "
"by their parent."
-msgstr "警告:容器的å­ç´šåªèƒ½ç”±å…¶çˆ¶ç´šç¢ºå®šå…¶ä½ç½®å’Œå¤§å°ã€‚"
+msgstr "警告:容器的å­é …目的ä½ç½®èˆ‡å¤§å°æœ‰å…¶æ¯é …目決定。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Reset"
-msgstr "é‡ç½®ç¸®æ”¾"
+msgstr "é‡è¨­ç¸®æ”¾"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5601,19 +5282,19 @@ msgstr "é¸æ“‡æ¨¡å¼"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag: Rotate"
-msgstr "拖動: 旋轉"
+msgstr "拖移:旋轉"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+Drag: Move"
-msgstr "Alt+Drag:移動"
+msgstr "Alt+拖移:移動"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
-msgstr "按 \"v\" 更改樞軸, \"Shift + v\" 以拖動樞軸 (移動時)。"
+msgstr "按「vã€ä»¥ä¿®æ”¹æ¨žç´ï¼Œã€ŒShift+vã€ä»¥ç§»å‹•æ¨žç´ï¼ˆç§»å‹•æ™‚)。"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+RMB: Depth list selection"
-msgstr "Alt+滑鼠å³éµ:顯示鼠標點擊ä½ç½®ä¸‹æ‰€æœ‰çš„節點清單"
+msgstr "Alt+滑鼠å³éµï¼šå±•é–‹æ‰€é¸æ¸…å–®"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5627,7 +5308,6 @@ msgstr "旋轉模å¼"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale Mode"
msgstr "縮放模å¼"
@@ -5636,129 +5316,112 @@ msgstr "縮放模å¼"
msgid ""
"Show a list of all objects at the position clicked\n"
"(same as Alt+RMB in select mode)."
-msgstr "在按一下的ä½ç½®é¡¯ç¤ºæ‰€æœ‰ç‰©ä»¶çš„清單 (在é¸æ“‡æ¨¡å¼ä¸‹èˆ‡ Alt + RMB 相åŒ)。"
+msgstr ""
+"顯示該點擊ä½ç½®æ‰€æœ‰ç‰©ä»¶çš„列表\n"
+"(åŒé¸æ“‡æ¨¡å¼ä¸­çš„ Alt+滑鼠å³éµï¼‰ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Click to change object's rotation pivot."
-msgstr "點擊以更改物件的旋轉樞軸。"
+msgstr "點擊以更改物件的旋轉樞ç´ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan Mode"
msgstr "平移模å¼"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Ruler Mode"
-msgstr "縮放模å¼"
+msgstr "å°ºè¦æ¨¡å¼"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Toggle smart snapping."
-msgstr "切æ›å¸é™„。"
+msgstr "é–‹å•Ÿï¼é—œé–‰æ™ºæ…§åž‹å¸é™„。"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Use Smart Snap"
-msgstr "使用å¸é™„"
+msgstr "使用智慧型å¸é™„"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Toggle grid snapping."
-msgstr "切æ›å¸é™„。"
+msgstr "é–‹å•Ÿï¼é—œé–‰ç¶²æ ¼å¸é™„。"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Use Grid Snap"
-msgstr "網格å¸é™„"
+msgstr "使用網格å¸é™„"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snapping Options"
msgstr "å¸é™„é¸é …"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Use Rotation Snap"
msgstr "使用旋轉å¸é™„"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Use Scale Snap"
-msgstr "使用å¸é™„"
+msgstr "使用縮放å¸é™„"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap Relative"
msgstr "相å°å¸é™„"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Use Pixel Snap"
msgstr "使用åƒç´ å¸é™„"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Smart Snapping"
-msgstr "智慧å¸é™„"
+msgstr "智慧型å¸é™„"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Configure Snap..."
-msgstr "é…ç½®å¸é™„…"
+msgstr "設定å¸é™„..."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Parent"
-msgstr "å¸é™„到父級節點"
+msgstr "å¸é™„至æ¯ç´š"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Node Anchor"
-msgstr "å¸é™„到節點的錨點"
+msgstr "å¸é™„至節點錨點"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Node Sides"
-msgstr "æ•æ‰åˆ°ç¯€é»žé‚Š"
+msgstr "å¸é™„至節點å´é‚Š"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Node Center"
-msgstr "å¸é™„到節點的中心"
+msgstr "å¸é™„至節點中央"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Other Nodes"
-msgstr "å¸é™„到其他的節點"
+msgstr "å¸é™„至其他節點"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Guides"
-msgstr "å¸é™„到尺標"
+msgstr "å¸é™„至åƒè€ƒç·š"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Lock the selected object in place (can't be moved)."
-msgstr "將所é¸ç‰©ä»¶éŽ–定到中心 (無法移動)。"
+msgstr "在其ä½ç½®ä¸ŠéŽ–定所é¸ç‰©ä»¶ï¼ˆç„¡æ³•ç§»å‹•ï¼‰ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Unlock the selected object (can be moved)."
-msgstr "解鎖所é¸ç‰©ä»¶ (å¯ä»¥ç§»å‹•)。"
+msgstr "解鎖所é¸ç‰©ä»¶ï¼ˆå¯ç§»å‹•ï¼‰ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
-msgstr "確ä¿å°è±¡çš„å­ç´šä¸å¯é¸ã€‚"
+msgstr "確ä¿ç‰©ä»¶çš„å­ç´šé …目無法被é¸æ“‡ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
-msgstr "æ¢å¾©å°è±¡çš„å­ç´šé¸æ“‡èƒ½åŠ›ã€‚"
+msgstr "æ¢å¾©è®“物件的å­ç´šé …ç›®å¯é¸æ“‡ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Skeleton Options"
msgstr "骨架é¸é …"
@@ -5768,7 +5431,7 @@ msgstr "顯示骨骼"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make Custom Bone(s) from Node(s)"
-msgstr "從節點製作自定義骨骼"
+msgstr "自節點建立自定骨骼"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Custom Bones"
@@ -5777,16 +5440,15 @@ msgstr "清除自定義骨骼"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View"
-msgstr "視圖"
+msgstr "檢視"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Always Show Grid"
-msgstr "顯示網格"
+msgstr "æ°¸é é¡¯ç¤ºç¶²æ ¼"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Helpers"
-msgstr "顯示輔助線"
+msgstr "顯示輔助資訊"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Rulers"
@@ -5794,7 +5456,7 @@ msgstr "顯示尺è¦"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Guides"
-msgstr "顯示引導"
+msgstr "顯示åƒè€ƒç·š"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Origin"
@@ -5802,40 +5464,39 @@ msgstr "顯示原點"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Viewport"
-msgstr "顯示視å£"
+msgstr "顯示檢視å€"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Group And Lock Icons"
-msgstr "顯示組和鎖定圖標"
+msgstr "顯示群組與鎖定圖示"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
-msgstr "居中é¸æ“‡"
+msgstr "置中所é¸"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Frame Selection"
-msgstr "å¹€é¸æ“‡"
+msgstr "完整顯示所é¸"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Preview Canvas Scale"
-msgstr ""
+msgstr "é è¦½ç•«å¸ƒæ¯”例"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Translation mask for inserting keys."
-msgstr ""
+msgstr "轉æ›é®ç½©ä»¥æ’入關éµå½±æ ¼ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation mask for inserting keys."
-msgstr ""
+msgstr "旋轉é®ç½©ä»¥æ’入關éµå½±æ ¼ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale mask for inserting keys."
-msgstr ""
+msgstr "縮放é®ç½©ä»¥æ’入關éµå½±æ ¼ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Insert keys (based on mask)."
-msgstr "æ’入幀 (ç¾æœ‰è»Œé“)"
+msgstr "(基於é®ç½©ï¼‰æ’入關éµå½±æ ¼ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5844,20 +5505,21 @@ msgid ""
"Keys are only added to existing tracks, no new tracks will be created.\n"
"Keys must be inserted manually for the first time."
msgstr ""
+"檔物件被轉æ›ã€æ—‹è½‰ã€æˆ–(基於é®ç½©ï¼‰ç¸®æ”¾æ™‚自動æ’入關éµå½±æ ¼ã€‚\n"
+"é—œéµå½±æ ¼åªæœƒè¢«æ–°å¢žè‡³ç¾å­˜çš„軌é“,將ä¸æœƒå»ºç«‹æ–°çš„軌é“。\n"
+"第一次必須先手動æ’入關éµå½±æ ¼ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Auto Insert Key"
-msgstr "新增關éµç•«æ ¼"
+msgstr "自動æ’入關éµå½±æ ¼"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Animation Key and Pose Options"
-msgstr "動畫長度(秒)"
+msgstr "å‹•ç•«é—œéµå½±æ ¼èˆ‡å§¿å‹¢é¸é …"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
-msgstr "æ’入幀 (ç¾æœ‰è»Œé“)"
+msgstr "æ’入關éµå½±æ ¼ï¼ˆåœ¨ç¾æœ‰è»Œé“)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
@@ -5869,53 +5531,53 @@ msgstr "清除姿勢"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
-msgstr "將網格步數乘以2"
+msgstr "將網格步數乘以 2"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Divide grid step by 2"
-msgstr "將網格步數除以2"
+msgstr "將網格步數除以 2"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Pan View"
-msgstr "後視圖"
+msgstr "平移檢視"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
-msgstr "添加 %s"
+msgstr "新增 %"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
-msgstr "添加 %s…"
+msgstr "正在新增 %s…"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Cannot instantiate multiple nodes without root."
-msgstr "無法具ç¾åŒ–沒有根的多個節點。"
+msgstr "沒有根節點無法實體化多個節點。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Create Node"
-msgstr "創建節點"
+msgstr "建立節點"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Error instancing scene from %s"
-msgstr "%s 中的具ç¾åŒ–場景出錯"
+msgstr "自 %s 實體化場景時發生錯誤"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Change Default Type"
-msgstr "更改é è¨­é¡žåž‹"
+msgstr "更改é è¨­åž‹åˆ¥"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Drag & drop + Shift : Add node as sibling\n"
"Drag & drop + Alt : Change node type"
msgstr ""
+"拖放 + Shift:新增åŒç´šç¯€é»ž\n"
+"拖放 + Alt:修改節點型別"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Create Polygon3D"
-msgstr "創建3D多邊形"
+msgstr "建立多邊形 3D"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Edit Poly"
@@ -5923,29 +5585,28 @@ msgstr "編輯多邊形"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Edit Poly (Remove Point)"
-msgstr "編輯多邊形 (刪除頂點)"
+msgstr "編輯多邊形(移除頂點)"
#: editor/plugins/collision_shape_2d_editor_plugin.cpp
msgid "Set Handle"
-msgstr "設置控制程åº"
+msgstr "設定處ç†ç¨‹å¼"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Load Emission Mask"
-msgstr ""
+msgstr "載入發射é®ç½©"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "Restart"
-msgstr "é‡æ–°é–‹å§‹(秒):"
+msgstr "é‡æ–°å•Ÿå‹•"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Clear Emission Mask"
-msgstr ""
+msgstr "清除發射é®ç½©"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -5956,141 +5617,131 @@ msgstr "ç²’å­"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generated Point Count:"
-msgstr ""
+msgstr "已產生的頂點數é‡ï¼š"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Mask"
-msgstr ""
+msgstr "發射é®ç½©"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Solid Pixels"
-msgstr "擴展(åƒç´ ï¼‰: "
+msgstr "實體åƒç´ "
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Border Pixels"
-msgstr ""
+msgstr "é‚Šç•Œåƒç´ "
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Directed Border Pixels"
-msgstr "資料夾 & 檔案:"
+msgstr "有å‘é‚Šç•Œåƒç´ "
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Capture from Pixel"
-msgstr ""
+msgstr "自åƒç´ ä¸­æ•æ‰"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Colors"
-msgstr ""
+msgstr "發射色彩"
#: editor/plugins/cpu_particles_editor_plugin.cpp
msgid "CPUParticles"
-msgstr "CPUç²’å­"
+msgstr "CPUParticles"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emission Points From Mesh"
-msgstr "從網格創建發射點"
+msgstr "自網格建立發射點"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emission Points From Node"
-msgstr "從節點創建發射點"
+msgstr "自節點建立發射點"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Flat 0"
-msgstr "å¹³é¢0"
+msgstr "Flat 0"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Flat 1"
-msgstr "å¹³é¢1"
+msgstr "Flat 1"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease In"
-msgstr ""
+msgstr "ç·©å…¥"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease Out"
-msgstr ""
+msgstr "緩出"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Smoothstep"
-msgstr "平滑步長"
+msgstr "平滑æ’值"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Point"
-msgstr "修改曲線點"
+msgstr "修改曲線控制點"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Tangent"
-msgstr "修改曲線切角"
+msgstr "修改曲線切線"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load Curve Preset"
-msgstr "加載曲線é è¨­"
+msgstr "加載曲線 Preset"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Add Point"
-msgstr "添加點"
+msgstr "新增控制點"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove Point"
-msgstr "刪除點"
+msgstr "移除控制點"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Left Linear"
msgstr "左線性"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Right Linear"
msgstr "å³ç·šæ€§"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Load Preset"
-msgstr "載入é è¨­"
+msgstr "載入 Preset"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove Curve Point"
-msgstr "刪除曲線點"
+msgstr "移除曲線控制點"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Toggle Curve Linear Tangent"
-msgstr "切æ›æ›²ç·šç›´ç·šåˆ‡ç·š"
+msgstr "é–‹å•Ÿï¼é—œé–‰æ›²ç·šç·šæ€§åˆ‡ç·š"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Hold Shift to edit tangents individually"
-msgstr "æŒ‰ä½ Shift éµå¯å–®ç¨ç·¨è¼¯åˆ‡ç·š"
+msgstr "æŒ‰ä½ Shift éµä»¥å–®ç¨ç·¨è¼¯åˆ‡ç·š"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Right click to add point"
-msgstr ""
+msgstr "å³éµé»žæ“Šä»¥æ–°å¢žæŽ§åˆ¶é»ž"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
-msgstr "渲染 GI Probe"
+msgstr "Bake GI 探é‡"
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Gradient Edited"
-msgstr "漸變編輯"
+msgstr "漸層編輯"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
-msgstr "é …ç›® %d"
+msgstr "第 %d 項"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Items"
@@ -6098,100 +5749,95 @@ msgstr "é …ç›®"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item List Editor"
-msgstr "項目清單編輯器"
+msgstr "項目列表編輯器"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Occluder Polygon"
-msgstr "創建é®å…‰å¤šé‚Šå½¢"
+msgstr "建立é®å…‰å¤šé‚Šå½¢"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh is empty!"
-msgstr "網格是空的ï¼"
+msgstr "空網格ï¼"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Couldn't create a Trimesh collision shape."
-msgstr "無法新增資料夾."
+msgstr "無法建立三角網格碰撞形狀。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
-msgstr ""
+msgstr "建立éœæ…‹ä¸‰è§’網格形體"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "This doesn't work on scene root!"
-msgstr "這å°å ´æ™¯æ ¹ç›®éŒ„ä¸èµ·ä½œç”¨ï¼"
+msgstr "無法用於場景根節點ï¼"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Trimesh Static Shape"
-msgstr "創建凸形éœæ…‹é«”"
+msgstr "建立三角網格éœæ…‹å½¢ç‹€"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Can't create a single convex collision shape for the scene root."
-msgstr ""
+msgstr "無法為該場景根節點建立單一凸碰撞形狀。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Couldn't create a single convex collision shape."
-msgstr ""
+msgstr "無法建立單一凸碰撞形狀。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Single Convex Shape"
-msgstr "創建凸é¢å½¢ç‹€"
+msgstr "建立單一凸é¢å½¢ç‹€"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Can't create multiple convex collision shapes for the scene root."
-msgstr ""
+msgstr "無法為場景根節點建立多個凸碰撞形狀。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Couldn't create any collision shapes."
-msgstr "無法新增資料夾."
+msgstr "無法建立任何碰撞形狀。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Multiple Convex Shapes"
-msgstr "創建凸é¢å½¢ç‹€"
+msgstr "建立多個凸é¢å½¢ç‹€"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
-msgstr "創建導航網格"
+msgstr "建立導航網格"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Contained Mesh is not of type ArrayMesh."
-msgstr "包å«çš„網格ä¸æ˜¯ArrayMesh類型。"
+msgstr "包å«çš„網格的型別ä¸æ˜¯é™£åˆ—網格 (ArrayMesh)。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "UV Unwrap failed, mesh may not be manifold?"
-msgstr ""
+msgstr "UV 展開失敗,該網格å¯èƒ½ä¸¦éžæµå½¢ï¼Ÿ"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "No mesh to debug."
-msgstr "沒有è¦èª¿è©¦çš„網格。"
+msgstr "沒有å¯é™¤éŒ¯çš„網格。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Model has no UV in this layer"
-msgstr ""
+msgstr "模型在該圖層上無 UV"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
-msgstr "網格實例缺少網格ï¼"
+msgstr "網格實體 (MeshInstance) 缺ä¹ç¶²æ ¼ï¼"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh has not surface to create outlines from!"
-msgstr "網格沒有表é¢ä¾†å‰µå»ºè¼ªå»“ï¼"
+msgstr "網格未包å«å¯å»ºç«‹è¼ªå»“的表é¢ï¼"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!"
-msgstr ""
+msgstr "網格的原始類型ä¸æ˜¯ PRIMITIVE_TRIANGLESï¼"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
-msgstr ""
+msgstr "無法建立輪廓ï¼"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline"
-msgstr "創建輪廓"
+msgstr "建立輪廓"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh"
@@ -6199,7 +5845,7 @@ msgstr "網格"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Body"
-msgstr ""
+msgstr "建立三角網格éœæ…‹å½¢é«”"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6207,42 +5853,48 @@ msgid ""
"automatically.\n"
"This is the most accurate (but slowest) option for collision detection."
msgstr ""
+"建立éœæ…‹å½¢é«” (StaticBody) 並自動指派一個基於多邊形的碰撞形體。\n"
+"å°æ–¼ç¢°æ’žåµæ¸¬ï¼Œé€™æ˜¯æœ€ç²¾ç¢ºï¼ˆä½†æœ€æ…¢ï¼‰çš„é¸é …。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Collision Sibling"
-msgstr ""
+msgstr "建立三角網格碰撞åŒç´š"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
"Creates a polygon-based collision shape.\n"
"This is the most accurate (but slowest) option for collision detection."
msgstr ""
+"建立基於多邊形的碰撞形狀。\n"
+"å°æ–¼ç¢°æ’žåµæ¸¬ï¼Œé€™æ˜¯æœ€ç²¾ç¢ºï¼ˆä½†æœ€æ…¢ï¼‰çš„é¸é …。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Single Convex Collision Sibling"
-msgstr "創建碰撞多邊形"
+msgstr "建立單一凸é¢ç¢°æ’žåŒç´š"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
"Creates a single convex collision shape.\n"
"This is the fastest (but least accurate) option for collision detection."
msgstr ""
+"建立單一凸é¢ç¢°æ’žå½¢ç‹€ã€‚\n"
+"å°æ–¼ç¢°æ’žåµæ¸¬ï¼Œé€™æ˜¯æœ€å¿«ï¼ˆä½†æœ€ä¸ç²¾ç¢ºï¼‰çš„é¸é …。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Multiple Convex Collision Siblings"
-msgstr "創建碰撞多邊形"
+msgstr "建立碰撞多邊形åŒç´š"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
"Creates a polygon-based collision shape.\n"
"This is a performance middle-ground between the two above options."
msgstr ""
+"建立基於多邊形的碰撞å€åŸŸã€‚\n"
+"這是效能ä½æ–¼ä¸Šé¢å…©å€‹æ–¹æ³•ä¸­é–“çš„é¸é …。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
-msgstr "創建輪廓網格…"
+msgstr "建立輪廓網格..."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6251,24 +5903,24 @@ msgid ""
"This can be used instead of the SpatialMaterial Grow property when using "
"that property isn't possible."
msgstr ""
+"建立éœæ…‹è¼ªå»“網格。輪廓網格的法線會自動翻轉。\n"
+"當無法使用 SpatialMetarial çš„ Grow 屬性時å¯ä»¥ä½¿ç”¨é€™å€‹ã€‚"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "View UV1"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "檢視 UV1"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "View UV2"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "檢視 UV2"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Unwrap UV2 for Lightmap/AO"
-msgstr ""
+msgstr "為光照圖ï¼AO 打開 UV2"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
-msgstr "創建輪廓網格"
+msgstr "建立輪廓網格"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Outline Size:"
@@ -6276,100 +5928,100 @@ msgstr "輪廓尺寸:"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "UV Channel Debug"
-msgstr ""
+msgstr "UV 通é“åµéŒ¯"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Remove item %d?"
-msgstr "删除項目%d?"
+msgstr "是å¦ç§»é™¤é …ç›® %d?"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid ""
"Update from existing scene?:\n"
"%s"
-msgstr "從場景更新"
+msgstr ""
+"自ç¾æœ‰å ´æ™¯ä¸­æ›´æ–°ï¼Ÿ\n"
+"%s"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid "Mesh Library"
-msgstr "網狀資料庫(MeshLibrary)…"
+msgstr "網格庫 (Mesh Library)"
#: editor/plugins/mesh_library_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Item"
-msgstr "添加項目"
+msgstr "新增項目"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Remove Selected Item"
-msgstr "删除所é¸é …"
+msgstr "移除所é¸é …ç›®"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Import from Scene"
-msgstr "從場景導入"
+msgstr "自場景匯入"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Update from Scene"
-msgstr "從場景更新"
+msgstr "自場景更新"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and no MultiMesh set in node)."
-msgstr "未指定網格æºï¼ˆç¯€é»žä¸­æ²’有多網格集)。"
+msgstr "未指定網格來æºï¼ˆä¸”節點中沒有多網格集 (MultiMesh Set))。"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and MultiMesh contains no Mesh)."
-msgstr ""
+msgstr "未指定網格來æºï¼ˆä¸”多網格 (MultiMesh) 未包å«ç¶²æ ¼ (Mesh))。"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (invalid path)."
-msgstr "網格æºç„¡æ•ˆï¼ˆè·¯å¾‘無效)。"
+msgstr "網格來æºç„¡æ•ˆï¼ˆç„¡æ•ˆçš„路徑)。"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (not a MeshInstance)."
-msgstr "網格æºç„¡æ•ˆ (ä¸æ˜¯ç¶²æ ¼å¯¦ä¾‹)。"
+msgstr "網格來æºç„¡æ•ˆï¼ˆä¸æ˜¯ç¶²æ ¼å¯¦é«” (MeshInstance))。"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (contains no Mesh resource)."
-msgstr "網格æºç„¡æ•ˆï¼ˆä¸åŒ…å«ç¶²æ ¼è³‡æºï¼‰ã€‚"
+msgstr "網格來æºç„¡æ•ˆï¼ˆæœªåŒ…å«ç¶²æ ¼ (Mesh) 資æºï¼‰ã€‚"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No surface source specified."
-msgstr "未指定表é¢æºã€‚"
+msgstr "未指定表é¢ä¾†æºã€‚"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (invalid path)."
-msgstr "表é¢æºç„¡æ•ˆï¼ˆè·¯å¾‘無效)。"
+msgstr "表é¢ä¾†æºç„¡æ•ˆï¼ˆç„¡æ•ˆçš„路徑)。"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no geometry)."
-msgstr "表é¢æºç„¡æ•ˆï¼ˆæ²’有幾何圖形)。"
+msgstr "表é¢ä¾†æºç„¡æ•ˆï¼ˆç„¡å¹¾ä½•ï¼‰ã€‚"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no faces)."
-msgstr "表é¢æºç„¡æ•ˆï¼ˆæ²’有é¢ï¼‰ã€‚"
+msgstr "表é¢ä¾†æºç„¡æ•ˆï¼ˆç„¡é¢ï¼‰ã€‚"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Source Mesh:"
-msgstr "é¸æ“‡æºç¶²æ ¼ï¼š"
+msgstr "é¸æ“‡ä¾†æºç¶²æ ¼ï¼š"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Target Surface:"
-msgstr "é¸æ“‡ç›®æ¨™æ›²é¢ï¼š"
+msgstr "é¸æ“‡ç›®æ¨™ç¶²æ ¼ï¼š"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate Surface"
-msgstr "填充曲é¢"
+msgstr "填充表é¢"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate MultiMesh"
-msgstr "填充多網格"
+msgstr "填充多網格 (MultiMesh)"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Target Surface:"
-msgstr "目標表é¢:"
+msgstr "目標表é¢ï¼š"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Source Mesh:"
-msgstr "æºç¶²æ ¼:"
+msgstr "來æºç¶²æ ¼ï¼š"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "X-Axis"
@@ -6385,7 +6037,7 @@ msgstr "Z 軸"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh Up Axis:"
-msgstr ""
+msgstr "網格上軸:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Rotation:"
@@ -6397,7 +6049,7 @@ msgstr "隨機傾斜:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Scale:"
-msgstr "隨機縮放:"
+msgstr "隨機縮放:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate"
@@ -6406,69 +6058,65 @@ msgstr "å¡«å……"
#: editor/plugins/navigation_polygon_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create Navigation Polygon"
-msgstr "創建導航多邊形"
+msgstr "建立導航多邊形"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "Convert to CPUParticles"
-msgstr "轉æ›æˆ..."
+msgstr "轉æ›ç‚º CPUParticles"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generating Visibility Rect"
-msgstr "生æˆå¯è¦‹æ€§çŸ©å½¢"
+msgstr "正在產生矩形å¯è¦‹æ€§"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
-msgstr "生æˆå¯è¦‹æ€§çŸ©å½¢"
+msgstr "產生矩形å¯è¦‹æ€§"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Can only set point into a ParticlesMaterial process material"
-msgstr ""
+msgstr "僅é™æŒ‡å‘ç²’å­æ料的處ç†ææ–™ (ParticlesMaterial Process Material)"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generation Time (sec):"
-msgstr "生æˆæ™‚é–“ (秒):"
+msgstr "產生時間(秒):"
#: editor/plugins/particles_editor_plugin.cpp
msgid "The geometry's faces don't contain any area."
-msgstr ""
+msgstr "幾何體的é¢æœªåŒ…å«ä»»ä½•å€åŸŸã€‚"
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "The geometry doesn't contain any faces."
-msgstr "節點ä¸åŒ…å«å¹¾ä½•åœ–å½¢ (é¢)。"
+msgstr "幾何體未包å«ä»»ä½•é¢ã€‚"
#: editor/plugins/particles_editor_plugin.cpp
msgid "\"%s\" doesn't inherit from Spatial."
-msgstr ""
+msgstr "「%sã€éžè‡ª Spatial 繼承。"
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "\"%s\" doesn't contain geometry."
-msgstr "節點ä¸åŒ…å«å¹¾ä½•åœ–形。"
+msgstr "「%sã€æœªåŒ…å«å¹¾ä½•é«”。"
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "\"%s\" doesn't contain face geometry."
-msgstr "節點ä¸åŒ…å«å¹¾ä½•åœ–形。"
+msgstr "「%sã€æœªåŒ…å«é¢å¹¾ä½•é«”。"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
-msgstr "創建發射器"
+msgstr "建立發射器"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Emission Points:"
-msgstr "排放點:"
+msgstr "發射點:"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Surface Points"
-msgstr "表é¢é»ž"
+msgstr "表é¢é ‚點"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Surface Points+Normal (Directed)"
-msgstr "表é¢é»ž + 法線 (定å‘)"
+msgstr "表é¢é»ž + 法線(有å‘)"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Volume"
@@ -6476,330 +6124,320 @@ msgstr "é«”ç©"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Emission Source: "
-msgstr "排放æºï¼š "
+msgstr "發射æºï¼š "
#: editor/plugins/particles_editor_plugin.cpp
msgid "A processor material of type 'ParticlesMaterial' is required."
-msgstr "需è¦â€œé¡†ç²’資料â€é¡žåž‹çš„處ç†å™¨è³‡æ–™ã€‚"
+msgstr "需è¦ã€Œç²’å­ææ–™ (ParticlesMaterial)ã€åž‹åˆ¥çš„處ç†å™¨æ料。"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
-msgstr "ç”Ÿæˆ AABB"
+msgstr "正在產生 AABB"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generate Visibility AABB"
-msgstr "生æˆå¯è¦‹æ€§AABB"
+msgstr "產生å¯è¦‹æ€§ AABB"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generate AABB"
-msgstr "ç”Ÿæˆ AABB"
+msgstr "產生 AABB"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Point from Curve"
-msgstr "從曲線中删除點"
+msgstr "自曲線中刪除控制點"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Out-Control from Curve"
-msgstr ""
+msgstr "自曲線移除外控制點"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove In-Control from Curve"
-msgstr ""
+msgstr "自曲線移除內控制點"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Add Point to Curve"
-msgstr ""
+msgstr "新增控制點至曲線"
#: editor/plugins/path_2d_editor_plugin.cpp
-#, fuzzy
msgid "Split Curve"
-msgstr "編輯節點曲線"
+msgstr "拆分控制點"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Point in Curve"
-msgstr ""
+msgstr "移動控制點至曲線"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move In-Control in Curve"
-msgstr ""
+msgstr "移動曲線的內控制點"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Out-Control in Curve"
-msgstr ""
+msgstr "移動曲線的外控制點"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Select Points"
-msgstr ""
+msgstr "é¸æ“‡æŽ§åˆ¶é»ž"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Shift+Drag: Select Control Points"
-msgstr ""
+msgstr "Shift+拖移:é¸æ“‡æŽ§åˆ¶é»ž"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Click: Add Point"
-msgstr ""
+msgstr "點擊:新增控制點"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Left Click: Split Segment (in curve)"
-msgstr ""
+msgstr "å·¦éµé»žæ“Šï¼šï¼ˆåœ¨æ›²ç·šå…§ï¼‰æ‹†åˆ†ç·šæ®µ"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Right Click: Delete Point"
-msgstr ""
+msgstr "å³éµé»žæ“Šï¼šåˆªé™¤æŽ§åˆ¶é»ž"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Select Control Points (Shift+Drag)"
-msgstr ""
+msgstr "é¸æ“‡æŽ§åˆ¶é»žï¼ˆShift+拖移)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Add Point (in empty space)"
-msgstr ""
+msgstr "新增控制點(在空白處)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Delete Point"
-msgstr ""
+msgstr "刪除控制點"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Close Curve"
-msgstr ""
+msgstr "關閉曲線"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp
msgid "Options"
-msgstr ""
+msgstr "é¸é …"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Mirror Handle Angles"
-msgstr ""
+msgstr "é¡åƒæ‰‹æŸ„角度"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Mirror Handle Lengths"
-msgstr ""
+msgstr "é¡åƒæ‰‹æŸ„長度"
#: editor/plugins/path_editor_plugin.cpp
msgid "Curve Point #"
-msgstr ""
+msgstr "曲線控制點 #"
#: editor/plugins/path_editor_plugin.cpp
-#, fuzzy
msgid "Set Curve Point Position"
-msgstr "移除"
+msgstr "設定曲線控制點的ä½ç½®"
#: editor/plugins/path_editor_plugin.cpp
-#, fuzzy
msgid "Set Curve In Position"
-msgstr "移除"
+msgstr "設定曲線的內控制點ä½ç½®"
#: editor/plugins/path_editor_plugin.cpp
-#, fuzzy
msgid "Set Curve Out Position"
-msgstr "移除"
+msgstr "設定曲線的外控制點ä½ç½®"
#: editor/plugins/path_editor_plugin.cpp
msgid "Split Path"
-msgstr ""
+msgstr "拆分路徑"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove Path Point"
-msgstr ""
+msgstr "移除路徑控制點"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove Out-Control Point"
-msgstr ""
+msgstr "移除外控制點"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove In-Control Point"
-msgstr ""
+msgstr "移除內控制點"
#: editor/plugins/path_editor_plugin.cpp
msgid "Split Segment (in curve)"
-msgstr ""
+msgstr "拆分線段(在曲線中)"
#: editor/plugins/physical_bone_plugin.cpp
-#, fuzzy
msgid "Move Joint"
-msgstr "移除"
+msgstr "移動關節"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid ""
"The skeleton property of the Polygon2D does not point to a Skeleton2D node"
-msgstr ""
+msgstr "多邊形 2D (Polygon2D) 的骨架屬性未指å‘骨架 2D (Skeleton2D) 節點"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Sync Bones"
-msgstr ""
+msgstr "åŒæ­¥éª¨éª¼"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid ""
"No texture in this polygon.\n"
"Set a texture to be able to edit UV."
msgstr ""
+"該多邊形沒有紋ç†è²¼åœ–。\n"
+"請先設定紋ç†ä»¥ç·¨è¼¯ UV。"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create UV Map"
-msgstr ""
+msgstr "建立 UV Map"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
-msgstr ""
+msgstr "多邊形 2D 有內部頂點,將無法在檢視å€ç·¨è¼¯ã€‚"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon & UV"
-msgstr ""
+msgstr "建立多邊形與 UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Internal Vertex"
-msgstr ""
+msgstr "建立內部頂點"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Remove Internal Vertex"
-msgstr ""
+msgstr "移除內部頂點"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Invalid Polygon (need 3 different vertices)"
-msgstr ""
+msgstr "無效的多邊形(需è¦ä¸‰å€‹ä¸åŒçš„頂點)"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Add Custom Polygon"
-msgstr "新增資料夾"
+msgstr "新增自定多邊形"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Polygon"
-msgstr "移除"
+msgstr "移除自定多邊形"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Transform UV Map"
-msgstr ""
+msgstr "è½‰æ› UV Map"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Transform Polygon"
-msgstr "新增資料夾"
+msgstr "轉æ›å¤šé‚Šå½¢"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Paint Bone Weights"
-msgstr ""
+msgstr "æ繪骨骼權é‡"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Open Polygon 2D UV editor."
-msgstr ""
+msgstr "開啟多邊形 2D UV 編輯器。"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon 2D UV Editor"
-msgstr ""
+msgstr "多邊形 2D UV 編輯器"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "UV"
-msgstr ""
+msgstr "UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Points"
-msgstr "移除"
+msgstr "點"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Polygons"
-msgstr "新增資料夾"
+msgstr "多邊形"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Bones"
-msgstr ""
+msgstr "骨骼"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Move Points"
-msgstr "移除"
+msgstr "移動點"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Ctrl: Rotate"
-msgstr ""
+msgstr "Ctrl:旋轉"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
-msgstr ""
+msgstr "Shift:移動全部"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
-msgstr ""
+msgstr "Shift+Ctrl:縮放"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Polygon"
-msgstr ""
+msgstr "移動多邊形"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Rotate Polygon"
-msgstr ""
+msgstr "旋轉多邊形"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Scale Polygon"
-msgstr ""
+msgstr "縮放多邊形"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create a custom polygon. Enables custom polygon rendering."
-msgstr ""
+msgstr "建立自定多邊形。啟用自定多邊形算圖。"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid ""
"Remove a custom polygon. If none remain, custom polygon rendering is "
"disabled."
-msgstr ""
+msgstr "移除自定多邊形。若無剩餘多邊形,將ç¦ç”¨è‡ªå®šå¤šé‚Šå½¢ç®—圖。"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Paint weights with specified intensity."
-msgstr ""
+msgstr "以指定的強度來繪製權é‡ã€‚"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Unpaint weights with specified intensity."
-msgstr ""
+msgstr "以指定的強度來å–消繪製權é‡ã€‚"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Radius:"
-msgstr ""
+msgstr "åŠå¾‘:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon->UV"
-msgstr ""
+msgstr "多邊形 -> UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "UV->Polygon"
-msgstr ""
+msgstr "UV -> 多邊形"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
-msgstr ""
+msgstr "清除 UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Grid Settings"
-msgstr "專案設定"
+msgstr "網格設定"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Snap"
-msgstr ""
+msgstr "å¸é™„"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Enable Snap"
-msgstr ""
+msgstr "啟用å¸é™„"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid"
-msgstr ""
+msgstr "網格"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Show Grid"
@@ -6807,48 +6445,48 @@ msgstr "顯示網格"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Configure Grid:"
-msgstr ""
+msgstr "設定網格:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Offset X:"
-msgstr ""
+msgstr "網格 X å移:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Offset Y:"
-msgstr ""
+msgstr "網格 Y å移:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Step X:"
-msgstr ""
+msgstr "網格 X 步進值:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Step Y:"
-msgstr ""
+msgstr "網格 Y 步進值:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Sync Bones to Polygon"
-msgstr ""
+msgstr "åŒæ­¥éª¨éª¼åˆ°å¤šé‚Šå½¢"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ERROR: Couldn't load resource!"
-msgstr ""
+msgstr "錯誤:無法載入資æºï¼"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Add Resource"
-msgstr ""
+msgstr "新增資æº"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Rename Resource"
-msgstr ""
+msgstr "é‡æ–°å‘½å資æº"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Resource"
-msgstr ""
+msgstr "刪除資æº"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Resource clipboard is empty!"
-msgstr ""
+msgstr "資æºå‰ªè²¼æ¿ç‚ºç©ºï¼"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Paste Resource"
@@ -6857,119 +6495,108 @@ msgstr "貼上資æº"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/scene_tree_editor.cpp
msgid "Instance:"
-msgstr ""
+msgstr "實體:"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
#: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Type:"
-msgstr ""
+msgstr "型別:"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp
msgid "Open in Editor"
-msgstr ""
+msgstr "在編輯器中開啟"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Load Resource"
-msgstr ""
+msgstr "載入資æº"
#: editor/plugins/resource_preloader_editor_plugin.cpp
-#, fuzzy
msgid "ResourcePreloader"
-msgstr "資æºè·¯å¾‘"
+msgstr "資æºé åŠ è¼‰ (ResourcePreloader)"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
-msgstr ""
+msgstr "動畫樹 (AnimationTree) 未設定至動畫播放器 (AnimationPlayer) 的路徑"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "Path to AnimationPlayer is invalid"
-msgstr ""
+msgstr "至 AnimationPlayer 的路徑無效"
#: editor/plugins/script_editor_plugin.cpp
msgid "Clear Recent Files"
-msgstr ""
+msgstr "清除最近的檔案"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close and save changes?"
-msgstr "沒有儲存的變更都會éºå¤±, 確定è¦é—œé–‰?"
+msgstr "關閉並ä¿å­˜ä¿®æ”¹å—Žï¼Ÿ"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error writing TextFile:"
-msgstr "載入場景時發生錯誤"
+msgstr "寫入文字檔案 (TextFile) 時發生錯誤:"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Could not load file at:"
-msgstr "無法新增資料夾"
+msgstr "無法載入檔案於:"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error saving file!"
-msgstr "儲存資æºéŒ¯èª¤!"
+msgstr "ä¿å­˜æª”案時發生錯誤ï¼"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error while saving theme."
-msgstr "儲存中發生了錯誤。"
+msgstr "ä¿å­˜ä¸»é¡Œæ™‚發生錯誤。"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error Saving"
-msgstr "ä¿å­˜éŒ¯èª¤"
+msgstr "ä¿å­˜æ™‚發生錯誤"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error importing theme."
-msgstr "導入主題時出錯。"
+msgstr "ä¿å­˜åŒ¯å…¥çš„主題時發生錯誤。"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error Importing"
-msgstr "載入時發生錯誤:"
+msgstr "匯入時發生錯誤"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "New Text File..."
-msgstr "新增資料夾..."
+msgstr "新增文字檔案..."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Open File"
msgstr "開啟檔案"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Save File As..."
-msgstr "å¦å­˜å ´æ™¯ç‚º..."
+msgstr "å¦å­˜æª”案為..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Can't obtain the script for running."
-msgstr ""
+msgstr "無法å–å¾—è¦åŸ·è¡Œçš„腳本。"
#: editor/plugins/script_editor_plugin.cpp
msgid "Script failed reloading, check console for errors."
-msgstr ""
+msgstr "腳本é‡æ–°è¼‰å…¥å¤±æ•—,請檢查主控å°ä»¥ç¢ºèªéŒ¯èª¤ã€‚"
#: editor/plugins/script_editor_plugin.cpp
msgid "Script is not in tool mode, will not be able to run."
-msgstr ""
+msgstr "腳本ä¸åœ¨å·¥å…·æ¨¡å¼ä¸‹ï¼Œç„¡æ³•åŸ·è¡Œã€‚"
#: editor/plugins/script_editor_plugin.cpp
msgid ""
"To run this script, it must inherit EditorScript and be set to tool mode."
-msgstr ""
+msgstr "欲執行該腳本,其必須繼承自編輯器腳本 (EditorScript) 並設為工具模å¼ã€‚"
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
-msgstr "導入主題"
+msgstr "匯入主題"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
-msgstr "ä¿å­˜ä¸»é¡Œæ™‚出錯"
+msgstr "ä¿å­˜ä¸»é¡Œæ™‚發生錯誤"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving"
@@ -6977,41 +6604,37 @@ msgstr "ä¿å­˜éŒ¯èª¤"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As..."
-msgstr "將主題å¦å­˜ç‚º..。"
+msgstr "ä¿å­˜ä¸»é¡Œç‚º..."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "%s Class Reference"
-msgstr " 類引用"
+msgstr "%s 類別åƒç…§"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find Next"
-msgstr "查找下一個"
+msgstr "尋找下一個"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find Previous"
-msgstr "查找上一個"
+msgstr "尋找上一個"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Filter scripts"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "éŽæ¿¾è…³æœ¬"
#: editor/plugins/script_editor_plugin.cpp
msgid "Toggle alphabetical sorting of the method list."
-msgstr ""
+msgstr "é–‹å•Ÿï¼é—œé–‰æŒ‰ç…§å­—æ¯é †åºæŽ’列方法列表。"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Filter methods"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "éŽæ¿¾æ–¹æ³•"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Sort"
-msgstr "排åº:"
+msgstr "排åº"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
@@ -7038,14 +6661,12 @@ msgid "File"
msgstr "檔案"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Open..."
msgstr "開啟…"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Reopen Closed Script"
-msgstr "開啟最近存å–"
+msgstr "é‡æ–°æ‰“開關閉的腳本"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save All"
@@ -7053,20 +6674,19 @@ msgstr "全部ä¿å­˜"
#: editor/plugins/script_editor_plugin.cpp
msgid "Soft Reload Script"
-msgstr "軟é‡æ–°åŠ è¼‰è…³æœ¬"
+msgstr "軟é‡æ–°è¼‰å…¥è…³æœ¬"
#: editor/plugins/script_editor_plugin.cpp
msgid "Copy Script Path"
msgstr "複製腳本路徑"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "History Previous"
-msgstr "上個分é "
+msgstr "上一個歷å²è¨˜éŒ„"
#: editor/plugins/script_editor_plugin.cpp
msgid "History Next"
-msgstr ""
+msgstr "下一個歷å²è¨˜éŒ„"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
@@ -7074,9 +6694,8 @@ msgid "Theme"
msgstr "主題"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Import Theme..."
-msgstr "導入主題..。"
+msgstr "匯入主題..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
@@ -7092,11 +6711,11 @@ msgstr "全部關閉"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close Docs"
-msgstr "關閉檔案"
+msgstr "關閉說明文件"
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
msgid "Run"
-msgstr "é‹è¡Œ"
+msgstr "執行"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Into"
@@ -7104,11 +6723,11 @@ msgstr "步入"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Over"
-msgstr "è·¨éŽ"
+msgstr "æ­¥éŽ"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Break"
-msgstr "è·³éŽ"
+msgstr "中斷"
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
#: editor/script_editor_debugger.cpp
@@ -7117,39 +6736,39 @@ msgstr "繼續"
#: editor/plugins/script_editor_plugin.cpp
msgid "Keep Debugger Open"
-msgstr "ä¿æŒèª¿è©¦å™¨æ‰“é–‹"
+msgstr "ä¿æŒé–‹å•Ÿé™¤éŒ¯å·¥å…·"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Debug with External Editor"
-msgstr "使用外部編輯器進行調試"
+msgstr "使用外部編輯器進行除錯"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Open Godot online documentation."
-msgstr "打開 Godot 線上文檔"
+msgstr "打開 Godot 線上說明文件。"
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the reference documentation."
-msgstr "æœç´¢åƒè€ƒæ–‡æª”。"
+msgstr "æœå°‹åƒç…§æ–‡ä»¶ã€‚"
#: editor/plugins/script_editor_plugin.cpp
msgid "Go to previous edited document."
-msgstr "轉到上一個編輯的檔案。"
+msgstr "跳至上一個編輯的文件。"
#: editor/plugins/script_editor_plugin.cpp
msgid "Go to next edited document."
-msgstr "轉到下一個編輯的檔案。"
+msgstr "跳至下一個編輯的文件。"
#: editor/plugins/script_editor_plugin.cpp
msgid "Discard"
-msgstr "棄置"
+msgstr "放棄"
#: editor/plugins/script_editor_plugin.cpp
msgid ""
"The following files are newer on disk.\n"
"What action should be taken?:"
msgstr ""
+"ç£ç¢Ÿä¸­çš„下列檔案已更新。\n"
+"è¦åŸ·è¡Œä»€éº¼ï¼Ÿï¼š"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/shader_editor_plugin.cpp
@@ -7163,73 +6782,65 @@ msgstr "é‡æ–°ä¿å­˜"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Debugger"
-msgstr "調試器"
+msgstr "除錯工具"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Search Results"
msgstr "æœå°‹çµæžœ"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Clear Recent Scripts"
-msgstr "清除最近開啟的場景"
+msgstr "清除最近開啟的腳本"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Connections to method:"
-msgstr "連接到節點:"
+msgstr "連接至方法:"
#: editor/plugins/script_text_editor.cpp editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Source"
-msgstr "資æº"
+msgstr "來æº"
#: editor/plugins/script_text_editor.cpp
msgid "Target"
-msgstr ""
+msgstr "目標"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid ""
"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'."
-msgstr "將 '%s' 從 '%s' 中斷連接"
+msgstr "找ä¸åˆ°æ–¹æ³•ã€Œ%sã€ï¼ˆè‡ªè¨Šè™Ÿã€Œ%sã€ï¼‰ï¼Œç¯€é»žã€Œ%sã€è‡³ã€Œ%sã€çš„連接已中斷。"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Line"
-msgstr "行:"
+msgid "[Ignore]"
+msgstr "[忽略]"
#: editor/plugins/script_text_editor.cpp
-msgid "(ignore)"
-msgstr "(忽略)"
+msgid "Line"
+msgstr "行"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Function"
-msgstr "轉到函數"
+msgstr "跳至函å¼"
#: editor/plugins/script_text_editor.cpp
msgid "Only resources from filesystem can be dropped."
-msgstr "åªèƒ½æ‹–拽檔案系統中的資æºã€‚"
+msgstr "åªå¯æ‹–移來自檔案系統的資æºã€‚"
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't drop nodes because script '%s' is not used in this scene."
-msgstr ""
+msgstr "無法防止節點,由於腳本「%sã€ä¸¦æœªåœ¨è©²å ´æ™¯ä¸­ä½¿ç”¨ã€‚"
#: editor/plugins/script_text_editor.cpp
msgid "Lookup Symbol"
-msgstr "查找符號"
+msgstr "æœå°‹ç¬¦è™Ÿ"
#: editor/plugins/script_text_editor.cpp
msgid "Pick Color"
msgstr "é¸æ“‡é¡è‰²"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
-#, fuzzy
msgid "Convert Case"
-msgstr "轉æ›æˆ..."
+msgstr "轉æ›å¤§å°å¯«"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Uppercase"
@@ -7250,53 +6861,50 @@ msgstr "高亮顯示語法"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Go To"
-msgstr ""
+msgstr "跳至"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
-msgstr ""
+msgstr "書籤"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Breakpoints"
-msgstr "刪除"
+msgstr "中斷點"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
-msgstr "剪切"
+msgstr "剪下"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Select All"
-msgstr "é¸æ“‡å…¨éƒ¨"
+msgstr "全部é¸æ“‡"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Delete Line"
msgstr "删除行"
#: editor/plugins/script_text_editor.cpp
msgid "Indent Left"
-msgstr "å‘左縮進"
+msgstr "å‘左縮排"
#: editor/plugins/script_text_editor.cpp
msgid "Indent Right"
-msgstr "å‘å³ç¸®é€²"
+msgstr "å‘å³ç¸®æŽ’"
#: editor/plugins/script_text_editor.cpp
msgid "Toggle Comment"
-msgstr "切æ›æ³¨é‡‹"
+msgstr "展開ï¼æ”¶èµ·è¨»è§£"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Fold/Unfold Line"
-msgstr "å‰å¾€ç¬¬...è¡Œ"
+msgstr "展開ï¼æ”¶èµ·è¡Œ"
#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
-msgstr "折疊所有行"
+msgstr "收起所有行"
#: editor/plugins/script_text_editor.cpp
msgid "Unfold All Lines"
@@ -7304,97 +6912,88 @@ msgstr "展開所有行"
#: editor/plugins/script_text_editor.cpp
msgid "Clone Down"
-msgstr "æ‹·è²åˆ°ä¸‹ä¸€è¡Œ"
+msgstr "複製到下一行"
#: editor/plugins/script_text_editor.cpp
msgid "Complete Symbol"
-msgstr ""
+msgstr "補全符號"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Evaluate Selection"
-msgstr "縮放所é¸"
+msgstr "å–值所é¸å…§å®¹"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
-msgstr ""
+msgstr "移除後方空白字元"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Convert Indent to Spaces"
-msgstr "轉æ›æˆ..."
+msgstr "轉æ›ç¸®æŽ’為空白"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Convert Indent to Tabs"
-msgstr "轉æ›æˆ..."
+msgstr "轉æ›ç¸®æŽ’為 Tab"
#: editor/plugins/script_text_editor.cpp
msgid "Auto Indent"
-msgstr "自動縮進"
+msgstr "自動縮排"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Find in Files..."
-msgstr "在檔中查找..。"
+msgstr "在檔案中æœå°‹..."
#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
-msgstr ""
+msgstr "上下文說明"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Toggle Bookmark"
-msgstr "切æ›è‡ªç”±è§€å¯Ÿæ¨¡å¼"
+msgstr "新增ï¼ç§»é™¤æ›¸ç±¤"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Next Bookmark"
-msgstr "轉到下一個中斷點"
+msgstr "跳至下一個書籤"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Previous Bookmark"
-msgstr "轉到上一個中斷點"
+msgstr "跳至上一個書籤"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Remove All Bookmarks"
-msgstr "删除所有項目"
+msgstr "刪除所有書籤"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function..."
-msgstr "轉到函數…"
+msgstr "跳至函å¼..."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Line..."
-msgstr "å‰å¾€ç¬¬...è¡Œ"
+msgstr "跳至第...行"
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Toggle Breakpoint"
-msgstr "設置中斷點"
+msgstr "設定ï¼ç§»é™¤ä¸­æ–·é»ž"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Breakpoints"
-msgstr "刪除所有中斷點"
+msgstr "移除所有中斷點"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Next Breakpoint"
-msgstr "轉到下一個中斷點"
+msgstr "跳至下一個中斷點"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Previous Breakpoint"
-msgstr "轉到上一個中斷點"
+msgstr "跳至上一個中斷點"
#: editor/plugins/shader_editor_plugin.cpp
msgid ""
"This shader has been modified on on disk.\n"
"What action should be taken?"
msgstr ""
+"ç£ç¢Ÿä¸Šè©²è‘—色器已被修改。\n"
+"該執行什麼?"
#: editor/plugins/shader_editor_plugin.cpp
msgid "Shader"
@@ -7402,45 +7001,43 @@ msgstr "著色器"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "This skeleton has no bones, create some children Bone2D nodes."
-msgstr "此骨架沒有骨骼ç¶å®šï¼Œè«‹å‰µå»ºä¸€äº› Bone2d 骨骼å­ç¯€é»žã€‚"
+msgstr "此骨架未包å«éª¨éª¼ï¼Œè«‹å»ºç«‹ä¸€äº›å­éª¨éª¼ 2D (Bone2D) 節點。"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Create Rest Pose from Bones"
-msgstr "從骨骼創建休æ¯å§¿å‹¢"
+msgstr "自骨骼建立放鬆姿勢"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Set Rest Pose to Bones"
-msgstr "將休æ¯å§¿å‹¢è¨­ç½®ç‚ºéª¨éª¼"
+msgstr "設定放鬆姿勢至骨骼"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
-msgstr "2D骨骼節點"
+msgstr "骨架2D (Sekeleton2D)"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Make Rest Pose (From Bones)"
-msgstr "創建休æ¯å§¿å‹¢ (從骨骼)"
+msgstr "製作放鬆姿勢(自骨骼)"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Set Bones to Rest Pose"
-msgstr "將骨骼設定為éœæ­¢å§¿å‹¢"
+msgstr "設定骨骼為放鬆姿勢"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
-msgstr "創建物ç†éª¨éª¼"
+msgstr "建立物ç†éª¨éª¼"
#: editor/plugins/skeleton_editor_plugin.cpp
-#, fuzzy
msgid "Skeleton"
msgstr "骨架"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical skeleton"
-msgstr "創建物ç†éª¨æž¶"
+msgstr "建立物ç†éª¨æž¶"
#: editor/plugins/skeleton_ik_editor_plugin.cpp
-#, fuzzy
msgid "Play IK"
-msgstr "播放 IK"
+msgstr "執行 IK"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orthogonal"
@@ -7452,15 +7049,15 @@ msgstr "é€è¦–"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
-msgstr ""
+msgstr "已中止變æ›ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "X-Axis Transform."
-msgstr "X軸變æ›ã€‚"
+msgstr "X 軸變æ›ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Y-Axis Transform."
-msgstr "Y軸變æ›ã€‚"
+msgstr "Y 軸變æ›ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Z-Axis Transform."
@@ -7468,7 +7065,7 @@ msgstr "Z 軸變æ›ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Plane Transform."
-msgstr "查看平é¢è½‰æ›ã€‚"
+msgstr "檢視平é¢è½‰æ›ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7476,7 +7073,7 @@ msgstr "縮放: "
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translating: "
-msgstr "翻譯: "
+msgstr "移動: "
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotating %s degrees."
@@ -7484,15 +7081,15 @@ msgstr "旋轉 %s 度。"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Keying is disabled (no key inserted)."
-msgstr ""
+msgstr "éµå·²è¢«ç¦ç”¨ï¼ˆæœªæ’å…¥éµï¼‰ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Animation Key Inserted."
-msgstr ""
+msgstr "å·²æ’入動畫éµã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Pitch"
-msgstr ""
+msgstr "仰角"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw"
@@ -7516,7 +7113,7 @@ msgstr "表é¢è®Šæ›´"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Draw Calls"
-msgstr "繪製調用"
+msgstr "繪製呼å«"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Vertices"
@@ -7528,7 +7125,7 @@ msgstr "俯視圖。"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View."
-msgstr "底視圖。"
+msgstr "仰視圖。"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom"
@@ -7567,35 +7164,32 @@ msgid "Rear"
msgstr "後"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Align Transform with View"
-msgstr "與視圖å°é½Š"
+msgstr "將變æ›èˆ‡è¦–圖å°é½Š"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Align Rotation with View"
-msgstr "將所é¸å…§å®¹èˆ‡è¦–圖å°é½Š"
+msgstr "將旋轉與視圖å°é½Š"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "No parent to instance a child at."
-msgstr ""
+msgstr "ç„¡æ¯ç¯€é»žå¯ç”¨ä¾†å¯¦é«”化å­ç¯€é»žã€‚"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "æ­¤æ“作需è¦å–®å€‹é¸å®šçš„節點。"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Auto Orthogonal Enabled"
-msgstr "正交"
+msgstr "已啟用自動正交"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Lock View Rotation"
-msgstr "鎖定視圖旋轉"
+msgstr "鎖定視角旋轉"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
-msgstr ""
+msgstr "顯示法線"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Wireframe"
@@ -7611,41 +7205,39 @@ msgstr "顯示無陰影"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Environment"
-msgstr "查看環境"
+msgstr "檢視環境"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Gizmos"
-msgstr "查看 Gizmos"
+msgstr "檢視 Gizmo"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Information"
-msgstr "查看資訊"
+msgstr "檢視資訊"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View FPS"
-msgstr "查看FPS"
+msgstr "檢視 FPS"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Half Resolution"
-msgstr "åŠåˆ†è¾¯çŽ‡"
+msgstr "åŠè§£æžåº¦"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Audio Listener"
msgstr "音訊監è½å™¨"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Enable Doppler"
-msgstr "啟用篩é¸"
+msgstr "啟用都åœå‹’效應"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Cinematic Preview"
-msgstr "影片é è¦½"
+msgstr "效果é è¦½"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "使用 GLES2 算圖器時無法使用。"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -7661,7 +7253,7 @@ msgstr "自由視圖 å‰"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Backwards"
-msgstr "自由視圖 åŽ"
+msgstr "自由視圖 後"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Up"
@@ -7673,12 +7265,11 @@ msgstr "自由視圖 下"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Speed Modifier"
-msgstr "自由視圖速度調節"
+msgstr "加速自由視圖速度"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Freelook Slow Modifier"
-msgstr "自由視圖速度調節"
+msgstr "放慢自由視圖速度"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -7688,19 +7279,35 @@ msgstr "視圖旋轉已鎖定"
msgid ""
"Note: The FPS value displayed is the editor's framerate.\n"
"It cannot be used as a reliable indication of in-game performance."
-msgstr "注æ„: 顯示的FPS值是編輯器的幀率。 它ä¸èƒ½ç”¨äºŽè¡¨ç¾éŠæˆ²å…§çš„實際性能"
+msgstr ""
+"注æ„:顯示的 FPS 值時編輯器的畫é¢é€ŸçŽ‡ã€‚\n"
+"無法實際å映為éŠæˆ²ä¸­çš„效能。"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
-msgstr "XFormå°è©±æ¡†"
+msgstr "XForm å°è©±æ¡†"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+"點擊以切æ›è¦–覺狀態。\n"
+"\n"
+"眼é¡åœ–示:Gizmo å¯è¦‹ã€‚\n"
+"眼é¡åœ–示:Gizmo éš±è—。\n"
+"åŠé–‹çœ¼é¡ï¼šGizmo 也å¯ä»¥é€šéŽ Opaque Surface(「X-Ray - Xå…‰ã€ï¼‰å¯è¦‹ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
-msgstr "將節點æ•æ‰åˆ°åœ°é¢"
+msgstr "å¸é™„節點至地é¢"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Couldn't find a solid floor to snap the selection to."
-msgstr ""
+msgstr "找ä¸åˆ°å¯å¸é™„所é¸é …ç›®çš„å …å›ºåœ°æ¿ (Solid Floor)。"
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
@@ -7708,11 +7315,13 @@ msgid ""
"Alt+Drag: Move\n"
"Alt+RMB: Depth list selection"
msgstr ""
+"拖移:旋轉\n"
+"Alt+拖移:移動\n"
+"Alt+å³éµé»žæ“Šï¼šå±•é–‹é¸æ“‡åˆ—表"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Use Local Space"
-msgstr "本地空間模å¼ï¼ˆ%s)"
+msgstr "使用本機空間"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
@@ -7720,7 +7329,7 @@ msgstr "使用å¸é™„"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
-msgstr "底部視圖"
+msgstr "仰視圖"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View"
@@ -7743,25 +7352,24 @@ msgid "Right View"
msgstr "å³è¦–圖"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Switch Perspective/Orthogonal View"
-msgstr "åˆ‡æ› æŠ•å½±/正交 視圖"
+msgstr "切æ›æŠ•å½±æˆ–正交視圖"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Insert Animation Key"
-msgstr "æ’入動畫幀"
+msgstr "æ’入動畫關éµå½±æ ¼"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
-msgstr ""
+msgstr "èšç„¦åŽŸé»ž"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
-msgstr ""
+msgstr "èšç„¦æ‰€é¸"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Toggle Freelook"
-msgstr "切æ›è‡ªç”±è§€å¯Ÿæ¨¡å¼"
+msgstr "é–‹å•Ÿï¼é—œé–‰è‡ªç”±è¦–圖"
#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -7769,41 +7377,40 @@ msgid "Transform"
msgstr "變æ›"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Object to Floor"
-msgstr "å°‡å°è±¡å¸é™„到地æ¿"
+msgstr "å¸é™„物件至地æ¿"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog..."
-msgstr "轉æ›å°è©±æ¡†..。"
+msgstr "變æ›å°è©±æ¡†..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "1 Viewport"
-msgstr "1個視å£"
+msgstr "1 個檢視å€"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports"
-msgstr "2個視å£"
+msgstr "2 個檢視å€"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports (Alt)"
-msgstr "2å€‹è¦–å£ (Alt)"
+msgstr "2 個檢視å€ï¼ˆæ›¿ä»£ï¼‰"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports"
-msgstr "3個視å£"
+msgstr "3 個檢視å€"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports (Alt)"
-msgstr "3å€‹è¦–å£ (Alt)"
+msgstr "3 個檢視å€ï¼ˆæ›¿ä»£ï¼‰"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "4 Viewports"
-msgstr "4個視å£"
+msgstr "4 個檢視å€"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Gizmos"
-msgstr ""
+msgstr "Gizmo"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
@@ -7815,9 +7422,8 @@ msgstr "顯示網格"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Settings..."
-msgstr "設定"
+msgstr "設定..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
@@ -7825,7 +7431,7 @@ msgstr "å¸é™„設定"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate Snap:"
-msgstr "移動å¸é™„"
+msgstr "移動å¸é™„:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Snap (deg.):"
@@ -7833,11 +7439,11 @@ msgstr "旋轉å¸é™„(度):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Snap (%):"
-msgstr "縮放å¸é™„ (%):"
+msgstr "縮放å¸é™„(%):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Viewport Settings"
-msgstr "視å€è¨­å®š"
+msgstr "檢視å€è¨­å®š"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective FOV (deg.):"
@@ -7845,27 +7451,27 @@ msgstr "é€è¦–視角(度):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Near:"
-msgstr "查看Z-Near:"
+msgstr "檢視 Z-Near:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Far:"
-msgstr "查看 Z-Far:"
+msgstr "檢視 Z-Far:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Change"
-msgstr ""
+msgstr "修改變æ›"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate:"
-msgstr ""
+msgstr "移動:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate (deg.):"
-msgstr "旋轉 (度):"
+msgstr "旋轉(度):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale (ratio):"
-msgstr "縮放(比例):"
+msgstr "縮放(比例):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Type"
@@ -7873,186 +7479,163 @@ msgstr "轉æ›é¡žåž‹"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Pre"
-msgstr "å‰"
+msgstr "å‰ç½®"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Post"
-msgstr "發佈"
+msgstr "後置"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Nameless gizmo"
-msgstr "未命åçš„gizmo"
+msgstr "未命åçš„ Gizmo"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create Mesh2D"
-msgstr "創建2D網格"
+msgstr "建立網格 2D (Mesh2D)"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Mesh2D Preview"
-msgstr "創建網格é è¦½"
+msgstr "建立網格 2D (Mesh2D) é è¦½"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon2D"
-msgstr "創建3D多邊形"
+msgstr "建立多邊形 2D (Polygon2D)"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Polygon2D Preview"
-msgstr ""
+msgstr "é è¦½å¤šé‚Šå½¢ 2D (Polygon2D)"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create CollisionPolygon2D"
-msgstr "創建碰撞多邊形"
+msgstr "建立碰撞多邊形 2D (CollisionPolygon2D)"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "CollisionPolygon2D Preview"
-msgstr "創建碰撞多邊形"
+msgstr "碰撞多邊形 2D (CollisionPolygon2D) é è¦½"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create LightOccluder2D"
-msgstr "創建é®å…‰å¤šé‚Šå½¢"
+msgstr "建立é®å…‰ 2D (LightOccluder2D)"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "LightOccluder2D Preview"
-msgstr "創建é®å…‰å¤šé‚Šå½¢"
+msgstr "é®å…‰ 2D (LightOccluder2D) é è¦½"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite is empty!"
-msgstr "Sprite 是空的ï¼"
+msgstr "Sprite 為空ï¼"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Can't convert a sprite using animation frames to mesh."
-msgstr ""
+msgstr "無法使用動畫影格將 Sprite 轉æ›ç‚ºç¶²æ ¼ã€‚"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't replace by mesh."
-msgstr "無效的幾何圖形,無法用網格替æ›ã€‚"
+msgstr "無效的幾何圖形,無法以網格å–代。"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Convert to Mesh2D"
-msgstr "轉æ›ç‚º2D網格"
+msgstr "轉æ›ç‚ºç¶²æ ¼ 2D (Mesh2D)"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Invalid geometry, can't create polygon."
-msgstr "無效的幾何圖形,無法用網格替æ›ã€‚"
+msgstr "無效的幾何圖形,無法建立多邊形。"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Convert to Polygon2D"
-msgstr "轉æ›ç‚º2D網格"
+msgstr "轉æ›ç‚ºå¤šé‚Šå½¢ 2D (Polygon2D)"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Invalid geometry, can't create collision polygon."
-msgstr "無效的幾何圖形,無法用網格替æ›ã€‚"
+msgstr "無效的幾何圖形,無法建立碰撞多邊形。"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create CollisionPolygon2D Sibling"
-msgstr "創建碰撞多邊形"
+msgstr "建立碰撞多邊形 2D (CollisionPolygon2D) åŒç´š"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Invalid geometry, can't create light occluder."
-msgstr "無效的幾何圖形,無法用網格替æ›ã€‚"
+msgstr "無效的幾何圖形,無法建立é®å…‰ã€‚"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create LightOccluder2D Sibling"
-msgstr "創建é®å…‰å¤šé‚Šå½¢"
+msgstr "建立é®å…‰ 2D (LightOccluder2D) åŒç´š"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite"
-msgstr ""
+msgstr "Sprite"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Simplification: "
msgstr "簡化: "
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Shrink (Pixels): "
-msgstr "擴展(åƒç´ ï¼‰: "
+msgstr "收縮(åƒç´ ï¼‰ï¼š "
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Grow (Pixels): "
-msgstr "擴展(åƒç´ ï¼‰: "
+msgstr "擴展(åƒç´ ï¼‰ï¼š "
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Update Preview"
msgstr "æ›´æ–°é è¦½"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Settings:"
msgstr "設定:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "No Frames Selected"
-msgstr "å¹€é¸æ“‡"
+msgstr "未é¸æ“‡å½±æ ¼"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Add %d Frame(s)"
-msgstr "添加幀"
+msgstr "新增 %d 個影格"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Frame"
-msgstr "添加幀"
+msgstr "新增幀"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Unable to load images"
-msgstr "載入資æºå¤±æ•—。"
+msgstr "無法載入圖片"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
-msgstr "錯誤:無法加載幀資æºï¼"
+msgstr "錯誤:無法載入影格資æºï¼"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Resource clipboard is empty or not a texture!"
-msgstr "資æºå‰ªè²¼æ¿ç‚ºç©ºæˆ–ä¸æ˜¯ç´‹ç†ï¼"
+msgstr "資æºå‰ªè²¼ç°¿ç‚ºç©ºæˆ–éžç´‹ç†è²¼åœ–ï¼"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Paste Frame"
-msgstr "粘貼幀"
+msgstr "貼上影格"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Empty"
-msgstr "添加空白幀"
+msgstr "新增空白"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
-msgstr "更改動畫fps"
+msgstr "更改動畫 FPS"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "(empty)"
msgstr "(空)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Move Frame"
-msgstr "粘貼幀"
+msgstr "貼上影格"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Animations:"
msgstr "動畫:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "New Animation"
-msgstr "æ–°å‹•ç•«"
+msgstr "新增動畫"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Speed (FPS):"
@@ -8063,75 +7646,68 @@ msgid "Loop"
msgstr "循環"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Animation Frames:"
msgstr "動畫幀:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Add a Texture from File"
-msgstr "將紋ç†æ·»åŠ åˆ°ç£è²¼é›†ã€‚"
+msgstr "自檔案新增紋ç†"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Frames from a Sprite Sheet"
-msgstr ""
+msgstr "自 Sprite 表新增影格"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Insert Empty (Before)"
-msgstr "æ’入空白幀(之å‰ï¼‰"
+msgstr "在å‰é¢æ’入空白"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Insert Empty (After)"
-msgstr "æ’入空白幀(之åŽï¼‰"
+msgstr "在後é¢æ’入空白"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Move (Before)"
-msgstr "移動(以å‰ï¼‰"
+msgstr "å‘å‰ç§»å‹•"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Move (After)"
-msgstr "移動(之後)"
+msgstr "å‘後移動"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Select Frames"
-msgstr "é¸æ“‡æ¨¡å¼"
+msgstr "é¸æ“‡å½±æ ¼"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Horizontal:"
-msgstr "水平翻轉"
+msgstr "水平:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Vertical:"
-msgstr "頂點"
+msgstr "垂直:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Select/Clear All Frames"
-msgstr "é¸æ“‡å…¨éƒ¨"
+msgstr "é¸æ“‡ï¼æ¸…除所有影格"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Create Frames from Sprite Sheet"
-msgstr "從場景創建"
+msgstr "自 Sprite 表建立幀"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "SpriteFrames"
-msgstr ""
+msgstr "SpriteFrames(Sprite 影格)"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Set Region Rect"
-msgstr "設置紋ç†å€åŸŸ"
+msgstr "設定å€åŸŸçŸ©å½¢ (Region Rect)"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Set Margin"
-msgstr "設置邊è·"
+msgstr "設置外邊è·"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap Mode:"
-msgstr "å¸é™„模å¼:"
+msgstr "å¸é™„模å¼ï¼š"
#: editor/plugins/texture_region_editor_plugin.cpp
#: scene/resources/visual_shader.cpp
@@ -8148,11 +7724,11 @@ msgstr "網格å¸é™„"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
-msgstr "自動剪切"
+msgstr "自動剪è£"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Offset:"
-msgstr ""
+msgstr "å移:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Step:"
@@ -8160,76 +7736,71 @@ msgstr "步驟:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Sep.:"
-msgstr ""
+msgstr "分隔線:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "TextureRegion"
-msgstr ""
+msgstr "ç´‹ç†å€åŸŸ (TextureRegion)"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add All Items"
-msgstr "添加所有項目"
+msgstr "新增所有項目"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add All"
-msgstr "全部添加"
+msgstr "新增全部"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
-msgstr "删除所有項目"
+msgstr "移除所有項目"
#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Remove All"
-msgstr "全部删除"
+msgstr "移除全部"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Theme"
-msgstr "編輯主題…"
+msgstr "編輯主題"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme editing menu."
-msgstr "主題編輯èœå–®ã€‚"
+msgstr "主題編輯é¸å–®ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
-msgstr "添加類項"
+msgstr "新增類別項目"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
-msgstr "删除類項"
+msgstr "刪除類別項目"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Template"
-msgstr ""
+msgstr "建立空白樣æ¿"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Editor Template"
-msgstr ""
+msgstr "建立空白編輯器樣æ¿"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create From Current Editor Theme"
-msgstr "從當å‰ç·¨è¼¯å™¨ä¸»é¡Œæ¨¡æ¿å‰µå»º"
+msgstr "自目å‰ç·¨è¼¯å™¨ä¸»é¡Œå»ºç«‹"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Button"
-msgstr "切æ›è‡ªå‹•æ’­æ”¾"
+msgstr "é–‹å•Ÿï¼é—œé–‰æŒ‰éˆ•"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Disabled Button"
-msgstr "å·²åœç”¨"
+msgstr "å·²åœç”¨çš„按鈕"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Item"
msgstr "é …ç›®"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Disabled Item"
-msgstr "å·²åœç”¨"
+msgstr "å·²åœç”¨çš„é …ç›®"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Check Item"
@@ -8241,29 +7812,27 @@ msgstr "已檢查的項目"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Radio Item"
-msgstr "å–®é¸é …ç›®"
+msgstr "å–®é¸é …"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Checked Radio Item"
-msgstr "é¸ä¸­çš„å–®é¸é …ç›®"
+msgstr "å·²é¸ä¸­çš„å–®é¸é …"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Named Sep."
-msgstr ""
+msgstr "帶å稱的分隔線"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Submenu"
-msgstr ""
+msgstr "å­é¸å–®"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Subitem 1"
-msgstr "é …ç›®"
+msgstr "å­é …ç›® 1"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Subitem 2"
-msgstr "é …ç›®"
+msgstr "å­é …ç›® 2"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Has"
@@ -8274,9 +7843,8 @@ msgid "Many"
msgstr "許多"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Disabled LineEdit"
-msgstr "å·²åœç”¨"
+msgstr "å·²åœç”¨çš„行編輯"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Tab 1"
@@ -8291,13 +7859,12 @@ msgid "Tab 3"
msgstr "標籤 3"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editable Item"
-msgstr "編輯主題…"
+msgstr "å¯ç·¨è¼¯çš„é …ç›®"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Subtree"
-msgstr ""
+msgstr "å­æ¨¹"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Has,Many,Options"
@@ -8305,12 +7872,12 @@ msgstr "有, 許多, é¸é …"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Data Type:"
-msgstr "數據類型:"
+msgstr "資料類型:"
#: editor/plugins/theme_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Icon"
-msgstr "圖標"
+msgstr "圖示"
#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Style"
@@ -8325,27 +7892,25 @@ msgid "Color"
msgstr "é¡è‰²"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme File"
-msgstr "主題"
+msgstr "主題檔"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
-msgstr "擦除é¸ä¸­"
+msgstr "清除所é¸"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Fix Invalid Tiles"
-msgstr "修復無效的ç£è²¼"
+msgstr "修正無效的圖塊"
#: editor/plugins/tile_map_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cut Selection"
-msgstr "切割é¸æ“‡"
+msgstr "剪下所é¸"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint TileMap"
-msgstr "繪製磚塊地圖"
+msgstr "繪製圖塊地圖"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Line Draw"
@@ -8353,111 +7918,103 @@ msgstr "線性繪製"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rectangle Paint"
-msgstr "繪製矩形"
+msgstr "矩形繪製"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Bucket Fill"
-msgstr "油漆桶填充"
+msgstr "油漆桶填滿"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase TileMap"
-msgstr "擦除磚塊地圖"
+msgstr "清除圖塊地圖"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Find Tile"
-msgstr "查找ç£è²¼"
+msgstr "æœå°‹åœ–å¡Š"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Transpose"
-msgstr "轉置"
+msgstr "切æ›è¡Œåˆ—(縱橫)顯示"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Disable Autotile"
-msgstr ""
+msgstr "ç¦ç”¨è‡ªå‹•åœ–å¡Š"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Enable Priority"
-msgstr "編輯ç£è²¼å„ªå…ˆç´š"
+msgstr "啟用優先級"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Filter tiles"
-msgstr "篩é¸æª”案..."
+msgstr "éŽæ¿¾åœ–å¡Š"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Give a TileSet resource to this TileMap to use its tiles."
-msgstr ""
+msgstr "為圖塊地圖設定圖塊集資æºä»¥ä½¿ç”¨å…¶åœ–塊。"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint Tile"
-msgstr "繪製ç£è²¼"
+msgstr "繪製圖塊"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
+"Shift+å·¦éµï¼šç›´ç·šç¹ªè£½\n"
+"Shift+Ctrl+å·¦éµï¼šçŸ©å½¢ç¹ªåœ–"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Pick Tile"
-msgstr "é¸æ“‡ç£è²¼"
+msgstr "é¸æ“‡åœ–å¡Š"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Rotate Left"
msgstr "å‘左旋轉"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Rotate Right"
msgstr "å‘å³æ—‹è½‰"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Flip Horizontally"
msgstr "水平翻轉"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Flip Vertically"
msgstr "垂直翻轉"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Clear Transform"
msgstr "清除變æ›"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Add Texture(s) to TileSet."
-msgstr "將紋ç†æ·»åŠ åˆ°ç£è²¼é›†ã€‚"
+msgstr "新增紋ç†è‡³åœ–塊集。"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove selected Texture from TileSet."
-msgstr "從ç£è²¼é›†ä¸­åˆªé™¤é¸å®šçš„ç´‹ç†ã€‚"
+msgstr "自圖塊集移除所é¸çš„ç´‹ç†ã€‚"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
-msgstr "從場景創建"
+msgstr "自場景建立"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from Scene"
-msgstr "從場景åˆä½µ"
+msgstr "自場景åˆä½µ"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "New Single Tile"
-msgstr ""
+msgstr "新增單一圖塊"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "New Autotile"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "新增自動圖塊"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "New Atlas"
-msgstr "新建 %s"
+msgstr "新增åˆé›†"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Next Coordinate"
@@ -8465,188 +8022,172 @@ msgstr "下一個座標"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Select the next shape, subtile, or Tile."
-msgstr "é¸æ“‡ä¸‹ä¸€å€‹å½¢ç‹€ã€å­ç£è²¼æˆ–ç£è²¼ã€‚"
+msgstr "é¸æ“‡ä¸‹ä¸€å€‹å½¢ç‹€ã€å­åœ–å¡Šã€æˆ–圖塊。"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Previous Coordinate"
msgstr "上一個座標"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Select the previous shape, subtile, or Tile."
-msgstr "é¸æ“‡ä¸Šä¸€å€‹å½¢ç‹€ã€å­ç£è²¼æˆ–ç£è²¼ã€‚"
+msgstr "é¸æ“‡å‰ä¸€å€‹å½¢ç‹€ã€å­åœ–å¡Šã€æˆ–圖塊。"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Region"
-msgstr "旋轉模å¼"
+msgstr "å€åŸŸ"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Collision"
-msgstr "æ’值模å¼"
+msgstr "碰撞"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Occlusion"
-msgstr "編輯é®æ“‹å¤šé‚Šå½¢"
+msgstr "é®æ“‹"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Navigation"
-msgstr "創建導航網格"
+msgstr "導航"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Bitmask"
-msgstr "旋轉模å¼"
+msgstr "é®ç½©"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Priority"
-msgstr "導出模å¼:"
+msgstr "優先級"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Z Index"
-msgstr "平移模å¼"
+msgstr "Z 索引"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Region Mode"
-msgstr "旋轉模å¼"
+msgstr "å€åŸŸæ¨¡å¼"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Collision Mode"
-msgstr "æ’值模å¼"
+msgstr "碰撞模å¼"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Occlusion Mode"
-msgstr "編輯é®æ“‹å¤šé‚Šå½¢"
+msgstr "é®æ“‹æ¨¡å¼"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Navigation Mode"
-msgstr "創建導航網格"
+msgstr "導航模å¼"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Bitmask Mode"
-msgstr "旋轉模å¼"
+msgstr "優先模å¼"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Priority Mode"
-msgstr "導出模å¼:"
+msgstr "優先模å¼"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Icon Mode"
-msgstr "平移模å¼"
+msgstr "圖示模å¼"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Z Index Mode"
-msgstr "平移模å¼"
+msgstr "Z 索引模å¼"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Copy bitmask."
-msgstr "複製ä½æŽ©ç¢¼ã€‚"
+msgstr "複製ä½å…ƒé®ç½©ã€‚"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Paste bitmask."
-msgstr "貼上åƒæ•¸"
+msgstr "貼上ä½å…ƒé®ç½©ã€‚"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Erase bitmask."
-msgstr "擦除ä½æŽ©ç¢¼."
+msgstr "清除ä½å…ƒé®ç½©ã€‚"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create a new rectangle."
-msgstr "創建新矩形。"
+msgstr "建立新矩形。"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create a new polygon."
-msgstr "創建新多邊形。"
+msgstr "建立新多邊形。"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Keep polygon inside region Rect."
-msgstr "將多邊形ä¿ç•™åœ¨å€åŸŸå…§ã€‚"
+msgstr "ä¿æŒå¤šé‚Šå½¢åœ¨å€åŸŸçŸ©å½¢ (Rect) 內。"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Enable snap and show grid (configurable via the Inspector)."
-msgstr "啟用å¸é™„和顯示網格 (å¯é€šéŽå±¬æ€§é¢æ¿é…ç½®)。"
+msgstr "啟用å¸é™„與顯示網格(å¯é€šéŽå±¬æ€§é¢æ¿è¨­å®šï¼‰ã€‚"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Display Tile Names (Hold Alt Key)"
-msgstr "顯示ç£è²¼å稱 (æŒ‰ä½ ALT éµ)"
+msgstr "顯示圖塊åç¨±ï¼ˆæŒ‰ä½ Alt éµï¼‰"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
"Add or select a texture on the left panel to edit the tiles bound to it."
-msgstr ""
+msgstr "在左å´é¢æ¿æ–°å¢žæˆ–é¸æ“‡ç´‹ç†ä»¥ç·¨è¼¯èˆ‡å…¶ç¶å®šçš„圖塊。"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove selected texture? This will remove all tiles which use it."
-msgstr "刪除é¸å®šçš„ç´‹ç†ï¼Ÿé€™å°‡åˆªé™¤ä½¿ç”¨å®ƒçš„所有ç£è²¼ã€‚"
+msgstr "是å¦åˆªé™¤æ‰€é¸ç´‹ç†ï¼Ÿå°‡ä¸€ä½µç§»é™¤æ‰€æœ‰ä½¿ç”¨å…¶ä¹‹åœ–塊。"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "You haven't selected a texture to remove."
-msgstr "您尚未é¸æ“‡è¦åˆªé™¤çš„ç´‹ç†ã€‚"
+msgstr "尚未é¸æ“‡æ¬²ç§»é™¤ä¹‹ç´‹ç†ã€‚"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from scene? This will overwrite all current tiles."
-msgstr "從場景創建?這將覆蓋所有當å‰ç£è²¼ã€‚"
+msgstr "è¦è‡ªå ´æ™¯å»ºç«‹å—Žï¼Ÿå°‡è¤‡å¯«ç›®å‰çš„圖塊。"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from scene?"
-msgstr "確定åˆä½µå ´æ™¯ï¼Ÿ"
+msgstr "è¦è‡ªå ´æ™¯åˆä½µå—Žï¼Ÿ"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove Texture"
-msgstr "刪除紋ç†"
+msgstr "移除紋ç†"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "%s file(s) were not added because was already on the list."
-msgstr ""
+msgstr "由於有 %s 個檔案已在列表上,未被新增。"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
"Drag handles to edit Rect.\n"
"Click on another Tile to edit it."
msgstr ""
+"拖移手柄以編輯矩形 (Rect)。\n"
+"點擊其他圖塊以進行編輯。"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Delete selected Rect."
-msgstr "删除所é¸çš„Rect。"
+msgstr "删除所é¸çš„矩形 (Rect)。"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid ""
"Select current edited sub-tile.\n"
"Click on another Tile to edit it."
-msgstr "新增資料夾"
+msgstr ""
+"é¸æ“‡ç›®å‰ç·¨è¼¯çš„å­åœ–塊。\n"
+"點擊å¦ä¸€å€‹åœ–塊以進行編輯。"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete polygon."
msgstr "刪除多邊形。"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid ""
"LMB: Set bit on.\n"
"RMB: Set bit off.\n"
"Shift+LMB: Set wildcard bit.\n"
"Click on another Tile to edit it."
-msgstr "新增資料夾"
+msgstr ""
+"å·¦éµé»žæ“Šï¼šé–‹å•Ÿä½å…ƒã€‚\n"
+"å³éµé»žæ“Šï¼šé—œé–‰ä½å…ƒã€‚\n"
+"Shift+å·¦éµé»žæ“Šï¼šè¨­å®šé€šé…ä½å…ƒã€‚\n"
+"點擊å¦ä¸€å€‹åœ–塊以進行編輯。"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -8654,59 +8195,60 @@ msgid ""
"bindings.\n"
"Click on another Tile to edit it."
msgstr ""
+"é¸æ“‡æ¬²ä½œç‚ºåœ–示使用的å­åœ–塊,亦將用於無效的自動圖塊ç¶å®šä¸Šã€‚\n"
+"點擊å¦ä¸€å€‹åœ–塊以進行編輯。"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
"Select sub-tile to change its priority.\n"
"Click on another Tile to edit it."
msgstr ""
+"é¸æ“‡å­åœ–塊以更改其優先級。\n"
+"點擊å¦ä¸€å€‹åœ–塊以進行編輯。"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid ""
"Select sub-tile to change its z index.\n"
"Click on another Tile to edit it."
-msgstr "新增資料夾"
+msgstr ""
+"é¸æ“‡å­åœ–塊以修改其 Z 索引。\n"
+"點擊å¦ä¸€å€‹åœ–塊以進行編輯。"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Set Tile Region"
-msgstr "設置ç£è²¼å€åŸŸ"
+msgstr "é¸æ“‡åœ–å¡Šå€åŸŸ"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create Tile"
-msgstr "創建ç£è²¼"
+msgstr "建立圖塊"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Set Tile Icon"
-msgstr "設定ç£è²¼åœ–標"
+msgstr "設定ç£è²¼åœ–示"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Edit Tile Bitmask"
-msgstr "編輯ç£è²¼ä½æŽ©ç¢¼"
+msgstr "編輯圖塊ä½å…ƒé®ç½©"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Collision Polygon"
msgstr "編輯碰撞多邊形"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Occlusion Polygon"
msgstr "編輯é®æ“‹å¤šé‚Šå½¢"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Navigation Polygon"
-msgstr "新增資料夾"
+msgstr "編輯導航多邊形"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Paste Tile Bitmask"
-msgstr "粘貼ç£è²¼ä½æŽ©ç¢¼"
+msgstr "貼上圖塊ä½å…ƒé®ç½©"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Clear Tile Bitmask"
-msgstr "清除ç£è²¼ä½æŽ©ç¢¼"
+msgstr "清除圖塊ä½å…ƒé®ç½©"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Make Polygon Concave"
@@ -8718,12 +8260,11 @@ msgstr "使多邊形凸起"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Tile"
-msgstr "移除ç£è²¼"
+msgstr "移除圖塊"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove Collision Polygon"
-msgstr "刪除碰撞多邊形"
+msgstr "移除碰撞多邊形"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Occlusion Polygon"
@@ -8735,255 +8276,227 @@ msgstr "刪除導航多邊形"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Edit Tile Priority"
-msgstr "編輯ç£è²¼å„ªå…ˆç´š"
+msgstr "編輯圖塊優先級"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Edit Tile Z Index"
-msgstr ""
+msgstr "編輯圖塊 Z 索引"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Make Convex"
-msgstr "使多邊形凸起"
+msgstr "製作凸多邊形"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Make Concave"
-msgstr "使多邊形塌陷"
+msgstr "製作凹多邊形"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create Collision Polygon"
-msgstr "創建碰撞多邊形"
+msgstr "建立碰撞多邊形"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create Occlusion Polygon"
-msgstr "創建é®æ“‹å¤šé‚Šå½¢"
+msgstr "建立é®æ“‹å¤šé‚Šå½¢"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "This property can't be changed."
-msgstr "無法更改此屬性。"
+msgstr "該屬性無法修改。"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "TileSet"
-msgstr ""
+msgstr "圖塊集"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "No VCS addons are available."
-msgstr ""
+msgstr "ç„¡å¯ç”¨çš„版本控制 (VCS) 擴充功能。"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Error"
-msgstr ""
+msgstr "錯誤"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "No commit message was provided"
-msgstr ""
+msgstr "未æä¾›æ交訊æ¯"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "No files added to stage"
-msgstr ""
+msgstr "é å­˜å€ç„¡æª”案"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit"
-msgstr "社å€"
+msgstr "æ交"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "VCS Addon is not initialized"
-msgstr ""
+msgstr "VCS 擴充功能尚未åˆå§‹åŒ–"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Version Control System"
-msgstr ""
+msgstr "版本控制系統 (VCS)"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Initialize"
-msgstr "首字æ¯å¤§å¯«"
+msgstr "åˆå§‹åŒ–"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Staging area"
-msgstr ""
+msgstr "é å­˜å€"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Detect new changes"
-msgstr "創建新矩形。"
+msgstr "åµæ¸¬æ–°æ”¹å‹•"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Changes"
-msgstr "æ›´æ›"
+msgstr "改動"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Modified"
-msgstr ""
+msgstr "已修改"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Renamed"
-msgstr "é‡å‘½å"
+msgstr "é‡æ–°å‘½å"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Deleted"
-msgstr "刪除"
+msgstr "已刪除"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Typechange"
-msgstr "æ›´æ›"
+msgstr "æ ¼å¼æ›´æ”¹"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Stage Selected"
-msgstr "縮放所é¸"
+msgstr "é å­˜æ‰€é¸"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Stage All"
-msgstr "全部ä¿å­˜"
+msgstr "é å­˜å…¨éƒ¨"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Add a commit message"
-msgstr ""
+msgstr "新增一個æ交訊æ¯"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit Changes"
-msgstr "åŒæ­¥è…³æœ¬çš„變更"
+msgstr "æ交改動"
#: editor/plugins/version_control_editor_plugin.cpp
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
-msgstr ""
+msgstr "狀態"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "View file diffs before committing them to the latest version"
-msgstr ""
+msgstr "在æ交至最新版本å‰æª¢è¦–檔案的差異"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "No file diff is active"
-msgstr ""
+msgstr "無有效的檔案差異"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Detect changes in file diff"
-msgstr ""
+msgstr "在檔案差異中åµæ¸¬æ”¹å‹•"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(GLES3 only)"
-msgstr ""
+msgstr "ï¼ˆåƒ…é™ GLES3)"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Add Output"
-msgstr "添加輸入"
+msgstr "新增輸出"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar"
-msgstr "縮放:"
+msgstr "ç´”é‡ Scalar"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Vector"
-msgstr "屬性é¢æ¿"
+msgstr "å‘é‡ Vector"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Boolean"
-msgstr ""
+msgstr "布林 Boolean"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Sampler"
-msgstr ""
+msgstr "採樣 Sampler"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Add input port"
-msgstr "添加輸入"
+msgstr "新增輸入埠å£"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add output port"
-msgstr ""
+msgstr "新增輸出埠å£"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Change input port type"
-msgstr "更改é è¨­é¡žåž‹"
+msgstr "修改輸入埠å£é¡žåž‹"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Change output port type"
-msgstr "更改é è¨­é¡žåž‹"
+msgstr "修改輸出埠å£é¡žåž‹"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Change input port name"
-msgstr "更改動畫å稱:"
+msgstr "修改輸入埠å£å稱"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Change output port name"
-msgstr ""
+msgstr "修改輸出埠å£å稱"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Remove input port"
-msgstr "刪除點"
+msgstr "移除輸入埠å£"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Remove output port"
-msgstr "刪除點"
+msgstr "移除輸出埠å£"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Set expression"
-msgstr "設置ç£è²¼å€åŸŸ"
+msgstr "設定表示å¼"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Resize VisualShader node"
-msgstr "視覺化著色器"
+msgstr "調整視覺著色器 (VisualShader) 節點大å°"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set Uniform Name"
-msgstr "設置統一å稱"
+msgstr "設定å‡å‹»å稱"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set Input Default Port"
-msgstr "設置輸入é è¨­ç«¯å£"
+msgstr "設定輸入é è¨­åŸ å£"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node to Visual Shader"
-msgstr "將節點添加到å¯è¦–化著色器"
+msgstr "將節點新增至視覺著色器"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
-msgstr "複製節點"
+msgstr "é‡è¤‡ç¯€é»ž"
#: editor/plugins/visual_shader_editor_plugin.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste Nodes"
-msgstr ""
+msgstr "貼上節點"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Delete Nodes"
-msgstr "刪除"
+msgstr "刪除節點"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Input Type Changed"
-msgstr "視覺著色器輸入類型已更改"
+msgstr "已修改視覺著色器輸入類型"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "頂點"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Fragment"
msgstr "片段"
@@ -8992,380 +8505,368 @@ msgid "Light"
msgstr "燈光"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Show resulted shader code."
-msgstr "創建節點"
+msgstr "顯示產生的著色器程å¼ç¢¼ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Create Shader Node"
-msgstr "創建節點"
+msgstr "建立著色器節點"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color function."
-msgstr "轉到函數"
+msgstr "é¡è‰²å‡½å¼ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color operator."
-msgstr ""
+msgstr "色彩é‹ç®—å­ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Grayscale function."
-msgstr "建立函å¼"
+msgstr "ç°éšŽå‡½å¼ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts HSV vector to RGB equivalent."
-msgstr ""
+msgstr "å°‡ HSV å‘é‡è½‰ç‚ºåŒç­‰ä¹‹ RGB。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts RGB vector to HSV equivalent."
-msgstr ""
+msgstr "å°‡ RGB å‘é‡è½‰ç‚ºåŒç­‰è‡³ HSV。"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Sepia function."
-msgstr "建立函å¼"
+msgstr "æ·±è¤å‡½å¼ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Burn operator."
-msgstr ""
+msgstr "加深 (Burn) é‹ç®—å­ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Darken operator."
-msgstr ""
+msgstr "暗化é‹ç®—å­ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Difference operator."
-msgstr "僅差異"
+msgstr "差異é‹ç®—å­ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Dodge operator."
-msgstr ""
+msgstr "加亮 (Dodge) é‹ç®—å­ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "HardLight operator."
-msgstr "縮放(比例):"
+msgstr "å¼·å…‰ (HardLight) é‹ç®—å­ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Lighten operator."
-msgstr ""
+msgstr "亮化é‹ç®—å­ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Overlay operator."
-msgstr ""
+msgstr "疊加é‹ç®—å­ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Screen operator."
-msgstr ""
+msgstr "濾色é‹ç®—å­ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "SoftLight operator."
-msgstr ""
+msgstr "柔光é‹ç®—å­ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color constant."
-msgstr "固定"
+msgstr "色彩常數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color uniform."
-msgstr "清除變æ›"
+msgstr "色彩å‡å‹»ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the boolean result of the %s comparison between two parameters."
-msgstr ""
+msgstr "回傳兩個åƒæ•¸é–“ %s 比較的布林çµæžœã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Equal (==)"
-msgstr ""
+msgstr "等於 (==)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Greater Than (>)"
-msgstr ""
+msgstr "大於 (>)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Greater Than or Equal (>=)"
-msgstr ""
+msgstr "大於等於 (>=)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns an associated vector if the provided scalars are equal, greater or "
"less."
-msgstr ""
+msgstr "è‹¥æ供的純é‡ç›¸ç­‰ã€å¤§æ–¼ã€æˆ–å°æ–¼ï¼Œå‰‡å›žå‚³ç›¸é—œçš„å‘é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns the boolean result of the comparison between INF and a scalar "
"parameter."
-msgstr ""
+msgstr "回傳在 INF 與純é‡åƒæ•¸é–“比較的布林çµæžœã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns the boolean result of the comparison between NaN and a scalar "
"parameter."
-msgstr ""
+msgstr "回傳在 NaN 與純é‡åƒæ•¸é–“比較的布林çµæžœã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Less Than (<)"
-msgstr ""
+msgstr "å°æ–¼ (<)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Less Than or Equal (<=)"
-msgstr ""
+msgstr "å°æ–¼ç­‰æ–¼ (<=)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Not Equal (!=)"
-msgstr ""
+msgstr "ä¸ç­‰æ–¼ (!=)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns an associated vector if the provided boolean value is true or false."
-msgstr ""
+msgstr "è‹¥æ供的布林值為 true 或 false,則回傳相關的å‘é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns an associated scalar if the provided boolean value is true or false."
-msgstr ""
+msgstr "è‹¥æ供的布林值為 true 或 false,則回傳相關的純é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the boolean result of the comparison between two parameters."
-msgstr ""
+msgstr "回傳兩個åƒæ•¸é–“比較的布林çµæžœã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns the boolean result of the comparison between INF (or NaN) and a "
"scalar parameter."
-msgstr ""
+msgstr "回傳 INF(或 NaN)與一個純é‡é–“比較的布林çµæžœã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Boolean constant."
-msgstr ""
+msgstr "布林常數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Boolean uniform."
-msgstr ""
+msgstr "布林å‡å‹»ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for all shader modes."
-msgstr ""
+msgstr "所有的著色器模å¼çš„「%sã€è¼¸å…¥åƒæ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Input parameter."
-msgstr "å¸é™„到父級節點"
+msgstr "輸入åƒæ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for vertex and fragment shader modes."
-msgstr ""
+msgstr "頂點與片段模å¼çš„「%sã€è¼¸å…¥åƒæ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for fragment and light shader modes."
-msgstr ""
+msgstr "片段與燈光著色器模å¼çš„「%sã€è¼¸å…¥åƒæ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for fragment shader mode."
-msgstr ""
+msgstr "片段著色器模å¼çš„「%sã€è¼¸å…¥åƒæ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for light shader mode."
-msgstr ""
+msgstr "燈光著色器模å¼çš„「%sã€è¼¸å…¥åƒæ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for vertex shader mode."
-msgstr ""
+msgstr "頂點著色器的「%sã€è¼¸å…¥åƒæ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for vertex and fragment shader mode."
-msgstr ""
+msgstr "頂點或片段著色器的「%sã€è¼¸å…¥åƒæ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar function."
-msgstr "縮放所é¸"
+msgstr "ç´”é‡å‡½å¼ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar operator."
-msgstr "縮放(比例):"
+msgstr "ç´”é‡é‹ç®—å­ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "E constant (2.718282). Represents the base of the natural logarithm."
-msgstr ""
+msgstr "E 常數(2.718282)。表示自然å°æ•¸çš„底數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Epsilon constant (0.00001). Smallest possible scalar number."
-msgstr ""
+msgstr "ε (eplison) 常數 (0.00001)。最å°å¯ç”¨çš„ç´”é‡æ•¸å­—。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Phi constant (1.618034). Golden ratio."
-msgstr ""
+msgstr "Φ(Phi) 常數 (1.618034)。黃金比例。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Pi/4 constant (0.785398) or 45 degrees."
-msgstr ""
+msgstr "π (Pi)/4 常數 (0.785398) 或 45 度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Pi/2 constant (1.570796) or 90 degrees."
-msgstr ""
+msgstr "π (Pi)/2 常數 (1.570796) 或 95 度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Pi constant (3.141593) or 180 degrees."
-msgstr ""
+msgstr "π (Pi) 常數 (3.141593) 或 180 度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Tau constant (6.283185) or 360 degrees."
-msgstr ""
+msgstr "τ 常數 (6.283185) 或 360 度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Sqrt2 constant (1.414214). Square root of 2."
-msgstr ""
+msgstr "Sqrt2 常數 (1.414214)。2 的平方根。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the absolute value of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„絕å°å€¼ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-cosine of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„å餘弦值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic cosine of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„å雙曲餘弦值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-sine of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„å正弦值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic sine of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„å雙曲正弦值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-tangent of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„å正切值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-tangent of the parameters."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„å正切值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic tangent of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„å雙曲正切值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Finds the nearest integer that is greater than or equal to the parameter."
-msgstr ""
+msgstr "尋找大於或等於該åƒæ•¸æœ€è¿‘的整數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Constrains a value to lie between two further values."
-msgstr ""
+msgstr "將值é™åˆ¶æ¬²å…©å€‹å€¼ä¹‹é–“。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the cosine of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„餘弦值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the hyperbolic cosine of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„雙曲餘弦值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in radians to degrees."
-msgstr ""
+msgstr "將弧度轉æ›ç‚ºåº¦ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-e Exponential."
-msgstr ""
+msgstr "e 為底數的指數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-2 Exponential."
-msgstr ""
+msgstr "2 為底數的指數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest integer less than or equal to the parameter."
-msgstr ""
+msgstr "尋找å°æ–¼æˆ–等於åƒæ•¸æœ€è¿‘的整數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Computes the fractional part of the argument."
-msgstr ""
+msgstr "計算引數的å°æ•¸éƒ¨åˆ†ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse of the square root of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„平方根的倒數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Natural logarithm."
-msgstr ""
+msgstr "自然å°æ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-2 logarithm."
-msgstr ""
+msgstr "2 為底數的å°æ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the greater of two values."
-msgstr ""
+msgstr "回傳兩個值中較大的值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the lesser of two values."
-msgstr ""
+msgstr "回傳兩個值中較å°çš„值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Linear interpolation between two scalars."
-msgstr ""
+msgstr "在兩個純é‡é–“åšç·šæ€§æ’值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the opposite value of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„相å值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 - scalar"
-msgstr ""
+msgstr "1.0 - ç´”é‡"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns the value of the first parameter raised to the power of the second."
-msgstr ""
+msgstr "回傳第一個åƒæ•¸çš„第二個åƒæ•¸å†ªæ¬¡çš„值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in degrees to radians."
-msgstr ""
+msgstr "將度數轉æ›ç‚ºå¼§åº¦ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 / scalar"
-msgstr ""
+msgstr "1.0 / ç´”é‡"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest integer to the parameter."
-msgstr ""
+msgstr "尋找åƒæ•¸æœ€è¿‘的整數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest even integer to the parameter."
-msgstr ""
+msgstr "尋找åƒæ•¸æœ€è¿‘的整數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Clamps the value between 0.0 and 1.0."
-msgstr ""
+msgstr "將數值é™åˆ¶åœ¨ 0.0 與 1.0 之間。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Extracts the sign of the parameter."
-msgstr ""
+msgstr "抽å–åƒæ•¸çš„號(正號ï¼è² è™Ÿï¼‰ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the sine of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„正弦值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the hyperbolic sine of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„雙曲正弦值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the square root of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„平方根。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9375,6 +8876,10 @@ msgid ""
"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
"using Hermite polynomials."
msgstr ""
+"SmoothStep 函å¼( scalar(edge0),scalar(edge1),scalar(x) )。\n"
+"\n"
+"若「xã€å°æ–¼ã€Œedge0ã€å‰‡å›žå‚³ 0.0,若 x 大於「edge1ã€å‰‡å›žå‚³ 1.0。其餘值則回傳在 "
+"0.0 與 1.0 之間使用厄米多項å¼é€²è¡Œæ’值的çµæžœã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9382,72 +8887,73 @@ msgid ""
"\n"
"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
msgstr ""
+"Step 函å¼( scalar(edge), scalar(x) )。\n"
+"\n"
+"若「xã€å°æ–¼ã€Œedgeã€å‰‡å›žå‚³ 0.0,å¦å‰‡å›žå‚³ 1.0。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the tangent of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„正切值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the hyperbolic tangent of the parameter."
-msgstr ""
+msgstr "回傳åƒæ•¸çš„雙曲正切值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the truncated value of the parameter."
-msgstr ""
+msgstr "尋找åƒæ•¸çš„截斷值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Adds scalar to scalar."
-msgstr ""
+msgstr "將純é‡æ–°å¢žè‡³ç´”é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Divides scalar by scalar."
-msgstr ""
+msgstr "以純é‡é™¤ä»¥ç´”é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Multiplies scalar by scalar."
-msgstr ""
+msgstr "以純é‡ä¹˜ä»¥ç´”é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the remainder of the two scalars."
-msgstr ""
+msgstr "回傳兩個純é‡ç›¸é™¤çš„餘數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Subtracts scalar from scalar."
-msgstr ""
+msgstr "以純é‡æ¸›åŽ»ç´”é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Scalar constant."
-msgstr ""
+msgstr "ç´”é‡å¸¸æ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar uniform."
-msgstr "清除變æ›"
+msgstr "ç´”é‡å‡å‹»ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Perform the cubic texture lookup."
-msgstr ""
+msgstr "進行立方體紋ç†æœå°‹ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Perform the texture lookup."
-msgstr ""
+msgstr "進行紋ç†æœå°‹ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Cubic texture uniform lookup."
-msgstr ""
+msgstr "立方體紋ç†å‡å‹»æœå°‹ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "2D texture uniform lookup."
-msgstr ""
+msgstr "2D ç´‹ç†å‡å‹»æœå°‹ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "2D texture uniform lookup with triplanar."
-msgstr ""
+msgstr "以三平é¢é€²è¡Œ 2D ç´‹ç†å‡å‹»å°‹æ‰¾ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform function."
-msgstr "轉æ›å°è©±æ¡†..。"
+msgstr "轉æ›å‡½å¼ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9459,73 +8965,75 @@ msgid ""
"whose number of rows is the number of components in 'c' and whose number of "
"columns is the number of components in 'r'."
msgstr ""
+"計算一å°å‘é‡çš„外ç©ã€‚\n"
+"\n"
+"OuterProduct 將第一個åƒæ•¸ã€Œcã€è¦–為列å‘é‡ï¼ˆç”±ä¸€å€‹åˆ—的矩陣),第二個åƒæ•¸ã€Œrã€è¦–"
+"為行å‘é‡ï¼ˆç”±ä¸€å€‹è¡Œçš„矩陣),並ä¾ç·šæ€§ä»£æ•¸çŸ©é™£ä¹˜ä»¥ã€Œc * rã€ï¼Œç”¢ç”Ÿä¸€å€‹çŸ©é™£å…¶è¡Œæ•¸"
+"為「cã€ä¸­çš„組件,列數為「rã€çš„組件。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Composes transform from four vectors."
-msgstr ""
+msgstr "由四個å‘é‡æ§‹æˆè®Šæ›ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Decomposes transform to four vectors."
-msgstr ""
+msgstr "由四個å‘é‡åˆ†è§£è®Šæ›ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the determinant of a transform."
-msgstr ""
+msgstr "計算變æ›çš„行列å¼ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the inverse of a transform."
-msgstr ""
+msgstr "計算變æ›çš„逆矩陣。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the transpose of a transform."
-msgstr ""
+msgstr "計算一個變æ›çš„轉置。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Multiplies transform by transform."
-msgstr ""
+msgstr "變æ›ä¹˜ä»¥è®Šæ›ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Multiplies vector by transform."
-msgstr ""
+msgstr "å‘é‡ä¹˜ä»¥è®Šæ›ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform constant."
-msgstr "新增資料夾"
+msgstr "變æ›å¸¸æ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform uniform."
-msgstr "轉æ›å°è©±æ¡†..。"
+msgstr "變æ›å‡å‹»ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Vector function."
-msgstr "轉到函數…"
+msgstr "å‘é‡å‡½å¼ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector operator."
-msgstr ""
+msgstr "å‘é‡é‹ç®—å­ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Composes vector from three scalars."
-msgstr ""
+msgstr "由三個純é‡çµ„æˆå‘é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Decomposes vector to three scalars."
-msgstr ""
+msgstr "將一個å‘é‡æ‹†è§£ç‚ºä¸‰å€‹ç´”é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the cross product of two vectors."
-msgstr ""
+msgstr "計算兩個å‘é‡çš„外ç©ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the distance between two points."
-msgstr ""
+msgstr "回傳兩個點間的è·é›¢ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the dot product of two vectors."
-msgstr ""
+msgstr "計算兩個å‘é‡çš„å…§ç©ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9534,40 +9042,43 @@ msgid ""
"incident vector, and Nref, the reference vector. If the dot product of I and "
"Nref is smaller than zero the return value is N. Otherwise -N is returned."
msgstr ""
+"回傳一個與åƒç…§å‘é‡æŒ‡å‘相åŒæ–¹å‘çš„å‘é‡ã€‚該函å¼ç”±ä¸‰å€‹å‘é‡åƒæ•¸ï¼šN,方å‘å‘é‡ï¼›I,"
+"入射å‘é‡ï¼Œä»¥åŠ Nref,åƒç…§å‘é‡ã€‚è‹¥ I 與 Nref çš„å…§ç©å°æ–¼ 0,則回傳值為 N。å¦å‰‡"
+"將回傳 -N。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the length of a vector."
-msgstr ""
+msgstr "計算å‘é‡çš„長度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Linear interpolation between two vectors."
-msgstr ""
+msgstr "在兩個å‘é‡é–“åšç·šæ€§æ’值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Linear interpolation between two vectors using scalar."
-msgstr ""
+msgstr "使用純é‡åœ¨å…©å€‹å‘é‡é–“åšç·šæ€§æ’值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the normalize product of vector."
-msgstr ""
+msgstr "計算å‘é‡çš„æ­£è¦åŒ–ç©ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 - vector"
-msgstr ""
+msgstr "1.0 - å‘é‡"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 / vector"
-msgstr ""
+msgstr "1.0 / å‘é‡"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns the vector that points in the direction of reflection ( a : incident "
"vector, b : normal vector )."
-msgstr ""
+msgstr "回傳指å‘åå°„æ–¹å‘çš„å‘é‡ï¼ˆa:入射å‘é‡ï¼Œb:法å‘é‡ï¼‰ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the vector that points in the direction of refraction."
-msgstr ""
+msgstr "回傳指å‘折射方å‘çš„å‘é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9577,6 +9088,10 @@ msgid ""
"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
"using Hermite polynomials."
msgstr ""
+"SmoothStep 函å¼( vector(edge0), vector(edge1), vector(x) ).\n"
+"\n"
+"若「xã€å°æ–¼ã€Œedge0ã€å‰‡å›žå‚³ 0.0,若「xã€å¤§æ–¼ã€Œedge1ã€å‰‡å›žå‚³ 1.0。其餘值則回傳"
+"在 0.0 與 1.0 之間使用厄米多項å¼é€²è¡Œæ’值的çµæžœã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9586,6 +9101,10 @@ msgid ""
"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
"using Hermite polynomials."
msgstr ""
+"SmoothStep 函å¼( scalar(edge0), scalar(edge1), vector(x) ).\n"
+"\n"
+"若「xã€å°æ–¼ã€Œedge0ã€å‰‡å›žå‚³ 0.0,若「xã€å¤§æ–¼ã€Œedge1ã€å‰‡å›žå‚³ 1.0。其餘值則回傳"
+"在 0.0 與 1.0 之間使用厄米多項å¼é€²è¡Œæ’值的çµæžœã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9593,6 +9112,9 @@ msgid ""
"\n"
"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
msgstr ""
+"Step 函å¼( vector(edge), vector(x) ).\n"
+"\n"
+"若「xã€å°æ–¼ã€Œedgeã€å‰‡å›žå‚³ 0.0,å¦å‰‡å›žå‚³ 1.0。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9600,34 +9122,37 @@ msgid ""
"\n"
"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
msgstr ""
+"Step 函å¼( scalar(edge), vector(x) ).\n"
+"\n"
+"若「xã€å°æ–¼ã€Œedgeã€å‰‡å›žå‚³ 1.0,å¦å‰‡å›žå‚³ 1.0。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Adds vector to vector."
-msgstr ""
+msgstr "å°‡å‘é‡åŠ ä¸Šå‘é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Divides vector by vector."
-msgstr ""
+msgstr "以å‘é‡é™¤ä»¥å‘é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Multiplies vector by vector."
-msgstr ""
+msgstr "以å‘é‡ä¹˜ä»¥å‘é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the remainder of the two vectors."
-msgstr ""
+msgstr "回傳兩個å‘é‡ç›¸é™¤çš„餘數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Subtracts vector from vector."
-msgstr ""
+msgstr "å°‡å‘é‡æ¸›åŽ»å‘é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector constant."
-msgstr ""
+msgstr "å‘é‡å¸¸æ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector uniform."
-msgstr ""
+msgstr "å‘é‡å‡å‹»ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9635,12 +9160,14 @@ msgid ""
"output ports. This is a direct injection of code into the vertex/fragment/"
"light function, do not use it to write the function declarations inside."
msgstr ""
+"自定 Godot 著色器語言表示å¼ï¼Œä½¿ç”¨è‡ªå®šæ•¸é‡çš„輸入與輸出埠å£ã€‚這是通éŽç›´æŽ¥æ’å‘é ‚"
+"點ï¼ç‰‡æ®µï¼å…‰ç…§å‡½å¼æ’入程å¼ç¢¼ä¾†å¯¦ç¾çš„,請勿在其中è²æ˜Žå‡½å¼ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns falloff based on the dot product of surface normal and view "
"direction of camera (pass associated inputs to it)."
-msgstr ""
+msgstr "ä¾æ“šè¡¨é¢æ³•ç·šèˆ‡ç›¸æ©Ÿæª¢è¦–æ–¹å‘çš„å…§ç©ä¾†å›žå‚³ä¸‹é™çŽ‡ï¼ˆå°‡å…¶ç›¸é—œè¼¸å…¥å‚³å…¥ï¼‰ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9649,90 +9176,92 @@ msgid ""
"it later in the Expressions. You can also declare varyings, uniforms and "
"constants."
msgstr ""
+"自定 Godot 著色器語言表示å¼ï¼Œå°‡è¢«æ”¾å…¥æœ€çµ‚的著色器頂部。å¯ä»¥æ”¾å…¥æ•¸å€‹å‡½æ•¸è²æ˜Žåœ¨"
+"裡é¢ï¼Œä¸¦æ–¼ç¨å¾Œåœ¨è¡¨ç¤ºå¼ä¸­å‘¼å«ã€‚也å¯ä»¥è²æ˜Ž Varyingã€Uniform 與常數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
-msgstr ""
+msgstr "(é™ç‰‡æ®µï¼å…‰ç…§æ¨¡å¼ï¼‰ç´”é‡å°Žå‡½æ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Vector derivative function."
-msgstr ""
+msgstr "(é™ç‰‡æ®µï¼å…‰ç…§æ¨¡å¼ï¼‰å‘é‡å°Žå‡½æ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Vector) Derivative in 'x' using local "
"differencing."
-msgstr ""
+msgstr "(é™ç‰‡æ®µï¼å…‰ç…§æ¨¡å¼ï¼‰ï¼ˆå‘é‡ï¼‰ä»¥ä½¿ç”¨å±€éƒ¨å·®åˆ†çš„「xã€é€²è¡Œå°Žæ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Scalar) Derivative in 'x' using local "
"differencing."
-msgstr ""
+msgstr "(é™ç‰‡æ®µï¼å…‰ç…§æ¨¡å¼ï¼‰ï¼ˆç´”é‡ï¼‰ä»¥ä½¿ç”¨å±€éƒ¨å·®åˆ†çš„「xã€é€²è¡Œå°Žæ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Vector) Derivative in 'y' using local "
"differencing."
-msgstr ""
+msgstr "(é™ç‰‡æ®µï¼å…‰ç…§æ¨¡å¼ï¼‰ï¼ˆå‘é‡ï¼‰ä»¥ä½¿ç”¨å±€éƒ¨å·®åˆ†çš„「yã€é€²è¡Œå°Žæ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Scalar) Derivative in 'y' using local "
"differencing."
-msgstr ""
+msgstr "(é™ç‰‡æ®µï¼å…‰ç…§æ¨¡å¼ï¼‰ï¼ˆç´”é‡ï¼‰ä»¥ä½¿ç”¨å±€éƒ¨å·®åˆ†çš„「yã€é€²è¡Œå°Žæ•¸ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and "
"'y'."
-msgstr ""
+msgstr "(é™ç‰‡æ®µï¼å…‰ç…§æ¨¡å¼ï¼‰ï¼ˆå‘é‡ï¼‰åŠ ç¸½ã€Œxã€èˆ‡ã€Œyã€é€²è¡Œçµ•å°å°Žæ•¸çš„çµæžœã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Scalar) Sum of absolute derivative in 'x' and "
"'y'."
-msgstr ""
+msgstr "(é™ç‰‡æ®µï¼å…‰ç…§æ¨¡å¼ï¼‰ï¼ˆç´”é‡ï¼‰åŠ ç¸½ã€Œxã€èˆ‡ã€Œyã€é€²è¡Œçµ•å°å°Žæ•¸çš„çµæžœã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "VisualShader"
-msgstr "視覺化著色器"
+msgstr "視覺著色器 (VisualShader)"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property"
-msgstr "編輯å¯è¦–屬性"
+msgstr "編輯視覺屬性"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
-msgstr "視覺著色器模å¼å·²æ›´æ”¹"
+msgstr "已修改視覺著色器模å¼"
#: editor/project_export.cpp
msgid "Runnable"
-msgstr "å¯é‹è¡Œçš„"
+msgstr "å¯åŸ·è¡Œ"
#: editor/project_export.cpp
-#, fuzzy
msgid "Add initial export..."
-msgstr "添加輸入"
+msgstr "新增åˆå§‹åŒ¯å‡º..."
#: editor/project_export.cpp
msgid "Add previous patches..."
-msgstr ""
+msgstr "新增上回修正檔..."
#: editor/project_export.cpp
msgid "Delete patch '%s' from list?"
-msgstr ""
+msgstr "是å¦è¦è‡ªåˆ—表中刪除「%sã€ä¿®æ­£æª”?"
#: editor/project_export.cpp
msgid "Delete preset '%s'?"
-msgstr "是å¦åˆ é™¤é è¨­â€œ%sâ€ï¼Ÿ"
+msgstr "確定è¦åˆªé™¤ Preset「%sã€ï¼Ÿ"
#: editor/project_export.cpp
msgid ""
"Failed to export the project for platform '%s'.\n"
"Export templates seem to be missing or invalid."
msgstr ""
+"為平å°ã€Œ%sã€åŒ¯å‡ºå°ˆæ¡ˆå¤±æ•—。\n"
+"匯出樣æ¿ä¼¼ä¹Žå·²éºå¤±æˆ–無效。"
#: editor/project_export.cpp
msgid ""
@@ -9740,40 +9269,44 @@ msgid ""
"This might be due to a configuration issue in the export preset or your "
"export settings."
msgstr ""
+"為平å°ã€Œ%sã€åŒ¯å‡ºå°ˆæ¡ˆå¤±æ•—。\n"
+"å¯èƒ½ä½¿ç”±æ–¼åŒ¯å‡º Preset 或匯出設定中的組態設定有å•é¡Œå°Žè‡´ã€‚"
#: editor/project_export.cpp
msgid "Release"
-msgstr "釋放"
+msgstr "釋出"
#: editor/project_export.cpp
msgid "Exporting All"
-msgstr "全部導出"
+msgstr "全部匯出"
#: editor/project_export.cpp
msgid "The given export path doesn't exist:"
-msgstr "給定的導出路徑ä¸å­˜åœ¨:"
+msgstr "給定的匯出路徑ä¸å­˜åœ¨ï¼š"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted:"
-msgstr "無此平臺的導出範本:"
+msgstr "該平å°çš„匯出範本éºå¤±ï¼æ毀:"
#: editor/project_export.cpp
msgid "Presets"
-msgstr "é è¨­"
+msgstr "Preset"
#: editor/project_export.cpp editor/project_settings_editor.cpp
msgid "Add..."
-msgstr "添加…"
+msgstr "新增…"
#: editor/project_export.cpp
msgid ""
"If checked, the preset will be available for use in one-click deploy.\n"
"Only one preset per platform may be marked as runnable."
msgstr ""
+"è‹¥é¸ä¸­ï¼Œå‰‡ Preset å°‡å¯ä½¿ç”¨ä¸€éµéƒ¨ç½²ã€‚\n"
+"æ¯å€‹å¹³å°åªå¯å°‡ä¸€å€‹ Preset 設為å¯åŸ·è¡Œã€‚"
#: editor/project_export.cpp
msgid "Export Path"
-msgstr "導出路徑"
+msgstr "匯出路徑"
#: editor/project_export.cpp
msgid "Resources"
@@ -9781,48 +9314,51 @@ msgstr "資æº"
#: editor/project_export.cpp
msgid "Export all resources in the project"
-msgstr "導出項目中的所有資æº"
+msgstr "匯出專案內所有資æº"
#: editor/project_export.cpp
msgid "Export selected scenes (and dependencies)"
-msgstr "導出é¸å®šçš„場景 (å’Œä¾è³´é …)"
+msgstr "匯出所é¸å ´æ™¯ï¼ˆèˆ‡å…¶æ‰€æœ‰ç›¸ä¾æ€§ï¼‰"
#: editor/project_export.cpp
msgid "Export selected resources (and dependencies)"
-msgstr "導出é¸å®šçš„è³‡æº (å’Œä¾è³´é …)"
+msgstr "匯出所é¸è³‡æºï¼ˆèˆ‡å…¶æ‰€æœ‰ç›¸ä¾æ€§ï¼‰"
#: editor/project_export.cpp
msgid "Export Mode:"
-msgstr "導出模å¼:"
+msgstr "匯出模å¼ï¼š"
#: editor/project_export.cpp
msgid "Resources to export:"
-msgstr "è¦è¼¸å‡ºçš„資æº:"
+msgstr "匯出的資æºï¼š"
#: editor/project_export.cpp
msgid ""
"Filters to export non-resource files/folders\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
+"éŽæ¿¾éžè³‡æºçš„檔案ï¼è³‡æ–™å¤¾ä»¥åŒ¯å‡º\n"
+"(以åŠå½¢é€—號å€åˆ†ï¼Œå¦‚: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
msgid ""
"Filters to exclude files/folders from project\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
+"éŽæ¿¾ä»¥åœ¨å°ˆæ¡ˆå…§æŽ’除檔案ï¼è³‡æ–™å¤¾\n"
+"(以åŠå½¢é€—號å€åˆ†ï¼Œå¦‚: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
msgid "Patches"
-msgstr "補ä¸"
+msgstr "修正檔"
#: editor/project_export.cpp
msgid "Make Patch"
-msgstr "製作補ä¸"
+msgstr "製作修正檔"
#: editor/project_export.cpp
-#, fuzzy
msgid "Pack File"
-msgstr " 資料夾"
+msgstr "打包檔案"
#: editor/project_export.cpp
msgid "Features"
@@ -9830,25 +9366,23 @@ msgstr "功能"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
-msgstr "自訂 (逗號分隔):"
+msgstr "自訂(以逗號分隔):"
#: editor/project_export.cpp
-#, fuzzy
msgid "Feature List:"
-msgstr "功能清單:"
+msgstr "功能清單:"
#: editor/project_export.cpp
-#, fuzzy
msgid "Script"
msgstr "腳本"
#: editor/project_export.cpp
msgid "Script Export Mode:"
-msgstr "腳本導出模å¼:"
+msgstr "腳本匯出模å¼ï¼š"
#: editor/project_export.cpp
msgid "Text"
-msgstr "文本"
+msgstr "純文字"
#: editor/project_export.cpp
msgid "Compiled"
@@ -9856,173 +9390,162 @@ msgstr "編譯"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
-msgstr "加密 (使用以下密碼)"
+msgstr "加密(使用以下密鑰)"
#: editor/project_export.cpp
msgid "Invalid Encryption Key (must be 64 characters long)"
-msgstr "ä¸æ­£ç¢ºåŠ å¯†é‡‘é‘° (長度必須為64個字元)"
+msgstr "無效的加密密鑰(長度需為 64 個字元)"
#: editor/project_export.cpp
msgid "Script Encryption Key (256-bits as hex):"
-msgstr "腳本加密金鑰 (256ä½å六進ä½ç¢¼):"
+msgstr "腳本加密密鑰(256 ä½å…ƒçš„ 16 進ä½ï¼‰ï¼š"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
-msgstr "導出 PCK/ZIP"
+msgstr "匯出 PCK/ZIP"
#: editor/project_export.cpp
msgid "Export Project"
-msgstr "輸出專案"
+msgstr "匯出專案"
#: editor/project_export.cpp
-#, fuzzy
msgid "Export mode?"
-msgstr "導出模å¼:"
+msgstr "匯出模å¼ï¼Ÿ"
#: editor/project_export.cpp
-#, fuzzy
msgid "Export All"
-msgstr "全部導出"
+msgstr "全部匯出"
#: editor/project_export.cpp editor/project_manager.cpp
-#, fuzzy
msgid "ZIP File"
-msgstr " 資料夾"
+msgstr "ZIP 檔案"
#: editor/project_export.cpp
msgid "Godot Game Pack"
-msgstr ""
+msgstr "Godot éŠæˆ²åŒ…"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing:"
-msgstr "缺少此平臺的導出範本:"
+msgstr "缺少匯出該平å°ç”¨çš„樣æ¿ï¼š"
#: editor/project_export.cpp
msgid "Manage Export Templates"
-msgstr "管ç†è¼¸å‡ºæ¨¡æ¿"
+msgstr "管ç†åŒ¯å‡ºæ¨£æ¿"
#: editor/project_export.cpp
msgid "Export With Debug"
-msgstr "導出為調試"
+msgstr "以åµéŒ¯æ¨¡å¼åŒ¯å‡º"
#: editor/project_manager.cpp
-#, fuzzy
msgid "The path specified doesn't exist."
-msgstr "路徑ä¸å­˜åœ¨."
+msgstr "指定的路徑ä¸å­˜åœ¨ã€‚"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Error opening package file (it's not in ZIP format)."
-msgstr "é–‹å•Ÿå¥—ä»¶æª”æ¡ˆå‡ºéŒ¯ï¼Œéž zip æ ¼å¼ã€‚"
+msgstr "é–‹å•Ÿå¥—ä»¶æª”æ¡ˆæ™‚ç™¼ç”ŸéŒ¯èª¤ï¼ˆéž ZIP æ ¼å¼ï¼‰ã€‚"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file."
-msgstr "“.zipâ€é …目檔案無效,ä¸åŒ…å«â€œproject.godotâ€æª”案。"
+msgstr "無效的「.zipã€å°ˆæ¡ˆæª”;未包å«ã€Œproject.godotã€æª”案。"
#: editor/project_manager.cpp
msgid "Please choose an empty folder."
msgstr "è«‹é¸æ“‡ä¸€å€‹ç©ºè³‡æ–™å¤¾ã€‚"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Please choose a \"project.godot\" or \".zip\" file."
-msgstr "è«‹é¸æ“‡â€œproject.godotâ€æˆ–“.zipâ€æª”案。"
+msgstr "è«‹é¸æ“‡ä¸€å€‹ã€Œproject.godotã€æˆ–「.zipã€æª”案。"
#: editor/project_manager.cpp
-#, fuzzy
msgid "This directory already contains a Godot project."
-msgstr "目錄已包å«ä¸€å€‹godot項目。"
+msgstr "該目錄已經包å«äº†ä¸€å€‹ Godot 專案。"
#: editor/project_manager.cpp
msgid "New Game Project"
-msgstr "æ–°éŠæˆ²é …ç›®"
+msgstr "æ–°éŠæˆ²å°ˆæ¡ˆ"
#: editor/project_manager.cpp
msgid "Imported Project"
-msgstr "已導入的項目"
+msgstr "已匯入的項目"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid Project Name."
-msgstr "é …ç›®å稱無效。"
+msgstr "無效的專案å。"
#: editor/project_manager.cpp
msgid "Couldn't create folder."
-msgstr "無法新增資料夾."
+msgstr "無法建立資料夾。"
#: editor/project_manager.cpp
msgid "There is already a folder in this path with the specified name."
-msgstr "此路徑中已存在具有指定å稱的資料夾。"
+msgstr "該路徑下已有相åŒå稱的資料夾。"
#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
-msgstr "給你的項目命å是個好主æ„。"
+msgstr "最好幫你的專案起個å字。"
#: editor/project_manager.cpp
msgid "Invalid project path (changed anything?)."
-msgstr "ä¸æ­£ç¢ºé …目路徑 (更改了任何內容?)。"
+msgstr "ä¸æ­£ç¢ºçš„專案路徑(有修改了什麼嗎?)。"
#: editor/project_manager.cpp
msgid ""
"Couldn't load project.godot in project path (error %d). It may be missing or "
"corrupted."
-msgstr "無法在項目路徑中加載project.godot(錯誤%d)。它å¯èƒ½éºå¤±æˆ–æ壞。"
+msgstr "無法自專案路徑內載入 project.godot(錯誤 %d)。檔案å¯èƒ½éºå¤±æˆ–æ毀。"
#: editor/project_manager.cpp
msgid "Couldn't edit project.godot in project path."
-msgstr "無法在項目路徑中編輯project.godot。"
+msgstr "無法在專案路徑中編輯 project.godot。"
#: editor/project_manager.cpp
msgid "Couldn't create project.godot in project path."
-msgstr "無法在項目路徑中創建project.godot。"
+msgstr "無法在項目路徑中建立 project.godot。"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Rename Project"
-msgstr "é‡å‘½åé …ç›®"
+msgstr "é‡æ–°å‘½åé …ç›®"
#: editor/project_manager.cpp
msgid "Import Existing Project"
-msgstr "å°Žå…¥ç¾æœ‰é …ç›®"
+msgstr "匯入ç¾æœ‰å°ˆæ¡ˆ"
#: editor/project_manager.cpp
msgid "Import & Edit"
-msgstr "導入與編輯"
+msgstr "匯入並編輯"
#: editor/project_manager.cpp
msgid "Create New Project"
-msgstr "創建新項目"
+msgstr "建立新專案"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Create & Edit"
-msgstr "創建和編輯"
+msgstr "建立並編輯"
#: editor/project_manager.cpp
msgid "Install Project:"
-msgstr "安è£é …目:"
+msgstr "安è£å°ˆæ¡ˆï¼š"
#: editor/project_manager.cpp
msgid "Install & Edit"
-msgstr "安è£å’Œç·¨è¼¯"
+msgstr "安è£ä¸¦ç·¨è¼¯"
#: editor/project_manager.cpp
msgid "Project Name:"
-msgstr "é …ç›®å稱:"
+msgstr "專案å稱:"
#: editor/project_manager.cpp
msgid "Project Path:"
-msgstr "項目路徑:"
+msgstr "專案路徑:"
#: editor/project_manager.cpp
msgid "Project Installation Path:"
-msgstr "項目安è£è·¯å¾‘:"
+msgstr "專案安è£è·¯å¾‘:"
#: editor/project_manager.cpp
msgid "Renderer:"
-msgstr "渲染器:"
+msgstr "算圖器:"
#: editor/project_manager.cpp
msgid "OpenGL ES 3.0"
@@ -10035,6 +9558,10 @@ msgid ""
"Incompatible with older hardware\n"
"Not recommended for web games"
msgstr ""
+"更好的視覺å“質\n"
+"所有功能å¯ç”¨\n"
+"與舊硬體ä¸ç›¸å®¹\n"
+"ä¸æŽ¨è–¦ç”¨æ–¼ç¶²é éŠæˆ²"
#: editor/project_manager.cpp
msgid "OpenGL ES 2.0"
@@ -10047,34 +9574,36 @@ msgid ""
"Works on most hardware\n"
"Recommended for web games"
msgstr ""
+"較低的視覺å“質\n"
+"有些功能ä¸å¯ç”¨\n"
+"在大多數硬體上å¯ç”¨\n"
+"推薦用於網é éŠæˆ²"
#: editor/project_manager.cpp
msgid "Renderer can be changed later, but scenes may need to be adjusted."
-msgstr "渲染器å¯ä»¥ç„¶å¾Œæ›´æ”¹, 但場景å¯èƒ½éœ€è¦èª¿æ•´ã€‚"
+msgstr "ç¨å¾Œä»å¯æ›´æ”¹ç®—圖器,但å¯èƒ½éœ€è¦å°å ´æ™¯é€²è¡Œèª¿æ•´ã€‚"
#: editor/project_manager.cpp
msgid "Unnamed Project"
-msgstr "未命åé …ç›®"
+msgstr "未命å專案"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Missing Project"
-msgstr "å°Žå…¥ç¾æœ‰é …ç›®"
+msgstr "éºå¤±å°ˆæ¡ˆ"
#: editor/project_manager.cpp
msgid "Error: Project is missing on the filesystem."
-msgstr ""
+msgstr "錯誤:專案在檔案系統上éºå¤±ã€‚"
#: editor/project_manager.cpp
msgid "Can't open project at '%s'."
-msgstr "無法打開ä½æ–¼'%s'的項目。"
+msgstr "無法在「%sã€ä¸­æ‰“開專案。"
#: editor/project_manager.cpp
msgid "Are you sure to open more than one project?"
-msgstr "您確定è¦æ‰“開多個項目嗎?"
+msgstr "確定è¦æ‰“開多個專案嗎?"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"The following project settings file does not specify the version of Godot "
"through which it was created.\n"
@@ -10086,15 +9615,14 @@ msgid ""
"Warning: You won't be able to open the project with previous versions of the "
"engine anymore."
msgstr ""
-"以下項目設定檔案未指定通éŽå…¶å‰µå»ºçš„Godot的版本。\n"
+"下列專案設定檔未指定建立其之 Godot 版本。\n"
"\n"
"%s\n"
"\n"
-"如果繼續打開它, 它將被轉æ›ç‚º Godot 的當å‰é…置檔案格å¼ã€‚ \n"
-"警告: 您將無法å†ä½¿ç”¨ä»¥å‰ç‰ˆæœ¬çš„引擎打開項目。"
+"若您繼續開啟,會將其轉æ›ç‚ºç›®å‰ Godot 版本的組態設定檔案格å¼ã€‚\n"
+"警告:您將ä¸å†å¯ä½¿ç”¨éŽå¾€ç‰ˆæœ¬çš„引擎開啟該專案。"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"The following project settings file was generated by an older engine "
"version, and needs to be converted for this version:\n"
@@ -10105,18 +9633,18 @@ msgid ""
"Warning: You won't be able to open the project with previous versions of the "
"engine anymore."
msgstr ""
-"以下項目設置檔案是由較舊的引擎版本生æˆçš„, 需è¦ç‚ºæ­¤ç‰ˆæœ¬é€²è¡Œè½‰æ›:\n"
+"下列專案設定檔時由較舊版本的引擎所產生,且需è¦å°‡å…¶è½‰æ›ç‚ºç›®å‰çš„版本:\n"
"\n"
"%s\n"
"\n"
-"是å¦è¦å°‡å…¶è½‰æ›ï¼Ÿ\n"
-"警告: 您將無法å†ä½¿ç”¨ä»¥å‰ç‰ˆæœ¬çš„引擎打開專案。"
+"è¦é€²è¡Œè½‰æ›å—Žï¼Ÿ\n"
+"警告:您將ä¸å†å¯ä½¿ç”¨éŽå¾€ç‰ˆæœ¬çš„引擎開啟該專案。"
#: editor/project_manager.cpp
msgid ""
"The project settings were created by a newer engine version, whose settings "
"are not compatible with this version."
-msgstr "此項目設置是由較新的引擎版本創建的, 其設置與此版本ä¸ç›¸å®¹ã€‚"
+msgstr "該專案設定是由新版本的引擎所建立,其設定無法相容於這個版本。"
#: editor/project_manager.cpp
msgid ""
@@ -10124,57 +9652,66 @@ msgid ""
"Please edit the project and set the main scene in the Project Settings under "
"the \"Application\" category."
msgstr ""
+"無法執行專案:未定義主場景。\n"
+"請編輯專案並在「應用程å¼ã€åˆ†é¡žä¸­çš„專案設定內設定主場景。"
#: editor/project_manager.cpp
msgid ""
"Can't run project: Assets need to be imported.\n"
"Please edit the project to trigger the initial import."
msgstr ""
+"無法執行專案:需è¦åŒ¯å…¥ç´ æ\n"
+"請編輯專案以觸發åˆå§‹åŒ¯å…¥ã€‚"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Are you sure to run %d projects at once?"
-msgstr "您確定è¦é‹è¡Œå¤šå€‹é …目嗎?"
+msgstr "確定è¦ä¸€æ¬¡åŸ·è¡Œ %d 個專案?"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"Remove %d projects from the list?\n"
"The project folders' contents won't be modified."
-msgstr "是å¦å¾žæ¸…單中删除項目?(資料夾內容將ä¸è¢«ä¿®æ”¹ï¼‰"
+msgstr ""
+"確定è¦è‡ªæ¸…單中移除 %d 個專案嗎?\n"
+"專案資料夾的內容ä¸æœƒè¢«ä¿®æ”¹ã€‚"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"Remove this project from the list?\n"
"The project folder's contents won't be modified."
-msgstr "是å¦å¾žæ¸…單中删除項目?(資料夾內容將ä¸è¢«ä¿®æ”¹ï¼‰"
+msgstr ""
+"確定è¦è‡ªåˆ—表移除該專案嗎?\n"
+"專案資料夾的內容ä¸æœƒè¢«ä¿®æ”¹ã€‚"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"Remove all missing projects from the list?\n"
"The project folders' contents won't be modified."
-msgstr "是å¦å¾žæ¸…單中删除項目?(資料夾內容將ä¸è¢«ä¿®æ”¹ï¼‰"
+msgstr ""
+"確定自清單移除所有éºå¤±çš„專案嗎?\n"
+"專案資料夾的內容ä¸æœƒè¢«ä¿®æ”¹ã€‚"
#: editor/project_manager.cpp
msgid ""
"Language changed.\n"
"The interface will update after restarting the editor or project manager."
msgstr ""
+"語言已更改。\n"
+"ç•Œé¢å°‡æœƒåœ¨é‡æ–°å•Ÿå‹•ç·¨è¼¯å™¨æˆ–專案管ç†å“¡å¾Œæ›´æ–°ã€‚"
#: editor/project_manager.cpp
msgid ""
"Are you sure to scan %s folders for existing Godot projects?\n"
"This could take a while."
msgstr ""
+"確定è¦ç‚ºç¾å­˜çš„ Godot 專案掃æ %s 資料夾嗎?\n"
+"這å¯èƒ½éœ€è¦ä¸€æ®µæ™‚間。"
#: editor/project_manager.cpp
msgid "Project Manager"
-msgstr ""
+msgstr "專案管ç†å“¡"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Projects"
msgstr "專案"
@@ -10188,35 +9725,35 @@ msgstr "掃æ"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
-msgstr "é¸æ“‡ä¸€å€‹è³‡æ–™å¤¾ä¾†æŽƒæ"
+msgstr "é¸æ“‡è³‡æ–™å¤¾ä»¥é€²è¡ŒæŽƒæ"
#: editor/project_manager.cpp
msgid "New Project"
-msgstr ""
+msgstr "新增專案"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Missing"
-msgstr "刪除點"
+msgstr "刪除éºå¤±"
#: editor/project_manager.cpp
msgid "Templates"
-msgstr "模æ¿"
+msgstr "樣æ¿"
#: editor/project_manager.cpp
msgid "Restart Now"
-msgstr ""
+msgstr "ç«‹å³é‡æ–°å•Ÿå‹•"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Can't run project"
-msgstr "連接..."
+msgstr "無法執行專案"
#: editor/project_manager.cpp
msgid ""
"You currently don't have any projects.\n"
"Would you like to explore official example projects in the Asset Library?"
msgstr ""
+"ç›®å‰æ²’有任何專案。\n"
+"è¦åœ¨ç´ æ庫中ç€è¦½å®˜æ–¹ç¯„例專案嗎?"
#: editor/project_manager.cpp
msgid ""
@@ -10224,237 +9761,232 @@ msgid ""
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
+"æœå°‹æ¡†å¯ä»¥ç”¨ä¾†ä¾æ“šå稱與路徑中的最後一部分來éŽæ¿¾å°ˆæ¡ˆã€‚\n"
+"è‹¥è¦ä»¥å稱與完整路徑來éŽæ¿¾å°ˆæ¡ˆï¼Œæœå°‹å…§å®¹æ‡‰è©²è‡³å°‘包å«ä¸€å€‹ã€Œ/ã€å­—元。"
#: editor/project_settings_editor.cpp
msgid "Key "
-msgstr ""
+msgstr "éµ "
#: editor/project_settings_editor.cpp
msgid "Joy Button"
-msgstr ""
+msgstr "控制器按鈕"
#: editor/project_settings_editor.cpp
msgid "Joy Axis"
-msgstr ""
+msgstr "控制器類比軸"
#: editor/project_settings_editor.cpp
msgid "Mouse Button"
-msgstr ""
+msgstr "滑鼠按鈕"
#: editor/project_settings_editor.cpp
msgid ""
"Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'"
-msgstr ""
+msgstr "無效的æ“作å稱。ä¸èƒ½ç‚ºç©ºæˆ–包å«ã€Œ/ã€ã€ã€Œ:ã€ã€ã€Œ=ã€ã€ã€Œ\\ã€æˆ–「\"ã€"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "An action with the name '%s' already exists."
-msgstr "Autoload「%sã€å·²ç¶“存在!"
+msgstr "已有å稱「%sã€çš„æ“作。"
#: editor/project_settings_editor.cpp
msgid "Rename Input Action Event"
-msgstr ""
+msgstr "é‡æ–°å‘½å輸入æ“作事件"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Change Action deadzone"
-msgstr "改變字典 value"
+msgstr "修改æ“作盲å€"
#: editor/project_settings_editor.cpp
msgid "Add Input Action Event"
-msgstr ""
+msgstr "新增輸入æ“作事件"
#: editor/project_settings_editor.cpp
msgid "All Devices"
-msgstr ""
+msgstr "所有è£ç½®"
#: editor/project_settings_editor.cpp
msgid "Device"
-msgstr ""
+msgstr "è£ç½®"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
-msgstr ""
+msgstr "請按下按éµ..."
#: editor/project_settings_editor.cpp
msgid "Mouse Button Index:"
-msgstr ""
+msgstr "滑鼠按éµç´¢å¼•ï¼š"
#: editor/project_settings_editor.cpp
msgid "Left Button"
-msgstr ""
+msgstr "å·¦éµ"
#: editor/project_settings_editor.cpp
msgid "Right Button"
-msgstr ""
+msgstr "å³éµ"
#: editor/project_settings_editor.cpp
msgid "Middle Button"
-msgstr ""
+msgstr "中éµ"
#: editor/project_settings_editor.cpp
msgid "Wheel Up Button"
-msgstr ""
+msgstr "滾輪å‘上按éµ"
#: editor/project_settings_editor.cpp
msgid "Wheel Down Button"
-msgstr ""
+msgstr "滾輪å‘下按éµ"
#: editor/project_settings_editor.cpp
msgid "Wheel Left Button"
-msgstr ""
+msgstr "滾輪å‘左按éµ"
#: editor/project_settings_editor.cpp
msgid "Wheel Right Button"
-msgstr ""
+msgstr "滾輪å‘å³æŒ‰éµ"
#: editor/project_settings_editor.cpp
msgid "X Button 1"
-msgstr ""
+msgstr "X æŒ‰éµ 1"
#: editor/project_settings_editor.cpp
msgid "X Button 2"
-msgstr ""
+msgstr "X æŒ‰éµ 2"
#: editor/project_settings_editor.cpp
msgid "Joypad Axis Index:"
-msgstr ""
+msgstr "控制器類比æ–桿索引:"
#: editor/project_settings_editor.cpp
msgid "Axis"
-msgstr ""
+msgstr "類比軸"
#: editor/project_settings_editor.cpp
msgid "Joypad Button Index:"
-msgstr ""
+msgstr "控制器按鈕索引:"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Erase Input Action"
-msgstr "所有的é¸æ“‡"
+msgstr "清除輸入æ“作"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
-msgstr ""
+msgstr "清除輸入æ“作事件"
#: editor/project_settings_editor.cpp
msgid "Add Event"
-msgstr ""
+msgstr "新增事件"
#: editor/project_settings_editor.cpp
msgid "Button"
-msgstr ""
+msgstr "Button(按鈕)"
#: editor/project_settings_editor.cpp
msgid "Left Button."
-msgstr ""
+msgstr "å·¦éµã€‚"
#: editor/project_settings_editor.cpp
msgid "Right Button."
-msgstr ""
+msgstr "å³éµã€‚"
#: editor/project_settings_editor.cpp
msgid "Middle Button."
-msgstr ""
+msgstr "中éµã€‚"
#: editor/project_settings_editor.cpp
msgid "Wheel Up."
-msgstr ""
+msgstr "滾輪å‘上。"
#: editor/project_settings_editor.cpp
msgid "Wheel Down."
-msgstr ""
+msgstr "滾輪å‘下。"
#: editor/project_settings_editor.cpp
msgid "Add Global Property"
-msgstr ""
+msgstr "新增全域屬性"
#: editor/project_settings_editor.cpp
msgid "Select a setting item first!"
-msgstr ""
+msgstr "è«‹å…ˆé¸æ“‡ä¸€å€‹è¨­å®šé …ç›®ï¼"
#: editor/project_settings_editor.cpp
msgid "No property '%s' exists."
-msgstr ""
+msgstr "屬性「%sã€ä¸å­˜åœ¨ã€‚"
#: editor/project_settings_editor.cpp
msgid "Setting '%s' is internal, and it can't be deleted."
-msgstr ""
+msgstr "「%sã€ç‚ºå…§éƒ¨è¨­å®šï¼Œç„¡æ³•åˆªé™¤ã€‚"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Delete Item"
-msgstr "刪除"
+msgstr "刪除項目"
#: editor/project_settings_editor.cpp
msgid ""
"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'."
-msgstr ""
+msgstr "無效的æ“作å稱。ä¸èƒ½ç‚ºç©ºæˆ–包å«ã€Œ/ã€ã€ã€Œ:ã€ã€ã€Œ=ã€ã€ã€Œ\\ã€æˆ–「\"ã€ã€‚"
#: editor/project_settings_editor.cpp
msgid "Add Input Action"
-msgstr ""
+msgstr "新增輸入æ“作"
#: editor/project_settings_editor.cpp
msgid "Error saving settings."
-msgstr ""
+msgstr "ä¿å­˜è¨­å®šæ™‚發生錯誤。"
#: editor/project_settings_editor.cpp
msgid "Settings saved OK."
-msgstr ""
+msgstr "設定ä¿å­˜æˆåŠŸã€‚"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Moved Input Action Event"
-msgstr "所有的é¸æ“‡"
+msgstr "移動輸入æ“作事件"
#: editor/project_settings_editor.cpp
msgid "Override for Feature"
-msgstr ""
+msgstr "複寫功能"
#: editor/project_settings_editor.cpp
msgid "Add Translation"
-msgstr ""
+msgstr "新增翻譯"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
-msgstr ""
+msgstr "移除翻譯"
#: editor/project_settings_editor.cpp
msgid "Add Remapped Path"
-msgstr ""
+msgstr "新增é‡æ˜ å°„路徑"
#: editor/project_settings_editor.cpp
msgid "Resource Remap Add Remap"
-msgstr ""
+msgstr "資æºé‡æ˜ å°„新增é‡æ˜ å°„"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
-msgstr ""
+msgstr "更改資æºé‡æ˜ å°„語言"
#: editor/project_settings_editor.cpp
msgid "Remove Resource Remap"
-msgstr ""
+msgstr "移除資æºé‡æ˜ å°„"
#: editor/project_settings_editor.cpp
msgid "Remove Resource Remap Option"
-msgstr ""
+msgstr "移除資æºé‡æ˜ å°„é¸é …"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Changed Locale Filter"
-msgstr "變更é¡é ­å°ºå¯¸"
+msgstr "更改å€åŸŸéŽæ¿¾"
#: editor/project_settings_editor.cpp
msgid "Changed Locale Filter Mode"
-msgstr ""
+msgstr "更改å€åŸŸéŽæ¿¾æ¨¡å¼"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Project Settings (project.godot)"
-msgstr "專案設定"
+msgstr "專案設定 (project.godot)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "General"
@@ -10462,929 +9994,893 @@ msgstr "一般"
#: editor/project_settings_editor.cpp
msgid "Override For..."
-msgstr ""
+msgstr "複寫..."
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "The editor must be restarted for changes to take effect."
-msgstr ""
+msgstr "å¿…é ˆé‡æ–°å•Ÿå‹•ç·¨è¼¯å™¨æ‰æœƒä½¿æ”¹å‹•ç”Ÿæ•ˆã€‚"
#: editor/project_settings_editor.cpp
msgid "Input Map"
-msgstr ""
+msgstr "輸入映射"
#: editor/project_settings_editor.cpp
msgid "Action:"
-msgstr ""
+msgstr "æ“作:"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Action"
-msgstr "所有的é¸æ“‡"
+msgstr "æ“作"
#: editor/project_settings_editor.cpp
msgid "Deadzone"
-msgstr ""
+msgstr "盲å€"
#: editor/project_settings_editor.cpp
msgid "Device:"
-msgstr ""
+msgstr "設備:"
#: editor/project_settings_editor.cpp
msgid "Index:"
-msgstr ""
+msgstr "索引:"
#: editor/project_settings_editor.cpp
msgid "Localization"
-msgstr ""
+msgstr "本地化"
#: editor/project_settings_editor.cpp
msgid "Translations"
-msgstr ""
+msgstr "翻譯"
#: editor/project_settings_editor.cpp
msgid "Translations:"
-msgstr ""
+msgstr "翻譯:"
#: editor/project_settings_editor.cpp
msgid "Remaps"
-msgstr ""
+msgstr "é‡æ˜ å°„"
#: editor/project_settings_editor.cpp
msgid "Resources:"
-msgstr ""
+msgstr "資æºï¼š"
#: editor/project_settings_editor.cpp
msgid "Remaps by Locale:"
-msgstr ""
+msgstr "ä¾èªžè¨€é‡æ˜ å°„:"
#: editor/project_settings_editor.cpp
msgid "Locale"
-msgstr ""
+msgstr "語言"
#: editor/project_settings_editor.cpp
msgid "Locales Filter"
-msgstr ""
+msgstr "語言éŽæ¿¾"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Show All Locales"
-msgstr "顯示骨骼"
+msgstr "顯示所有語言"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Show Selected Locales Only"
-msgstr "僅é¸æ“‡å€åŸŸ"
+msgstr "僅顯示é¸å®šçš„語言"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Filter mode:"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "éŽæ¿¾æ¨¡å¼ï¼š"
#: editor/project_settings_editor.cpp
msgid "Locales:"
-msgstr ""
+msgstr "語言:"
#: editor/project_settings_editor.cpp
msgid "AutoLoad"
-msgstr ""
+msgstr "Autoload"
#: editor/project_settings_editor.cpp
msgid "Plugins"
-msgstr "挿件"
+msgstr "外掛"
#: editor/property_editor.cpp
msgid "Preset..."
-msgstr "é è¨­ã€‚。。"
+msgstr "Preset..."
#: editor/property_editor.cpp
msgid "Zero"
-msgstr ""
+msgstr "ç„¡"
#: editor/property_editor.cpp
msgid "Easing In-Out"
-msgstr ""
+msgstr "緩入緩出"
#: editor/property_editor.cpp
msgid "Easing Out-In"
-msgstr ""
+msgstr "緩入緩出(åå‘)"
#: editor/property_editor.cpp
msgid "File..."
-msgstr ""
+msgstr "檔案..."
#: editor/property_editor.cpp
msgid "Dir..."
-msgstr ""
+msgstr "資料夾..."
#: editor/property_editor.cpp
msgid "Assign"
-msgstr ""
+msgstr "指派"
#: editor/property_editor.cpp
msgid "Select Node"
-msgstr ""
+msgstr "é¸æ“‡ç¯€é»ž"
#: editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
-msgstr ""
+msgstr "載入檔案時發生錯誤:éžè³‡æºï¼"
#: editor/property_editor.cpp
msgid "Pick a Node"
-msgstr ""
+msgstr "é¸æ“‡ä¸€å€‹ç¯€é»ž"
#: editor/property_editor.cpp
msgid "Bit %d, val %d."
-msgstr ""
+msgstr "ä½å…ƒ %d,值 %d。"
#: editor/property_selector.cpp
msgid "Select Property"
-msgstr ""
+msgstr "é¸æ“‡å±¬æ€§"
#: editor/property_selector.cpp
msgid "Select Virtual Method"
-msgstr ""
+msgstr "é¸æ“‡è™›æ“¬æ–¹æ³•"
#: editor/property_selector.cpp
msgid "Select Method"
-msgstr ""
+msgstr "é¸æ“‡æ–¹æ³•"
#: editor/rename_dialog.cpp editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Batch Rename"
-msgstr "符åˆå¤§å°å¯«"
+msgstr "批次é‡æ–°å‘½å"
#: editor/rename_dialog.cpp
msgid "Prefix"
-msgstr ""
+msgstr "å‰ç½®"
#: editor/rename_dialog.cpp
msgid "Suffix"
-msgstr ""
+msgstr "後置"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Use Regular Expressions"
-msgstr "設置ç£è²¼å€åŸŸ"
+msgstr "使用正è¦è¡¨ç¤ºå¼"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Advanced Options"
-msgstr "å¸é™„é¸é …"
+msgstr "進階é¸é …"
#: editor/rename_dialog.cpp
msgid "Substitute"
-msgstr ""
+msgstr "å–代"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Node name"
-msgstr "節點å稱:"
+msgstr "節點å稱"
#: editor/rename_dialog.cpp
msgid "Node's parent name, if available"
-msgstr ""
+msgstr "節點的æ¯ç´šç¯€é»žå(若有的話)"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Node type"
-msgstr "節點å稱:"
+msgstr "節點型別"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Current scene name"
-msgstr "ç›®å‰çš„場景尚未存檔, ä¾ç„¶è¦é–‹å•Ÿå—Ž?"
+msgstr "ç›®å‰å ´æ™¯å稱"
#: editor/rename_dialog.cpp
msgid "Root node name"
-msgstr ""
+msgstr "根節點å稱"
#: editor/rename_dialog.cpp
msgid ""
"Sequential integer counter.\n"
"Compare counter options."
msgstr ""
+"åºåˆ—整數計數器。\n"
+"比較計數器é¸é …。"
#: editor/rename_dialog.cpp
msgid "Per-level Counter"
-msgstr ""
+msgstr "å„級別分別計數器"
#: editor/rename_dialog.cpp
msgid "If set the counter restarts for each group of child nodes"
-msgstr ""
+msgstr "若啟用則計數器將ä¾æ“šæ¯çµ„å­ç¯€é»žé‡æ–°å•Ÿå‹•"
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
-msgstr ""
+msgstr "計數器起始值"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Step"
-msgstr "步驟 :"
+msgstr "步長"
#: editor/rename_dialog.cpp
msgid "Amount by which counter is incremented for each node"
-msgstr ""
+msgstr "å„節點的計數器的增加é‡"
#: editor/rename_dialog.cpp
msgid "Padding"
-msgstr ""
+msgstr "å¡«å……"
#: editor/rename_dialog.cpp
msgid ""
"Minimum number of digits for the counter.\n"
"Missing digits are padded with leading zeros."
msgstr ""
+"計數器的最å°ä½æ•¸ã€‚\n"
+"缺少的ä½æ•¸æœƒä»¥å‰ç½® 0 填充。"
#: editor/rename_dialog.cpp
msgid "Post-Process"
-msgstr ""
+msgstr "後處ç†"
#: editor/rename_dialog.cpp
msgid "Keep"
-msgstr ""
+msgstr "ä¿æŒ"
#: editor/rename_dialog.cpp
msgid "PascalCase to snake_case"
-msgstr ""
+msgstr "將大é§å³°æ³• (PascalCase) 轉為底線 (snake_case)"
#: editor/rename_dialog.cpp
msgid "snake_case to PascalCase"
-msgstr ""
+msgstr "將底線 (snake_case) 轉為é§å³°æ³• (PascalCase)"
#: editor/rename_dialog.cpp
msgid "Case"
-msgstr ""
+msgstr "大å°å¯«"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "To Lowercase"
-msgstr "轉æ›æˆ..."
+msgstr "轉為å°å¯«"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "To Uppercase"
-msgstr "轉æ›æˆ..."
+msgstr "轉為大寫"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Reset"
-msgstr "é‡è¨­ç¸®æ”¾å¤§å°"
+msgstr "é‡è¨­"
#: editor/rename_dialog.cpp
msgid "Regular Expression Error"
-msgstr ""
+msgstr "æ­£è¦è¡¨ç¤ºå¼éŒ¯èª¤"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "At character %s"
-msgstr "åˆæ³•å­—å…ƒ:"
+msgstr "ä½æ–¼å­—å…ƒ %s"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent Node"
-msgstr ""
+msgstr "é‡è¨­æ¯ç¯€é»ž"
#: editor/reparent_dialog.cpp
msgid "Reparent Location (Select new Parent):"
-msgstr ""
+msgstr "é‡è¨­æ¯ä½ç½®ï¼ˆé¸æ“‡æ–°çš„æ¯ç¯€é»žï¼‰ï¼š"
#: editor/reparent_dialog.cpp
msgid "Keep Global Transform"
-msgstr ""
+msgstr "ä¿æŒå…¨åŸŸè®Šæ›"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent"
-msgstr ""
+msgstr "é‡è¨­æ¯ç¯€é»ž"
#: editor/run_settings_dialog.cpp
msgid "Run Mode:"
-msgstr ""
+msgstr "執行模å¼ï¼š"
#: editor/run_settings_dialog.cpp
msgid "Current Scene"
-msgstr ""
+msgstr "ç›®å‰å ´æ™¯"
#: editor/run_settings_dialog.cpp
msgid "Main Scene"
-msgstr ""
+msgstr "主場景"
#: editor/run_settings_dialog.cpp
msgid "Main Scene Arguments:"
-msgstr ""
+msgstr "主場景引數:"
#: editor/run_settings_dialog.cpp
msgid "Scene Run Settings"
-msgstr ""
+msgstr "場景執行設定"
#: editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
-msgstr ""
+msgstr "ç„¡å¯å¯¦é«”化場景的æ¯ç¯€é»žã€‚"
#: editor/scene_tree_dock.cpp
msgid "Error loading scene from %s"
-msgstr ""
+msgstr "自 %s 中載入場景時發生錯誤"
#: editor/scene_tree_dock.cpp
msgid ""
"Cannot instance the scene '%s' because the current scene exists within one "
"of its nodes."
-msgstr ""
+msgstr "無法實體化場景「%sã€ï¼Œç”±æ–¼å…¶å·²å­˜åœ¨æ–¼å…¶ä¸€å­ç¯€é»žä¸­ã€‚"
#: editor/scene_tree_dock.cpp
msgid "Instance Scene(s)"
-msgstr ""
+msgstr "實體化場景"
#: editor/scene_tree_dock.cpp
msgid "Replace with Branch Scene"
-msgstr ""
+msgstr "å–代分支場景"
#: editor/scene_tree_dock.cpp
msgid "Instance Child Scene"
-msgstr ""
+msgstr "實體化å­å ´æ™¯"
#: editor/scene_tree_dock.cpp
-msgid "Clear Script"
-msgstr ""
+msgid "Detach Script"
+msgstr "å–消附加腳本"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
-msgstr ""
+msgstr "æ­¤æ“作無法在樹狀根執行。"
#: editor/scene_tree_dock.cpp
msgid "Move Node In Parent"
-msgstr ""
+msgstr "移動節點至其æ¯ç¯€é»ž"
#: editor/scene_tree_dock.cpp
msgid "Move Nodes In Parent"
-msgstr ""
+msgstr "移動節點至æ¯ç¯€é»ž"
#: editor/scene_tree_dock.cpp
msgid "Duplicate Node(s)"
-msgstr ""
+msgstr "é‡è¤‡ç¯€é»ž"
#: editor/scene_tree_dock.cpp
msgid "Can't reparent nodes in inherited scenes, order of nodes can't change."
-msgstr ""
+msgstr "無法é‡æ–°è¨­å®šç¹¼æ‰¿å ´æ™¯ç¯€é»žçš„æ¯ç¯€é»žï¼Œç¯€é»žçš„é †åºç„¡æ³•æ›´æ”¹ã€‚"
#: editor/scene_tree_dock.cpp
msgid "Node must belong to the edited scene to become root."
-msgstr ""
+msgstr "節點必須屬於已編輯的場景æ‰èƒ½è½‰ç‚ºæ ¹ç¯€é»žã€‚"
#: editor/scene_tree_dock.cpp
msgid "Instantiated scenes can't become root"
-msgstr ""
+msgstr "實體化的場景無法轉為根節點"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Make node as Root"
-msgstr "儲存場景"
+msgstr "將節點設為根節點"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete %d nodes?"
-msgstr "刪除"
+msgstr "刪除 %d 個節點?"
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
-msgstr ""
+msgstr "確定è¦åˆªé™¤æ ¹ç¯€é»žã€Œ%sã€å—Žï¼Ÿ"
#: editor/scene_tree_dock.cpp
msgid "Delete node \"%s\" and its children?"
-msgstr ""
+msgstr "確定è¦åˆªé™¤ç¯€é»žã€Œ%sã€èˆ‡å…¶å­ç¯€é»žå—Žï¼Ÿ"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "刪除"
+msgstr "確定è¦åˆªé™¤ç¯€é»žã€Œ%sã€å—Žï¼Ÿ"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
-msgstr ""
+msgstr "無法在根節點執行此æ“作。"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
-msgstr ""
+msgstr "該æ“作無法在已實體化場景中執行。"
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
-msgstr ""
+msgstr "å¦å­˜æ–°å ´æ™¯ç‚º..."
#: editor/scene_tree_dock.cpp
msgid ""
"Disabling \"editable_instance\" will cause all properties of the node to be "
"reverted to their default."
-msgstr ""
+msgstr "ç¦ç”¨ã€Œeditable_instanceã€å°‡å°Žè‡´ç¯€é»žçš„所有屬性都被還原為其é è¨­å€¼ã€‚"
#: editor/scene_tree_dock.cpp
msgid ""
"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and "
"cause all properties of the node to be reverted to their default."
msgstr ""
+"啟用「載入為佔ä½ã€å°‡ç¦ç”¨ã€Œå¯ç·¨è¼¯å­ç¯€é»žã€ä¸¦å°Žè‡´å…¶æ‰€æœ‰ç¯€é»žéƒ½è¢«é‚„原為其é è¨­å€¼ã€‚"
#: editor/scene_tree_dock.cpp
msgid "Make Local"
-msgstr ""
+msgstr "轉為本地"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "New Scene Root"
-msgstr "儲存場景"
+msgstr "新場景根"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Create Root Node:"
-msgstr "新增資料夾"
+msgstr "建立根節點:"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "2D Scene"
-msgstr "場景"
+msgstr "2D 場景"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "3D Scene"
-msgstr "場景"
+msgstr "3D 場景"
#: editor/scene_tree_dock.cpp
msgid "User Interface"
-msgstr ""
+msgstr "使用者界é¢"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Other Node"
-msgstr "刪除"
+msgstr "其他節點"
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes from a foreign scene!"
-msgstr ""
+msgstr "無法å°å¤–部場景的節點進行æ“作ï¼"
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes the current scene inherits from!"
-msgstr ""
+msgstr "無法å°ç›®å‰å ´æ™¯ç¹¼æ‰¿ä¾†æºçš„節點進行æ“作ï¼"
#: editor/scene_tree_dock.cpp
msgid "Attach Script"
-msgstr ""
+msgstr "附加腳本"
#: editor/scene_tree_dock.cpp
msgid "Remove Node(s)"
-msgstr ""
+msgstr "移除節點"
#: editor/scene_tree_dock.cpp
msgid "Change type of node(s)"
-msgstr ""
+msgstr "更改節點的型別"
#: editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
-msgstr ""
+msgstr "無法ä¿å­˜æ–°å ´æ™¯ã€‚很å¯èƒ½ç”±æ–¼ç„¡æ³•æ»¿è¶³å…¶ä¾è³´æ€§ï¼ˆå¯¦é«”)。"
#: editor/scene_tree_dock.cpp
msgid "Error saving scene."
-msgstr ""
+msgstr "ä¿å­˜å ´æ™¯æ™‚發生錯誤。"
#: editor/scene_tree_dock.cpp
msgid "Error duplicating scene to save it."
-msgstr ""
+msgstr "複製場景以進行ä¿å­˜æ™‚發生錯誤。"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Sub-Resources"
-msgstr "複製資æº"
+msgstr "å­è³‡æº"
#: editor/scene_tree_dock.cpp
msgid "Clear Inheritance"
-msgstr ""
+msgstr "清除繼承"
#: editor/scene_tree_dock.cpp
msgid "Editable Children"
-msgstr ""
+msgstr "å¯ç·¨è¼¯å­ç¯€é»ž"
#: editor/scene_tree_dock.cpp
msgid "Load As Placeholder"
-msgstr ""
+msgstr "載入為佔ä½"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Open Documentation"
-msgstr "開啟最近存å–"
+msgstr "開啟說明文件"
#: editor/scene_tree_dock.cpp
-msgid "Add Child Node"
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
msgstr ""
+"無法附加腳本:未註冊任何語言。\n"
+"有å¯èƒ½æ˜¯ç”±æ–¼ç·¨è¼¯å™¨åœ¨å»ºæ§‹æ™‚未啟用任何語言模組。"
+
+#: editor/scene_tree_dock.cpp
+msgid "Add Child Node"
+msgstr "新增å­ç¯€é»ž"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Expand/Collapse All"
-msgstr "å–代全部"
+msgstr "展開ï¼æ”¶åˆå…¨éƒ¨"
#: editor/scene_tree_dock.cpp
msgid "Change Type"
-msgstr ""
+msgstr "更改型別"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Reparent to New Node"
-msgstr "新增 %s"
+msgstr "é‡æ–°è¨­å®šæ¯ç¯€é»žç‚ºæ–°ç¯€é»ž"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Make Scene Root"
-msgstr "儲存場景"
+msgstr "設為場景根節點"
#: editor/scene_tree_dock.cpp
msgid "Merge From Scene"
-msgstr ""
+msgstr "åˆä½µè‡ªå ´æ™¯"
#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
msgid "Save Branch as Scene"
-msgstr ""
+msgstr "ä¿å­˜åˆ†æ”¯ç‚ºå ´æ™¯"
#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
msgid "Copy Node Path"
-msgstr ""
+msgstr "複製節點路徑"
#: editor/scene_tree_dock.cpp
msgid "Delete (No Confirm)"
-msgstr ""
+msgstr "刪除(無確èªï¼‰"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Add/Create a New Node."
-msgstr "新增 %s"
+msgstr "新增ï¼å»ºç«‹æ–°ç¯€é»žã€‚"
#: editor/scene_tree_dock.cpp
msgid ""
"Instance a scene file as a Node. Creates an inherited scene if no root node "
"exists."
-msgstr ""
+msgstr "將場景檔案實體化為節點。若無根節點則建立一個繼承場景。"
#: editor/scene_tree_dock.cpp
-msgid "Attach a new or existing script for the selected node."
-msgstr ""
+msgid "Attach a new or existing script to the selected node."
+msgstr "附加新的或已存在之腳本至所é¸ç¯€é»žã€‚"
#: editor/scene_tree_dock.cpp
-msgid "Clear a script for the selected node."
-msgstr ""
+msgid "Detach the script from the selected node."
+msgstr "自所é¸ç¯€é»žå–消附加腳本。"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Remote"
-msgstr "移除"
+msgstr "é ç«¯"
#: editor/scene_tree_dock.cpp
msgid "Local"
-msgstr ""
+msgstr "本機"
#: editor/scene_tree_dock.cpp
msgid "Clear Inheritance? (No Undo!)"
-msgstr ""
+msgstr "確定è¦æ¸…除繼承嗎?(無法復原ï¼ï¼‰"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Toggle Visible"
-msgstr "切æ›é¡¯ç¤ºéš±è—檔案"
+msgstr "切æ›å¯è¦‹ï¼éš±è—"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Unlock Node"
-msgstr "單項節點"
+msgstr "解鎖節點"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Button Group"
-msgstr "添加到組"
+msgstr "按éµåˆ†çµ„"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "(Connecting From)"
-msgstr "連接..."
+msgstr "(連接自)"
#: editor/scene_tree_editor.cpp
msgid "Node configuration warning:"
-msgstr ""
+msgstr "節點組態設定警告:"
#: editor/scene_tree_editor.cpp
msgid ""
"Node has %s connection(s) and %s group(s).\n"
"Click to show signals dock."
msgstr ""
+"節點有 %s 連接與 %s 分組。\n"
+"點擊以顯示訊號 Dock。"
#: editor/scene_tree_editor.cpp
msgid ""
"Node has %s connection(s).\n"
"Click to show signals dock."
msgstr ""
+"節點有 %s 連接。\n"
+"點擊以顯示訊號 Dock。"
#: editor/scene_tree_editor.cpp
msgid ""
"Node is in %s group(s).\n"
"Click to show groups dock."
msgstr ""
+"節點ä½æ–¼ %s 個群組中。\n"
+"點擊以顯示群組 Dock。"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Open Script:"
-msgstr "開啟最近存å–"
+msgstr "開啟腳本:"
#: editor/scene_tree_editor.cpp
msgid ""
"Node is locked.\n"
"Click to unlock it."
msgstr ""
+"節點已鎖定。\n"
+"點擊以解鎖。"
#: editor/scene_tree_editor.cpp
msgid ""
"Children are not selectable.\n"
"Click to make selectable."
msgstr ""
+"å­ç¯€é»žä¸å¯é¸æ“‡ã€‚\n"
+"點擊以令其å¯è¢«é¸æ“‡ã€‚"
#: editor/scene_tree_editor.cpp
msgid "Toggle Visibility"
-msgstr ""
+msgstr "切æ›å¯è¦‹ï¼éš±è—"
#: editor/scene_tree_editor.cpp
msgid ""
"AnimationPlayer is pinned.\n"
"Click to unpin."
msgstr ""
+"已固定動畫播放器 (AnimationPlayer)。\n"
+"點擊以å–消固定。"
#: editor/scene_tree_editor.cpp
msgid "Invalid node name, the following characters are not allowed:"
-msgstr ""
+msgstr "無效的節點å稱,å稱ä¸å¯åŒ…å«ä¸‹åˆ—字元:"
#: editor/scene_tree_editor.cpp
msgid "Rename Node"
-msgstr ""
+msgstr "é‡æ–°å‘½å節點"
#: editor/scene_tree_editor.cpp
msgid "Scene Tree (Nodes):"
-msgstr "場景樹 (節點):"
+msgstr "場景樹(節點):"
#: editor/scene_tree_editor.cpp
msgid "Node Configuration Warning!"
-msgstr ""
+msgstr "節點組態設定警告ï¼"
#: editor/scene_tree_editor.cpp
msgid "Select a Node"
-msgstr ""
+msgstr "é¸æ“‡ä¸€å€‹ç¯€é»ž"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Path is empty."
-msgstr "網格是空的ï¼"
+msgstr "路徑為空。"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Filename is empty."
-msgstr "Sprite 是空的ï¼"
+msgstr "檔案å稱為空。"
#: editor/script_create_dialog.cpp
msgid "Path is not local."
-msgstr ""
+msgstr "路徑ä¸åœ¨æœ¬æ©Ÿã€‚"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid base path."
-msgstr "無效的路徑."
+msgstr "無效的基礎路徑。"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "A directory with the same name exists."
-msgstr "具有此å稱的檔或資料夾已存在。"
+msgstr "已有資料夾具有相åŒå稱。"
+
+#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr "檔案ä¸å­˜åœ¨ã€‚"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid extension."
-msgstr "必須使用有效的副檔å。"
+msgstr "無效的副檔å。"
#: editor/script_create_dialog.cpp
msgid "Wrong extension chosen."
-msgstr ""
+msgstr "é¸æ“‡äº†éŒ¯èª¤çš„副檔å。"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Error loading template '%s'"
-msgstr "載入場景時發生錯誤"
+msgstr "載入樣æ¿ã€Œ%sã€æ™‚發生錯誤"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Error - Could not create script in filesystem."
-msgstr "無法新增資料夾"
+msgstr "錯誤 - 無法在檔案系統中建立腳本。"
#: editor/script_create_dialog.cpp
msgid "Error loading script from %s"
-msgstr ""
+msgstr "自 %s 載入腳本時發生錯誤"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Overrides"
-msgstr "覆蓋"
+msgstr "複寫"
#: editor/script_create_dialog.cpp
msgid "N/A"
-msgstr ""
+msgstr "N/A"
#: editor/script_create_dialog.cpp
msgid "Open Script / Choose Location"
-msgstr ""
+msgstr "開啟腳本ï¼é¸æ“‡ä½ç½®"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Open Script"
-msgstr "開啟最近存å–"
+msgstr "開啟腳本"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "File exists, it will be reused."
-msgstr "檔案已經存在, è¦è¦†å¯«å—Ž?"
+msgstr "檔案已存在,將被é‡è¤‡ä½¿ç”¨ã€‚"
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr "無效的路徑。"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid class name."
-msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。"
+msgstr "無效的類型å稱。"
#: editor/script_create_dialog.cpp
msgid "Invalid inherited parent name or path."
-msgstr ""
+msgstr "繼承æ¯çš„å稱或路徑無效。"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Script path/name is valid."
-msgstr "動畫樹有效。"
+msgstr "å¯ç”¨çš„腳本路徑ï¼å稱。"
#: editor/script_create_dialog.cpp
msgid "Allowed: a-z, A-Z, 0-9, _ and ."
-msgstr ""
+msgstr "å¯ä½¿ç”¨ï¼ša-zã€A-Zã€0-9ã€_ ä»¥åŠ ."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Built-in script (into scene file)."
-msgstr "æ“作場景文件。"
+msgstr "內建腳本(到場景檔案中)。"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Will create a new script file."
-msgstr "創建新矩形。"
+msgstr "將建立一個新的腳本檔案。"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Will load an existing script file."
-msgstr "讀å–ç¾å­˜çš„ Bus é…置。"
+msgstr "將讀å–一個ç¾å­˜çš„腳本檔案。"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Script file already exists."
-msgstr "Autoload「%sã€å·²ç¶“存在!"
+msgstr "腳本檔案已存在。"
#: editor/script_create_dialog.cpp
msgid ""
"Note: Built-in scripts have some limitations and can't be edited using an "
"external editor."
-msgstr ""
+msgstr "注æ„:內置腳本有些é™åˆ¶ï¼Œä¸”無法使用外部編輯器來編輯。"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Class Name:"
-msgstr "Class:"
+msgstr "類別å稱:"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Template:"
-msgstr "移除範本"
+msgstr "樣æ¿ï¼š"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Built-in Script:"
-msgstr "開啟最近存å–"
+msgstr "內建腳本:"
#: editor/script_create_dialog.cpp
msgid "Attach Node Script"
-msgstr ""
+msgstr "附加節點腳本"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Remote "
-msgstr "移除"
+msgstr "é ç«¯ "
#: editor/script_editor_debugger.cpp
msgid "Bytes:"
-msgstr ""
+msgstr "ä½å…ƒçµ„:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Warning:"
-msgstr "警告"
+msgstr "警告:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Error:"
-msgstr "錯誤ï¼"
+msgstr "錯誤:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Error"
-msgstr "連接..."
+msgstr "C++ 錯誤"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Error:"
-msgstr "連接..."
+msgstr "C++ 錯誤:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Source"
-msgstr "資æº"
+msgstr "C++ 原始檔"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Source:"
-msgstr "資æº"
+msgstr "原始檔:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Source:"
-msgstr "資æº"
+msgstr "C++ 原始檔:"
#: editor/script_editor_debugger.cpp
msgid "Stack Trace"
-msgstr ""
+msgstr "堆疊回溯"
#: editor/script_editor_debugger.cpp
msgid "Errors"
-msgstr ""
+msgstr "錯誤"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Child process connected."
-msgstr "æ–·ç·š"
+msgstr "已連線至å­è™•ç†ç¨‹åºã€‚"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Copy Error"
-msgstr "連接..."
+msgstr "複製錯誤"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Video RAM"
-msgstr "影片記憶體"
+msgstr "視訊記憶體"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Skip Breakpoints"
-msgstr "刪除"
+msgstr "è·³éŽä¸­æ–·é»ž"
#: editor/script_editor_debugger.cpp
msgid "Inspect Previous Instance"
-msgstr ""
+msgstr "åµæŸ¥å‰ä¸€å€‹å¯¦é«”"
#: editor/script_editor_debugger.cpp
msgid "Inspect Next Instance"
-msgstr ""
+msgstr "åµæŸ¥ä¸‹ä¸€å€‹å¯¦é«”"
#: editor/script_editor_debugger.cpp
msgid "Stack Frames"
-msgstr ""
+msgstr "堆疊框"
#: editor/script_editor_debugger.cpp
msgid "Profiler"
-msgstr ""
+msgstr "分æžå·¥å…·"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Network Profiler"
-msgstr "輸出專案"
+msgstr "網路分æžå·¥å…·"
#: editor/script_editor_debugger.cpp
msgid "Monitor"
-msgstr ""
+msgstr "檢視程å¼"
#: editor/script_editor_debugger.cpp
msgid "Value"
msgstr "數值"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Monitors"
-msgstr "監看畫é¢"
+msgstr "監視程å¼"
#: editor/script_editor_debugger.cpp
msgid "Pick one or more items from the list to display the graph."
-msgstr ""
+msgstr "å­åˆ—表中é¸æ“‡ä¸€å€‹æˆ–多個項目以顯示圖表。"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "List of Video Memory Usage by Resource:"
-msgstr "影片記憶體使用容é‡åˆ—表(ä¾è³‡æºåˆ¥):"
+msgstr "ä¾æ“šè³‡æºåˆ—出視訊記憶體佔用:"
#: editor/script_editor_debugger.cpp
msgid "Total:"
msgstr "總計:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Export list to a CSV file"
-msgstr "輸出專案"
+msgstr "匯出列表至 CSV 檔案"
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
@@ -11392,11 +10888,11 @@ msgstr "資æºè·¯å¾‘"
#: editor/script_editor_debugger.cpp
msgid "Type"
-msgstr "é¡žåž‹"
+msgstr "型別"
#: editor/script_editor_debugger.cpp
msgid "Format"
-msgstr ""
+msgstr "æ ¼å¼"
#: editor/script_editor_debugger.cpp
msgid "Usage"
@@ -11407,41 +10903,36 @@ msgid "Misc"
msgstr "雜項"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Clicked Control:"
-msgstr "點擊控制:"
+msgstr "已點擊的 Control:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Clicked Control Type:"
-msgstr "點擊控制類型:"
+msgstr "已點擊的 Control 型別:"
#: editor/script_editor_debugger.cpp
msgid "Live Edit Root:"
-msgstr ""
+msgstr "å³æ™‚編輯根節點:"
#: editor/script_editor_debugger.cpp
msgid "Set From Tree"
-msgstr ""
+msgstr "自場景樹中設定"
#: editor/script_editor_debugger.cpp
msgid "Export measures as CSV"
-msgstr ""
+msgstr "匯出測é‡è³‡æ–™ç‚º CSV"
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Erase Shortcut"
-msgstr "æ·å¾‘"
+msgstr "清除快æ·éµ"
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Restore Shortcut"
-msgstr "æ·å¾‘"
+msgstr "é‡è¨­å¿«æ·éµ"
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Change Shortcut"
-msgstr "æ·å¾‘"
+msgstr "更改快æ·éµ"
#: editor/settings_config_dialog.cpp
msgid "Editor Settings"
@@ -11449,892 +10940,880 @@ msgstr "編輯器設定"
#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
-msgstr "æ·å¾‘"
+msgstr "å¿«æ·éµ"
#: editor/settings_config_dialog.cpp
msgid "Binding"
-msgstr ""
+msgstr "ç¶å®š"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
-msgstr "變更光æºåŠå¾‘"
+msgstr "更改光照åŠå¾‘"
#: editor/spatial_editor_gizmos.cpp
msgid "Change AudioStreamPlayer3D Emission Angle"
-msgstr ""
+msgstr "更改音訊串æµæ’­æ”¾å™¨ 3D (AudioStreamPlayer3D) 發射角"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Camera FOV"
-msgstr "變更é¡é ­è¦–野(FOV)"
+msgstr "更改相機視角"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Camera Size"
-msgstr "變更é¡é ­å°ºå¯¸"
+msgstr "更改相機尺寸"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Notifier AABB"
-msgstr ""
+msgstr "更改通知器 AABB"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Particles AABB"
-msgstr ""
+msgstr "æ›´æ”¹ç²’å­ AABB"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Change Probe Extents"
-msgstr "變更框型範åœ"
+msgstr "更改探é‡ç¯„åœ"
#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp
msgid "Change Sphere Shape Radius"
-msgstr "變更çƒåž‹åŠå¾‘"
+msgstr "更改çƒå½¢åŠå¾‘"
#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp
msgid "Change Box Shape Extents"
-msgstr "變更框型範åœ"
+msgstr "更改框形範åœ"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Radius"
-msgstr "變更楕圓體åŠå¾‘"
+msgstr "更改楕圓形åŠå¾‘"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Height"
-msgstr "變更楕圓體高度"
+msgstr "更改楕圓形高度"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Shape Radius"
-msgstr "變更楕圓體åŠå¾‘"
+msgstr "更改圓柱形åŠå¾‘"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Shape Height"
-msgstr "變更楕圓體高度"
+msgstr "更改圓柱形高度"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Ray Shape Length"
-msgstr ""
+msgstr "更改射線形長度"
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Radius"
-msgstr "變更光æºåŠå¾‘"
+msgstr "更改圓柱體åŠå¾‘"
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Height"
-msgstr "變更楕圓體高度"
+msgstr "更改圓柱體高度"
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Torus Inner Radius"
-msgstr "變更çƒåž‹åŠå¾‘"
+msgstr "更改環é¢å…§åŠå¾‘"
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Torus Outer Radius"
-msgstr "變更光æºåŠå¾‘"
+msgstr "更改環é¢å¤–åŠå¾‘"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Select the dynamic library for this entry"
-msgstr ""
+msgstr "é¸æ“‡è©²é …目使用的動態函å¼åº«"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Select dependencies of the library for this entry"
-msgstr ""
+msgstr "é¸æ“‡è©²é …目的函å¼åº«ç›¸ä¾æ€§"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
-#, fuzzy
msgid "Remove current entry"
-msgstr "移除"
+msgstr "移除目å‰çš„é …ç›®"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Double click to create a new entry"
-msgstr ""
+msgstr "點兩下以建立新項目"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Platform:"
-msgstr ""
+msgstr "å¹³å°ï¼š"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Platform"
-msgstr ""
+msgstr "å¹³å°"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dynamic Library"
-msgstr ""
+msgstr "動態函å¼åº«"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Add an architecture entry"
-msgstr ""
+msgstr "新增一個架構項目"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "GDNativeLibrary"
-msgstr ""
+msgstr "GDNative 函å¼åº«"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Enabled GDNative Singleton"
-msgstr ""
+msgstr "啟用 GDNative 單例"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
-#, fuzzy
msgid "Disabled GDNative Singleton"
-msgstr "ç¦æ­¢è‡ªå‹•æ›´æ–°"
+msgstr "ç¦ç”¨ GDNative 單例"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
-msgstr ""
+msgstr "函å¼åº«"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
-msgstr ""
+msgstr "函å¼åº«ï¼š "
#: modules/gdnative/register_types.cpp
msgid "GDNative"
-msgstr ""
+msgstr "GDNative"
#: modules/gdscript/gdscript_functions.cpp
-#, fuzzy
msgid "Step argument is zero!"
-msgstr "step引數為0!"
+msgstr "Step 引數為 0ï¼"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not a script with an instance"
-msgstr "éžç‚ºå–®ä¸€äº‹ä»¶è…³æœ¬"
+msgstr "腳本沒有實體"
#: modules/gdscript/gdscript_functions.cpp
-#, fuzzy
msgid "Not based on a script"
-msgstr "未ä¾æ“šè…³æœ¬"
+msgstr "éžåŸºæ–¼è…³æœ¬"
#: modules/gdscript/gdscript_functions.cpp
-#, fuzzy
msgid "Not based on a resource file"
-msgstr "未ä¾æ“šè³‡æºæª”案"
+msgstr "éžåŸºæ–¼è³‡æºæª”案"
#: modules/gdscript/gdscript_functions.cpp
-#, fuzzy
msgid "Invalid instance dictionary format (missing @path)"
-msgstr "無效的事件詞典格å¼(éºå¤± @path)"
+msgstr "無效的實體字典格å¼ï¼ˆç¼ºå°‘ @path)"
#: modules/gdscript/gdscript_functions.cpp
-#, fuzzy
msgid "Invalid instance dictionary format (can't load script at @path)"
-msgstr "無效的事件詞典格å¼(無法載入腳本 @path)"
+msgstr "無效的實體字典格å¼ï¼ˆç„¡æ³•è‡ª @path 載入腳本)"
#: modules/gdscript/gdscript_functions.cpp
-#, fuzzy
msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr "無效的事件詞典格å¼(無效的腳本 @path)"
+msgstr "無效的實體字典格å¼ï¼ˆä½æ–¼ @path 的腳本無效)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary (invalid subclasses)"
-msgstr ""
+msgstr "無效的實體字典(無效的å­é¡žåž‹ï¼‰"
#: modules/gdscript/gdscript_functions.cpp
msgid "Object can't provide a length."
-msgstr ""
+msgstr "物件無法æ供長度。"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Next Plane"
-msgstr "下個分é "
+msgstr "下一個平é¢"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Previous Plane"
-msgstr "上個分é "
+msgstr "上一個平é¢"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Plane:"
-msgstr ""
+msgstr "å¹³é¢ï¼š"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Floor"
-msgstr ""
+msgstr "下一個地æ¿"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Previous Floor"
-msgstr "上個分é "
+msgstr "上一個地æ¿"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Floor:"
-msgstr ""
+msgstr "地æ¿ï¼š"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Delete Selection"
-msgstr "複製所é¸"
+msgstr "網格地圖刪除所é¸ç¯„åœ"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Fill Selection"
-msgstr "複製所é¸"
+msgstr "網格地圖填充所é¸ç¯„åœ"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Paste Selection"
-msgstr "複製所é¸"
+msgstr "網格地圖貼上所é¸ç¯„åœ"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Paint"
-msgstr "專案設定"
+msgstr "網格地圖繪圖"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
-msgstr ""
+msgstr "網格地圖"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Snap View"
-msgstr ""
+msgstr "å¸é™„檢視"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Clip Disabled"
-msgstr "å·²åœç”¨"
+msgstr "剪è£å·²ç¦ç”¨"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Above"
-msgstr ""
+msgstr "剪è£ä¸Šæ–¹"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Below"
-msgstr ""
+msgstr "剪è£ä¸‹æ–¹"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit X Axis"
-msgstr ""
+msgstr "編輯 X 軸"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Y Axis"
-msgstr ""
+msgstr "編輯 Y 軸"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Z Axis"
-msgstr ""
+msgstr "編輯 Z 軸"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Rotate X"
-msgstr ""
+msgstr "以éŠæ¨™æ²¿ X 軸旋轉"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Rotate Y"
-msgstr ""
+msgstr "以éŠæ¨™æ²¿ Y 軸旋轉"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Rotate Z"
-msgstr ""
+msgstr "以éŠæ¨™æ²¿ Z 軸旋轉"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Back Rotate X"
-msgstr ""
+msgstr "以éŠæ¨™æ²¿ X 軸åå‘旋轉"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Back Rotate Y"
-msgstr ""
+msgstr "以éŠæ¨™æ²¿ Y 軸åå‘旋轉"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Back Rotate Z"
-msgstr ""
+msgstr "以éŠæ¨™æ²¿ Z 軸åå‘旋轉"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Clear Rotation"
-msgstr ""
+msgstr "清除éŠæ¨™æ—‹è½‰"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Paste Selects"
-msgstr "擦除é¸ä¸­"
+msgstr "貼上所é¸"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Clear Selection"
-msgstr "所有的é¸æ“‡"
+msgstr "清除所é¸"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Fill Selection"
-msgstr "所有的é¸æ“‡"
+msgstr "填充所é¸"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Settings"
-msgstr "專案設定"
+msgstr "網格地圖設定"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Pick Distance:"
-msgstr ""
+msgstr "é¸æ“‡è·é›¢ï¼š"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Filter meshes"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "éŽæ¿¾ç¶²æ ¼"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
-msgstr ""
+msgstr "æ供網格庫資æºäºˆè©²ç¶²æ ¼åœ°åœ–以使用其網格。"
#: modules/mono/csharp_script.cpp
msgid "Class name can't be a reserved keyword"
-msgstr ""
+msgstr "類別å稱ä¸èƒ½ç‚ºä¿ç•™é—œéµå­—"
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
-msgstr ""
+msgstr "內部異常堆疊回溯çµæŸ"
#: modules/recast/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
-msgstr "渲染NavMesh"
+msgstr "Bake 導航網格 (NavMesh)"
#: modules/recast/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
-msgstr ""
+msgstr "清除導航網格 (Navigation Mesh)。"
#: modules/recast/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
-msgstr ""
+msgstr "正在設定組態..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
-msgstr ""
+msgstr "正在計算網格大å°..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
-msgstr ""
+msgstr "正在建立 Heightfield..."
#: modules/recast/navigation_mesh_generator.cpp
-#, fuzzy
msgid "Marking walkable triangles..."
-msgstr "正在儲存變更..."
+msgstr "正在標記å¯ç§»å‹•çš„三角形..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
-msgstr ""
+msgstr "正在建構緊湊 Heightfield..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
-msgstr ""
+msgstr "正在建立å¯ç§»å‹•å€åŸŸ..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Partitioning..."
-msgstr ""
+msgstr "正在分割..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Creating contours..."
-msgstr ""
+msgstr "正在建立輪廓..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
-msgstr ""
+msgstr "正在建立多邊形網格 (Polymesh)..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
-msgstr ""
+msgstr "正在轉æ›ç‚ºåŽŸç”Ÿå°Žèˆªç¶²æ ¼ (Native Navigation Mesh)..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
-msgstr ""
+msgstr "導航網格 (Navigation Mesh) 產生器設定:"
#: modules/recast/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
-msgstr ""
+msgstr "正在解æžå¤šé‚Šå½¢..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Done!"
-msgstr ""
+msgstr "完æˆï¼"
#: modules/visual_script/visual_script.cpp
msgid ""
"A node yielded without working memory, please read the docs on how to yield "
"properly!"
-msgstr ""
+msgstr "節點在無工作記憶體的情æ³ä¸‹è¢«ç”¢ç”Ÿã€‚請閱讀說明文件以瞭解如何正確產生ï¼"
#: modules/visual_script/visual_script.cpp
msgid ""
"Node yielded, but did not return a function state in the first working "
"memory."
-msgstr ""
+msgstr "已產生節點,但未在最åˆçš„工作記憶體內回傳函å¼ç‹€æ…‹ã€‚"
#: modules/visual_script/visual_script.cpp
-#, fuzzy
msgid ""
"Return value must be assigned to first element of node working memory! Fix "
"your node please."
-msgstr "回傳值需被指定為é‹ç®—記憶體節點的第一è¦ç´ !請修正該節點。"
+msgstr "回傳值需被指定為é‹ç®—記憶體節點的第一個元素ï¼è«‹ä¿®æ­£è©²ç¯€é»žã€‚"
#: modules/visual_script/visual_script.cpp
-#, fuzzy
msgid "Node returned an invalid sequence output: "
-msgstr "節點回傳一個無效的連續輸出: "
+msgstr "節點回傳了一個無效的連續輸出: "
#: modules/visual_script/visual_script.cpp
msgid "Found sequence bit but not the node in the stack, report bug!"
-msgstr ""
+msgstr "發ç¾äº†é€£çºŒä½å…ƒ (Sequance Bit) 但並éžåœ¨å †ç–Šä¸­çš„節點,請回報該錯誤ï¼"
#: modules/visual_script/visual_script.cpp
msgid "Stack overflow with stack depth: "
-msgstr ""
+msgstr "堆疊深度的堆疊溢出: "
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Signal Arguments"
-msgstr ""
+msgstr "更改訊號引數"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Argument Type"
-msgstr ""
+msgstr "更改引數型別"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Argument name"
-msgstr ""
+msgstr "更改引數å稱"
#: modules/visual_script/visual_script_editor.cpp
msgid "Set Variable Default Value"
-msgstr ""
+msgstr "設定變數é è¨­å€¼"
#: modules/visual_script/visual_script_editor.cpp
msgid "Set Variable Type"
-msgstr ""
+msgstr "設定變數型別"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Input Port"
-msgstr "添加輸入"
+msgstr "新增輸入埠å£"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Output Port"
-msgstr "添加輸入"
+msgstr "新增輸出埠å£"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Override an existing built-in function."
-msgstr "無效å稱.ä¸èƒ½èˆ‡ç¾æœ‰çš„內置類型å稱沖çª."
+msgstr "複寫一個ç¾æœ‰çš„內建函å¼ã€‚"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new function."
-msgstr "創建新矩形。"
+msgstr "建立新函å¼ã€‚"
#: modules/visual_script/visual_script_editor.cpp
msgid "Variables:"
-msgstr ""
+msgstr "變數:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new variable."
-msgstr "創建新矩形。"
+msgstr "建立新變數。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Signals:"
-msgstr "訊號:"
+msgstr "訊號:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new signal."
-msgstr "創建新多邊形。"
+msgstr "建立一個新的訊號。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name is not a valid identifier:"
-msgstr ""
+msgstr "å稱ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„識別符:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name already in use by another func/var/signal:"
-msgstr ""
+msgstr "å稱已被用於å¦ä¸€å€‹å‡½å¼ï¼è®Šæ•¸ï¼ä¿¡è™Ÿï¼š"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Function"
-msgstr ""
+msgstr "é‡æ–°å‘½å函å¼"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Variable"
-msgstr ""
+msgstr "é‡æ–°å‘½å變數"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Signal"
-msgstr ""
+msgstr "é‡æ–°å‘½å訊號"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Function"
-msgstr ""
+msgstr "新增函å¼"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Delete input port"
-msgstr "刪除點"
+msgstr "刪除輸入埠å£"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Variable"
-msgstr ""
+msgstr "新增變數"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Signal"
-msgstr ""
+msgstr "新增訊號"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Input Port"
-msgstr "刪除點"
+msgstr "移除輸入埠å£"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Output Port"
-msgstr "刪除點"
+msgstr "移除輸出埠å£"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Expression"
-msgstr ""
+msgstr "更改表示å¼"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
-msgstr ""
+msgstr "更改視覺腳本 (VisualScript) 節點"
#: modules/visual_script/visual_script_editor.cpp
msgid "Duplicate VisualScript Nodes"
-msgstr ""
+msgstr "é‡è¤‡è¦–覺腳本 (VisualScript) 節點"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"æŒ‰ä½ %s 以拖移 Getter ç¯€é»žã€‚æŒ‰ä½ Shift 以拖移一個通用的簽章 (Signature)。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"æŒ‰ä½ Ctrl 以拖移 Getter ç¯€é»žã€‚æŒ‰ä½ Shift 以拖移一個通用的簽å (Signature)。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a simple reference to the node."
-msgstr ""
+msgstr "æŒ‰ä½ %s 以拖移一個簡單åƒç…§ (Simple Reference) 至該節點。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a simple reference to the node."
-msgstr ""
+msgstr "æŒ‰ä½ Ctrl 以拖移一個簡單åƒç…§ (Simple Reference) 至該節點。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a Variable Setter."
-msgstr ""
+msgstr "æŒ‰ä½ %s 以拖移一個變數 Setter 節點。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Variable Setter."
-msgstr ""
+msgstr "æŒ‰ä½ Ctrl 以拖動一個變數 Setter 節點。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Preload Node"
-msgstr ""
+msgstr "新增餘載 (Preload) 節點"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
-msgstr ""
+msgstr "自樹中新增節點"
#: modules/visual_script/visual_script_editor.cpp
msgid ""
"Can't drop properties because script '%s' is not used in this scene.\n"
"Drop holding 'Shift' to just copy the signature."
msgstr ""
+"由於「%sã€æœªåœ¨è©²å ´æ™¯å…§ä½¿ç”¨ï¼Œç„¡æ³•æ‹–移屬性。\n"
+"按ä½ã€ŒShiftã€æ‹–移以複製簽å (Signature)。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Getter Property"
-msgstr ""
+msgstr "新增 Getter 屬性"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Setter Property"
-msgstr ""
+msgstr "新增 Setter 屬性"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Base Type"
-msgstr "變更é¡é ­å°ºå¯¸"
+msgstr "更改基礎型別"
#: modules/visual_script/visual_script_editor.cpp
msgid "Move Node(s)"
-msgstr ""
+msgstr "移動節點"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Node"
-msgstr ""
+msgstr "移除視覺腳本 (VisualScript) 節點"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Nodes"
-msgstr "連接..."
+msgstr "連接節點"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Disconnect Nodes"
-msgstr "連接..."
+msgstr "斷開節點連接"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Data"
-msgstr "連接..."
+msgstr "連接節點資料"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Sequence"
-msgstr "連接..."
+msgstr "連接節點åºåˆ—"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
-msgstr ""
+msgstr "腳本已有函å¼ã€Œ%sã€"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Input Value"
-msgstr ""
+msgstr "更改輸入值"
#: modules/visual_script/visual_script_editor.cpp
msgid "Resize Comment"
-msgstr ""
+msgstr "調整註解尺寸"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
-msgstr ""
+msgstr "無法複製函å¼ç¯€é»žã€‚"
#: modules/visual_script/visual_script_editor.cpp
msgid "Clipboard is empty!"
-msgstr ""
+msgstr "剪貼簿為空ï¼"
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste VisualScript Nodes"
-msgstr ""
+msgstr "貼上視覺腳本 (VisualScript) 節點"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't create function with a function node."
-msgstr ""
+msgstr "無法通éŽå‡½å¼ç¯€é»žå»ºç«‹å‡½å¼ã€‚"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't create function of nodes from nodes of multiple functions."
-msgstr ""
+msgstr "無法自多個函å¼ç¯€é»žå»ºç«‹å‡½å¼ç¯€é»žã€‚"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select at least one node with sequence port."
-msgstr ""
+msgstr "é¸æ“‡è‡³å°‘一個有åºåˆ—埠å£çš„節點。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Try to only have one sequence input in selection."
-msgstr ""
+msgstr "è«‹åªé¸æ“‡ä¸€å€‹åºåˆ—輸入。"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create Function"
-msgstr "創建輪廓"
+msgstr "建立函å¼"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
-msgstr ""
+msgstr "移除函å¼"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Variable"
-msgstr ""
+msgstr "移除變數"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Variable:"
-msgstr ""
+msgstr "編輯變數:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Signal"
-msgstr ""
+msgstr "移除訊號"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Signal:"
-msgstr ""
+msgstr "編輯訊號:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Make Tool:"
-msgstr ""
+msgstr "製作工具:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Members:"
-msgstr ""
+msgstr "æˆå“¡ï¼š"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Base Type:"
-msgstr "變更é¡é ­å°ºå¯¸"
+msgstr "更改基本型別:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Nodes..."
-msgstr "添加節點..。"
+msgstr "新增節點..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function..."
-msgstr "轉到函數…"
+msgstr "新增函å¼â€¦"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "function_name"
-msgstr "函數:"
+msgstr "function_name"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit its graph."
-msgstr ""
+msgstr "é¸æ“‡æˆ–建立一個函å¼ä»¥ç·¨è¼¯å…¶åœ–表。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
-msgstr ""
+msgstr "刪除所é¸"
#: modules/visual_script/visual_script_editor.cpp
msgid "Find Node Type"
-msgstr ""
+msgstr "尋找節點型別"
#: modules/visual_script/visual_script_editor.cpp
msgid "Copy Nodes"
-msgstr ""
+msgstr "複製節點"
#: modules/visual_script/visual_script_editor.cpp
msgid "Cut Nodes"
-msgstr ""
+msgstr "剪下節點"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Function"
-msgstr "函數:"
+msgstr "產生函å¼"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Refresh Graph"
-msgstr "é‡æ–°æ•´ç†"
+msgstr "é‡æ–°æ•´ç†åœ–表"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Edit Member"
-msgstr "éŽæ¿¾æª”案..."
+msgstr "編輯æˆå“¡"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
-msgstr ""
+msgstr "輸入型別éžå¯è¿­ä»£åž‹åˆ¥ï¼š "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid"
-msgstr ""
+msgstr "迭代器已ä¸å¯ç”¨"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid: "
-msgstr ""
+msgstr "迭代器已ä¸å¯ç”¨ï¼š "
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name."
-msgstr ""
+msgstr "無效的索引屬性å稱。"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
-msgstr ""
+msgstr "基礎物件ä¸æ˜¯ä¸€å€‹ç¯€é»žï¼"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Path does not lead Node!"
-msgstr ""
+msgstr "路徑未指å‘節點ï¼"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr ""
+msgstr "無效的索引屬性å稱「%sã€ï¼Œæ–¼ç¯€é»žã€Œ%sã€ã€‚"
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
-msgstr ""
+msgstr ": 無效的引數型別 : "
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid arguments: "
-msgstr ""
+msgstr ": 無效的引數 : "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableGet not found in script: "
-msgstr ""
+msgstr "腳本中未找到 VariableGet(å–得變數): "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableSet not found in script: "
-msgstr ""
+msgstr "腳本中未找到 VariableSet(設定變數): "
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
-msgstr ""
+msgstr "自定節點沒有 _step() 方法,無法產生圖表。"
#: modules/visual_script/visual_script_nodes.cpp
msgid ""
"Invalid return value from _step(), must be integer (seq out), or string "
"(error)."
-msgstr ""
+msgstr "_step() 的回傳值無效,必須為整數 (Seq Out) 或字串 (Error)。"
#: modules/visual_script/visual_script_property_selector.cpp
-#, fuzzy
msgid "Search VisualScript"
-msgstr "æœå°‹å¹«åŠ©"
+msgstr "æœå°‹è¦–覺腳本 (VisualScript)"
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Get %s"
-msgstr ""
+msgstr "å–å¾— %s"
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
-msgstr ""
+msgstr "設定 %s"
#: platform/android/export/export.cpp
msgid "Package name is missing."
-msgstr ""
+msgstr "缺少套件å稱。"
#: platform/android/export/export.cpp
msgid "Package segments must be of non-zero length."
-msgstr ""
+msgstr "套件片段 (Segment) 的長度ä¸å¯ç‚º 0。"
#: platform/android/export/export.cpp
msgid "The character '%s' is not allowed in Android application package names."
-msgstr ""
+msgstr "Android 應用程å¼å¥—件å稱ä¸å¯ä½¿ç”¨å­—元「%sã€ã€‚"
#: platform/android/export/export.cpp
msgid "A digit cannot be the first character in a package segment."
-msgstr ""
+msgstr "套件片段 (Segment) 的第一個字元ä¸å¯ç‚ºæ•¸å­—。"
#: platform/android/export/export.cpp
msgid "The character '%s' cannot be the first character in a package segment."
-msgstr ""
+msgstr "套件片段 (Segment) 的第一個字元ä¸å¯ç‚ºã€Œ%sã€ã€‚"
#: platform/android/export/export.cpp
msgid "The package must have at least one '.' separator."
-msgstr ""
+msgstr "套件必須至少有一個「.ã€åˆ†éš”字元。"
#: platform/android/export/export.cpp
msgid "Select device from the list"
-msgstr "從清單中é¸æ“‡è¨­å‚™"
+msgstr "自清單中é¸æ“‡è£ç½®"
#: platform/android/export/export.cpp
msgid "ADB executable not configured in the Editor Settings."
-msgstr ""
+msgstr "尚未於編輯器設定中設定 ADB å¯åŸ·è¡Œæª”。"
#: platform/android/export/export.cpp
msgid "OpenJDK jarsigner not configured in the Editor Settings."
-msgstr ""
+msgstr "尚未於編輯器設定中設定 OpenJDK Jarsigner。"
#: platform/android/export/export.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
-msgstr ""
+msgstr "尚未於編輯器設定或 Preset 中設定除錯鑰匙圈 (Keystore)。"
+
+#: platform/android/export/export.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr "釋出 Keystore 中ä¸æ­£ç¢ºä¹‹çµ„態設定至匯出 Preset。"
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
-msgstr ""
+msgstr "自定建構需è¦æœ‰åœ¨ç·¨è¼¯å™¨è¨­å®šä¸­è¨­å®šä¸€å€‹æœ‰æ•ˆçš„ Android SDK ä½ç½®ã€‚"
#: platform/android/export/export.cpp
msgid "Invalid Android SDK path for custom build in Editor Settings."
-msgstr ""
+msgstr "編輯器設定中用於自定義設定之 Android SDK 路徑無效。"
#: platform/android/export/export.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
-msgstr ""
+msgstr "å°šæœªæ–¼å°ˆæ¡ˆä¸­å®‰è£ Android 建構樣æ¿ã€‚請先於專案目錄中進行安è£ã€‚"
#: platform/android/export/export.cpp
msgid "Invalid public key for APK expansion."
-msgstr ""
+msgstr "無效的 APK Expansion 公鑰。"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Invalid package name:"
-msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。"
+msgstr "無效的套件å稱:"
+
+#: platform/android/export/export.cpp
+msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+msgstr ""
+"「andoird/modulesã€å°ˆæ¡ˆè¨­å®šä¸­åŒ…å«äº†ç„¡æ•ˆçš„「GodotPaymentV3ã€æ¨¡çµ„(更改於 "
+"Godot 3.2.2)。\n"
+
+#: platform/android/export/export.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr "「使用自定建構ã€å¿…須啟用以使用本外掛。"
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+"\"."
+msgstr ""
+"「Degrees Of Freedomã€ï¼ˆè‡ªç”±è§’度)僅å¯åœ¨ã€ŒXr Modeã€ï¼ˆXR 模å¼ï¼‰è¨­ç‚ºã€ŒOculus "
+"Mobile VRã€æ™‚å¯ç”¨ã€‚"
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"「Hand Trackingã€ï¼ˆæ‰‹éƒ¨è¿½è¹¤ï¼‰åƒ…å¯åœ¨ã€ŒXr Modeã€ï¼ˆXR 模å¼ï¼‰è¨­ç‚ºã€ŒOculus Mobile "
+"VRã€æ™‚å¯ç”¨ã€‚"
+
+#: platform/android/export/export.cpp
+msgid ""
+"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
+msgstr ""
+"「Focus Awarenessã€ï¼ˆæ高關注度)僅å¯åœ¨ã€ŒXr Modeã€ï¼ˆXR 模å¼ï¼‰è¨­ç‚ºã€ŒOculus "
+"Mobile VRã€æ™‚å¯ç”¨ã€‚"
#: platform/android/export/export.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
+"嘗試自自定建構樣æ¿é€²è¡Œå»ºæ§‹ï¼Œä½†ç„¡ç‰ˆæœ¬è³‡è¨Šå¯ç”¨ã€‚請自「專案ã€é¸å–®ä¸­é‡æ–°å®‰è£ã€‚"
#: platform/android/export/export.cpp
msgid ""
@@ -12343,155 +11822,150 @@ msgid ""
" Godot Version: %s\n"
"Please reinstall Android build template from 'Project' menu."
msgstr ""
+"Android 建構版本ä¸ç¬¦åˆï¼š\n"
+" 已安è£çš„樣æ¿ï¼š%s\n"
+" Godot 版本:%s\n"
+"請自「專案ã€ç›®éŒ„中é‡æ–°å®‰è£ Android 建構樣æ¿ã€‚"
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
-msgstr ""
+msgstr "建構 Android 專案(Gradle)"
#: platform/android/export/export.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
+"建構 Android 專案失敗,請檢查輸出以確èªéŒ¯èª¤ã€‚\n"
+"也å¯ä»¥ç€è¦½ docs.godotengine.org 以ç€è¦½ Android 建構說明文件。"
#: platform/android/export/export.cpp
msgid "No build apk generated at: "
-msgstr ""
+msgstr "無建構 APK 產生於: "
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
-msgstr ""
+msgstr "缺少識別符。"
#: platform/iphone/export/export.cpp
msgid "The character '%s' is not allowed in Identifier."
-msgstr ""
+msgstr "字元「%sã€ä¸å¯ç”¨æ–¼è­˜åˆ¥ç¬¦ä¸­ã€‚"
#: platform/iphone/export/export.cpp
msgid "App Store Team ID not specified - cannot configure the project."
-msgstr ""
+msgstr "尚未設定 App Store Team ID - 無法設定專案。"
#: platform/iphone/export/export.cpp
-#, fuzzy
msgid "Invalid Identifier:"
-msgstr "無效的字體大å°ã€‚"
+msgstr "無效的識別符:"
#: platform/iphone/export/export.cpp
msgid "Required icon is not specified in the preset."
-msgstr ""
+msgstr "必須在 Preset 中指定必填圖示。"
#: platform/javascript/export/export.cpp
msgid "Stop HTTP Server"
-msgstr ""
+msgstr "åœæ­¢ HTTP 伺æœå™¨"
#: platform/javascript/export/export.cpp
msgid "Run in Browser"
-msgstr ""
+msgstr "在ç€è¦½å™¨ä¸­åŸ·è¡Œ"
#: platform/javascript/export/export.cpp
msgid "Run exported HTML in the system's default browser."
-msgstr ""
+msgstr "在系統的é è¨­ç€è¦½å™¨ä¸­åŸ·è¡Œå·²åŒ¯å‡ºçš„ HTML。"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not write file:"
-msgstr "無法新增資料夾"
+msgstr "無法寫入檔案:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not open template for export:"
-msgstr "無法新增資料夾"
+msgstr "無法開啟樣æ¿ä»¥è¼¸å‡ºï¼š"
#: platform/javascript/export/export.cpp
msgid "Invalid export template:"
-msgstr ""
+msgstr "無效的輸出樣æ¿ï¼š"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read custom HTML shell:"
-msgstr "無法新增資料夾"
+msgstr "無法讀å–自定 HTML Shell:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read boot splash image file:"
-msgstr "無法新增資料夾"
+msgstr "無法讀å–å•Ÿå‹•ç•«é¢åœ–檔:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Using default boot splash image."
-msgstr "無法新增資料夾"
+msgstr "使用é è¨­å•Ÿå‹•ç•«é¢åœ–檔。"
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid package short name."
-msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。"
+msgstr "無效的套件段å稱。"
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid package unique name."
-msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。"
+msgstr "無效的套件唯一å稱。"
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid package publisher display name."
-msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。"
+msgstr "無效的套件發佈者顯示å稱。"
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid product GUID."
-msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。"
+msgstr "ç„¡æ•ˆçš„ç”¢å“ GUID。"
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid publisher GUID."
-msgstr "無效的路徑"
+msgstr "無效的發佈者 GUID。"
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid background color."
-msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。"
+msgstr "無效的背景é¡è‰²ã€‚"
#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "無效的商店 LOGO 圖片尺寸(需為 50x50)。"
#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
+msgstr "無效的矩形 44x44 LOGO 圖片尺寸(需為 44x44)。"
#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
+msgstr "無效的矩形 71x71 LOGO 圖片尺寸(需為 71x71)。"
#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
+msgstr "無效的矩形 150x150 LOGO 圖片尺寸(需為 150x150)。"
#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
+msgstr "無效的矩形 310x310 LOGO 圖片尺寸(需為 310x310)。"
#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
+msgstr "無效的寬 310x150 LOGO 圖片尺寸(需為 310x150)。"
#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr ""
+msgstr "無效的啟動畫é¢åœ–片尺寸(應為 620x300)。"
#: scene/2d/animated_sprite.cpp
-#, fuzzy
msgid ""
"A SpriteFrames resource must be created or set in the \"Frames\" property in "
"order for AnimatedSprite to display frames."
-msgstr "SpriteFrames資æºå¿…須在Frames屬性中被創建或設置æ‰èƒ½å¤ é¡¯ç¤ºå‹•ç•«æ ¼ã€‚"
+msgstr ""
+"必須先為「Framesã€å±¬æ€§å»ºç«‹æˆ–設定 SpriteFrames 資æºä»¥ä»¤ AnimatedSprite 顯示影"
+"格。"
#: scene/2d/canvas_modulate.cpp
msgid ""
"Only one visible CanvasModulate is allowed per scene (or set of instanced "
"scenes). The first created one will work, while the rest will be ignored."
msgstr ""
-"æ¯å€‹å ´æ™¯ä¸­åƒ…å…許一個å¯è¦‹çš„CanvasModulate,åªæœ‰ç¬¬ä¸€å€‹CanvasModulate會有作用,"
-"其餘的將被忽略。"
+"æ¯å€‹å ´æ™¯ï¼ˆæˆ–實體化的場景集)中僅å…許一個å¯è¦‹çš„ CanvasModulate。åªæœ‰ç¬¬ä¸€å€‹å»ºç«‹"
+"的 CanvasModulate 有用,其餘的將被忽略。"
#: scene/2d/collision_object_2d.cpp
msgid ""
@@ -12499,6 +11973,9 @@ msgid ""
"Consider adding a CollisionShape2D or CollisionPolygon2D as a child to "
"define its shape."
msgstr ""
+"該節點無形狀,故無法與其他物件碰撞或互動。\n"
+"請考慮新增一個 CollisionShape2D 或 CollisionPolygon2D 為其å­ç¯€é»žä»¥å®šç¾©å…¶å½¢"
+"狀。"
#: scene/2d/collision_polygon_2d.cpp
msgid ""
@@ -12506,12 +11983,13 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
-"CollisionPolygon2Dåªèƒ½ç‚ºCollisionObject2Dè¡ç”Ÿçš„節點æ供碰撞形狀資訊,請將其使"
-"用於Area2Dã€StaticBody2Dã€RigidBody2Dã€KinematicBody2D這類的節點下。"
+"CollisionPolygon2D åªèƒ½ç‚º CollisionObject2D è¡ç”Ÿçš„節點æ供碰撞形狀資訊。請僅"
+"æ–¼ Area2Dã€StaticBody2Dã€RigidBody2Dã€KinematicBody2D…等節點下作為å­ç¯€é»žä½¿"
+"用。"
#: scene/2d/collision_polygon_2d.cpp
msgid "An empty CollisionPolygon2D has no effect on collision."
-msgstr "空白的CollisionPolygon2Dä¸èµ·ç¢°æ’žåµæ¸¬çš„作用。"
+msgstr "空白的 CollisionPolygon2D ä¸æœƒç”¢ç”Ÿä»»ä½•ç¢°æ’žæ•ˆæžœã€‚"
#: scene/2d/collision_shape_2d.cpp
msgid ""
@@ -12519,54 +11997,59 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
-"CollisionShape2Dåªèƒ½ç‚ºCollisionObject2Dè¡ç”Ÿçš„節點æ供碰撞形狀資訊,請將其使用"
-"æ–¼Area2Dã€StaticBody2Dã€RigidBody2Dã€KinematicBody2D這類的節點下。"
+"CollisionShape2D åªèƒ½ç‚º CollisionObject2D è¡ç”Ÿçš„節點æ供碰撞形狀資訊。請僅於 "
+"Area2Dã€StaticBody2Dã€RigidBody2Dã€KinematicBody2D…等節點下作為å­ç¯€é»žä½¿ç”¨ä»¥æ"
+"供形狀。"
#: scene/2d/collision_shape_2d.cpp
msgid ""
"A shape must be provided for CollisionShape2D to function. Please create a "
"shape resource for it!"
-msgstr "CollisionShape2D必須被賦予形狀æ‰èƒ½é‹ä½œï¼Œè«‹ç‚ºå®ƒå»ºç«‹å€‹å½¢ç‹€å§ï¼"
+msgstr "CollisionShape2D 必須被賦予形狀æ‰èƒ½é‹ä½œã€‚請先建立形狀ï¼"
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
+"CPUParticles2D 動畫需è¦ä½¿ç”¨æœ‰å•Ÿç”¨ã€ŒParticles Animation(粒å­å‹•ç•«ï¼‰ã€çš„ "
+"CanvasItemMaterial。"
#: scene/2d/light_2d.cpp
-#, fuzzy
msgid ""
"A texture with the shape of the light must be supplied to the \"Texture\" "
"property."
-msgstr "光照形狀的æ質必須被賦與在æ質的屬性中。"
+msgstr "有光照形狀的紋ç†å¿…é ˆæ供「紋ç†ã€å±¬æ€§ã€‚"
#: scene/2d/light_occluder_2d.cpp
msgid ""
"An occluder polygon must be set (or drawn) for this occluder to take effect."
-msgstr "æ­¤é®å…‰é«”必須被建立或設置é®è”½å½¢ç‹€æ‰èƒ½ç™¼æ®é®è”½ä½œç”¨ã€‚"
+msgstr "該é®å…‰é«”å¿…é ˆè¦æœ‰è¨­å®šï¼ˆæˆ–繪製)é®å…‰é«”形狀æ‰æœƒæœ‰ä½œç”¨ã€‚"
#: scene/2d/light_occluder_2d.cpp
-#, fuzzy
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
-msgstr "æ­¤é®å…‰é«”沒有被賦予形狀,請繪製一個å§ï¼"
+msgstr "é®å…‰é«”ç„¡é®å…‰é«”多邊形。請先繪製一個多邊形。"
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
"Please set a property or draw a polygon."
msgstr ""
+"必須先在該節點上設定或建立 NavigationPolygon æ‰å¯ä»¥ä½¿ç”¨ã€‚請設定一個屬性或繪製"
+"多邊形。"
#: scene/2d/navigation_polygon.cpp
msgid ""
"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
"node. It only provides navigation data."
msgstr ""
+"NavigationPolygonInstance 必須是 Navigation2D 節點的å­ç´šæˆ–次å­ç´šã€‚其僅æ供導"
+"航資料。"
#: scene/2d/parallax_layer.cpp
msgid ""
"ParallaxLayer node only works when set as child of a ParallaxBackground node."
-msgstr ""
+msgstr "ParallaxLayer 節點僅在當其被設為 ParallaxBackground çš„å­ç¯€é»žæ™‚有效。"
#: scene/2d/particles_2d.cpp
msgid ""
@@ -12574,22 +12057,24 @@ msgid ""
"Use the CPUParticles2D node instead. You can use the \"Convert to "
"CPUParticles\" option for this purpose."
msgstr ""
+"GLES2 視訊驅動程å¼ç›®å‰ä¸æ”¯æ´åŸºæ–¼ GPU çš„ç²’å­ã€‚\n"
+"請改為使用 CPUParticles2D 節點。你å¯ä»¥ä½¿ç”¨ã€Œè½‰æ›ç‚º CPUParticlesã€é¸é …。"
#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
msgid ""
"A material to process the particles is not assigned, so no behavior is "
"imprinted."
-msgstr ""
+msgstr "尚未指定è¦è™•ç†ç²’å­çš„æ料,故未產生任何行為。"
#: scene/2d/particles_2d.cpp
msgid ""
"Particles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
-msgstr ""
+msgstr "Particles2D 動畫需è¦ä½¿ç”¨é–‹å•Ÿäº†ã€Œç²’å­å‹•ç•«ã€çš„ CanvasItemMaterial。"
#: scene/2d/path_2d.cpp
msgid "PathFollow2D only works when set as a child of a Path2D node."
-msgstr ""
+msgstr "PathFollow2D 僅在其為 Path2D çš„å­ç¯€é»žæ™‚有效。"
#: scene/2d/physics_body_2d.cpp
msgid ""
@@ -12597,91 +12082,94 @@ msgid ""
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"(在 Character 或 Rigid Mode 下)更改 RigidBody2D 的大å°å°‡æœƒåœ¨åŸ·è¡Œæ™‚被物ç†å¼•"
+"擎複寫。\n"
+"請改為修改其å­ç¯€é»žçš„碰撞形狀之大å°ã€‚"
#: scene/2d/remote_transform_2d.cpp
msgid "Path property must point to a valid Node2D node to work."
-msgstr ""
+msgstr "路徑屬性必須指å‘一個有效的 Node2D æ‰å¯ç”¨ã€‚"
#: scene/2d/skeleton_2d.cpp
msgid "This Bone2D chain should end at a Skeleton2D node."
-msgstr ""
+msgstr "該 Bone2D éˆå¿…須以 Skeleton2D 節點çµå°¾ã€‚"
#: scene/2d/skeleton_2d.cpp
msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node."
-msgstr ""
+msgstr "Bone2D 僅在其為 Skeleton2D 或å¦ä¸€å€‹ Bone2D çš„å­ç¯€é»žæ™‚有效。"
#: scene/2d/skeleton_2d.cpp
msgid ""
"This bone lacks a proper REST pose. Go to the Skeleton2D node and set one."
-msgstr ""
+msgstr "該骨骼缺少é©ç•¶çš„ REST 姿勢。請跳至 Skeleton2D 節點並進行設定。"
#: scene/2d/tile_map.cpp
-#, fuzzy
msgid ""
"TileMap with Use Parent on needs a parent CollisionObject2D to give shapes "
"to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, "
"KinematicBody2D, etc. to give them a shape."
msgstr ""
-"CollisionShape2Dåªèƒ½ç‚ºCollisionObject2Dè¡ç”Ÿçš„節點æ供碰撞形狀資訊,請將其使用"
-"æ–¼Area2Dã€StaticBody2Dã€RigidBody2Dã€KinematicBody2D這類的節點下。"
+"CollisionShape2D åªèƒ½ç‚º CollisionObject2D è¡ç”Ÿçš„節點æ供碰撞形狀資訊。請將其"
+"設為 Area2Dã€StaticBody2Dã€RigidBody2Dã€KinematicBody2D… çš„å­ç¯€é»žä»¥è³¦äºˆå…¶å½¢"
+"狀。"
#: scene/2d/visibility_notifier_2d.cpp
msgid ""
"VisibilityEnabler2D works best when used with the edited scene root directly "
"as parent."
-msgstr ""
+msgstr "VisibilityEnabler2D 在直接作為已編輯場景的根節點的æ¯ç´šç¯€é»žæ™‚效果最佳。"
#: scene/3d/arvr_nodes.cpp
msgid "ARVRCamera must have an ARVROrigin node as its parent."
-msgstr ""
+msgstr "ARVRCamera 必須有 ARVROrigin 節點作為æ¯ç¯€é»žã€‚"
#: scene/3d/arvr_nodes.cpp
msgid "ARVRController must have an ARVROrigin node as its parent."
-msgstr ""
+msgstr "ARVRController 必須有 ARVROrigin 節點作為æ¯ç¯€é»žã€‚"
#: scene/3d/arvr_nodes.cpp
msgid ""
"The controller ID must not be 0 or this controller won't be bound to an "
"actual controller."
-msgstr ""
+msgstr "控制器 ID ä¸å¯ç‚º 0,å¦å‰‡è©²æŽ§åˆ¶å™¨å°‡ä¸æœƒç¶å®šè‡³å¯¦éš›çš„控制器。"
#: scene/3d/arvr_nodes.cpp
msgid "ARVRAnchor must have an ARVROrigin node as its parent."
-msgstr ""
+msgstr "ARVRAnchor 必須有 ARVROrigin 節點作為æ¯ç¯€é»žã€‚"
#: scene/3d/arvr_nodes.cpp
msgid ""
"The anchor ID must not be 0 or this anchor won't be bound to an actual "
"anchor."
-msgstr ""
+msgstr "錨點 ID ä¸å¯ç‚º 0,å¦å‰‡è©²éŒ¨é»žå°‡ä¸æœƒè¢«ç¶å®šè‡³å¯¦éš›çš„錨點。"
#: scene/3d/arvr_nodes.cpp
msgid "ARVROrigin requires an ARVRCamera child node."
-msgstr ""
+msgstr "ARVROrigin 必須有一個 ARVRCamera å­ç¯€é»žã€‚"
#: scene/3d/baked_lightmap.cpp
msgid "%d%%"
-msgstr ""
+msgstr "%d%%"
#: scene/3d/baked_lightmap.cpp
msgid "(Time Left: %d:%02d s)"
-msgstr ""
+msgstr "(剩餘時間:%d:%02d 秒)"
#: scene/3d/baked_lightmap.cpp
msgid "Plotting Meshes: "
-msgstr ""
+msgstr "正在繪製網格: "
#: scene/3d/baked_lightmap.cpp
msgid "Plotting Lights:"
-msgstr ""
+msgstr "正在繪製光照:"
#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
msgid "Finishing Plot"
-msgstr ""
+msgstr "繪製完æˆ"
#: scene/3d/baked_lightmap.cpp
msgid "Lighting Meshes: "
-msgstr ""
+msgstr "正在照明網格: "
#: scene/3d/collision_object.cpp
msgid ""
@@ -12689,6 +12177,8 @@ msgid ""
"Consider adding a CollisionShape or CollisionPolygon as a child to define "
"its shape."
msgstr ""
+"該節點沒有形狀,故無法與其他物件碰撞或互動。\n"
+"請考慮新增一個 CollisionShape 或 CollisionPolygon 作為其å­ç¯€é»žä»¥å®šç¾©å…¶å½¢ç‹€ã€‚"
#: scene/3d/collision_polygon.cpp
msgid ""
@@ -12696,10 +12186,12 @@ msgid ""
"CollisionObject derived node. Please only use it as a child of Area, "
"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
msgstr ""
+"CollisionPolygon åªèƒ½ç‚º CollisionObject è¡ç”Ÿçš„節點æ供碰撞形狀資訊。請僅於 "
+"Areaã€StaticBodyã€RigidBodyã€KinematicBody…等節點下作為å­ç¯€é»žä½¿ç”¨ã€‚"
#: scene/3d/collision_polygon.cpp
msgid "An empty CollisionPolygon has no effect on collision."
-msgstr ""
+msgstr "空白的 CollisionPolygon 節點將ä¸æœƒç”¢ç”Ÿç¢°æ’žæ•ˆæžœã€‚"
#: scene/3d/collision_shape.cpp
msgid ""
@@ -12707,58 +12199,65 @@ msgid ""
"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
"KinematicBody, etc. to give them a shape."
msgstr ""
+"CollisionShape åªèƒ½ç‚º CollisionObject è¡ç”Ÿçš„節點æ供碰撞形狀資訊。請僅於 "
+"Areaã€StaticBodyã€RigidBodyã€KinematicBody…等節點下作為å­ç¯€é»žä½¿ç”¨ã€‚"
#: scene/3d/collision_shape.cpp
-#, fuzzy
msgid ""
"A shape must be provided for CollisionShape to function. Please create a "
"shape resource for it."
-msgstr "CollisionShape2D必須被賦予形狀æ‰èƒ½é‹ä½œï¼Œè«‹ç‚ºå®ƒå»ºç«‹å€‹å½¢ç‹€å§ï¼"
+msgstr "CollisionShape 必須被賦予形狀æ‰èƒ½é‹ä½œã€‚請先建立形狀。"
#: scene/3d/collision_shape.cpp
msgid ""
"Plane shapes don't work well and will be removed in future versions. Please "
"don't use them."
-msgstr ""
+msgstr "å¹³é¢å½¢ç‹€çš„é‹ä½œä¸å¤ªæ­£å¸¸ï¼Œä¸”將在未來的版本移除。請勿使用。"
#: scene/3d/collision_shape.cpp
msgid ""
"ConcavePolygonShape doesn't support RigidBody in another mode than static."
-msgstr ""
+msgstr "ConcavePolygonShape ä¸æ”¯æ´éœæ…‹æ¨¡å¼ä»¥å¤–çš„ RigidBody。"
#: scene/3d/cpu_particles.cpp
msgid "Nothing is visible because no mesh has been assigned."
-msgstr ""
+msgstr "由於尚未指定網格,未顯示任何æ±è¥¿ã€‚"
#: scene/3d/cpu_particles.cpp
msgid ""
"CPUParticles animation requires the usage of a SpatialMaterial whose "
"Billboard Mode is set to \"Particle Billboard\"."
msgstr ""
+"CPUParticles 動畫需è¦ä½¿ç”¨ Billboard Mode 為「Particle Billboardã€çš„ "
+"SpatialMaterial。"
#: scene/3d/gi_probe.cpp
msgid "Plotting Meshes"
-msgstr ""
+msgstr "正在繪製網格"
#: scene/3d/gi_probe.cpp
msgid ""
"GIProbes are not supported by the GLES2 video driver.\n"
"Use a BakedLightmap instead."
msgstr ""
+"GLES2 視訊驅動程å¼ä¸æ”¯æ´ GIProbs。\n"
+"請改為使用 BakedLightmap。"
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
-msgstr ""
+msgstr "角度大於 90 度的 SpotLight 無法投射出陰影。"
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr ""
+msgstr "必須先為該節點建立 NavigationMesh 資æºæ‰å¯é‹ä½œã€‚"
#: scene/3d/navigation_mesh.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+"NavigationMeshInstance 必須為 Navigation 節點的å­ç¯€é»žæˆ–次級å­ç¯€é»žã€‚其僅æ供導"
+"航資料。"
#: scene/3d/particles.cpp
msgid ""
@@ -12766,27 +12265,33 @@ msgid ""
"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles"
"\" option for this purpose."
msgstr ""
+"GLES2 視訊驅動程å¼ä¸æ”¯æ´åŸºæ–¼ GPU çš„ç²’å­ã€‚\n"
+"請改為使用 CPUParticles 節點。為此您å¯ä»¥ä½¿ç”¨ã€Œè½‰æ›ç‚º CPUParticlesã€é¸é …。"
#: scene/3d/particles.cpp
msgid ""
"Nothing is visible because meshes have not been assigned to draw passes."
-msgstr ""
+msgstr "由於網格尚未被指派至æ繪路徑(Draw Pass),未顯示任何æ±è¥¿ã€‚"
#: scene/3d/particles.cpp
msgid ""
"Particles animation requires the usage of a SpatialMaterial whose Billboard "
"Mode is set to \"Particle Billboard\"."
msgstr ""
+"ç²’å­å‹•ç•«éœ€è¦ä½¿ç”¨ Billboard Mode 設定為「Particle Billboardã€çš„ "
+"SpatialMaterial。"
#: scene/3d/path.cpp
msgid "PathFollow only works when set as a child of a Path node."
-msgstr ""
+msgstr "PathFollow 僅在其為 Path 節點的å­ç¯€é»žæ™‚æ‰å¯é‹ä½œã€‚"
#: scene/3d/path.cpp
msgid ""
"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its "
"parent Path's Curve resource."
msgstr ""
+"PathFollow çš„ ROTATION_ORIENTED 需è¦åœ¨å…¶æ¯ç¯€é»ž Path çš„ Curve 資æºå…§å•Ÿç”¨ã€Œä¸Šå‘"
+"é‡ (Up Vector)ã€ã€‚"
#: scene/3d/physics_body.cpp
msgid ""
@@ -12794,16 +12299,20 @@ msgid ""
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"(在 Character 或 Rigid Mode 下)更改 RigidBody 的大å°å°‡æœƒåœ¨åŸ·è¡Œæ™‚被物ç†å¼•æ“Ž"
+"複寫。\n"
+"請改為修改其å­ç¯€é»žçš„碰撞形狀之大å°ã€‚"
#: scene/3d/remote_transform.cpp
msgid ""
"The \"Remote Path\" property must point to a valid Spatial or Spatial-"
"derived node to work."
msgstr ""
+"「é ç«¯è·¯å¾‘ã€å±¬æ€§å¿…須指å‘一個有效的 Spatial 或 Spatial è¡ç”Ÿä¹‹ç¯€é»žæ‰å¯é‹ä½œã€‚"
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
-msgstr ""
+msgstr "該形體在設定網格å‰éƒ½å°‡è¢«å¿½ç•¥ã€‚"
#: scene/3d/soft_body.cpp
msgid ""
@@ -12811,81 +12320,85 @@ msgid ""
"running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"更改 SoftBody 的大å°å°‡æœƒåœ¨åŸ·è¡Œæ™‚被物ç†å¼•æ“Žè¤‡å¯«ã€‚\n"
+"請改為修改其å­ç¯€é»žçš„碰撞形狀之大å°ã€‚"
#: scene/3d/sprite_3d.cpp
-#, fuzzy
msgid ""
"A SpriteFrames resource must be created or set in the \"Frames\" property in "
"order for AnimatedSprite3D to display frames."
-msgstr "SpriteFrames資æºå¿…須在Frames屬性中被創建或設置æ‰èƒ½å¤ é¡¯ç¤ºå‹•ç•«æ ¼ã€‚"
+msgstr ""
+"必須先為「Framesã€å±¬æ€§å»ºç«‹æˆ–設定 SpriteFrames 資æºä»¥ä»¤ AnimatedSprite3D 顯示"
+"影格。"
#: scene/3d/vehicle_body.cpp
msgid ""
"VehicleWheel serves to provide a wheel system to a VehicleBody. Please use "
"it as a child of a VehicleBody."
msgstr ""
+"VehicleWheel 旨在為 VehicleBody æä¾› Wheel System。請將其作為 VehicleBody çš„"
+"å­ç¯€é»žã€‚"
#: scene/3d/world_environment.cpp
msgid ""
"WorldEnvironment requires its \"Environment\" property to contain an "
"Environment to have a visible effect."
msgstr ""
+"必須先將 WorldEnvironment 之「Environmentã€å±¬æ€§è¨­ç‚ºåŒ…å« Environment æ‰å¯ç”¢ç”Ÿ"
+"視覺效果。"
#: scene/3d/world_environment.cpp
msgid ""
"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
-msgstr ""
+msgstr "æ¯å€‹å ´æ™¯ï¼ˆæˆ–實體化場景集)僅å¯æœ‰ä¸€å€‹ WorldEnvironment。"
#: scene/3d/world_environment.cpp
msgid ""
"This WorldEnvironment is ignored. Either add a Camera (for 3D scenes) or set "
"this environment's Background Mode to Canvas (for 2D scenes)."
msgstr ""
+"已忽略該 WorldEnvironment。請(為 3D 場景)新增一個相機或(為 2D 場景)設定環"
+"å¢ƒä¹‹èƒŒæ™¯æ¨¡å¼ (Background Mode) 為畫布 (Canvas)。"
#: scene/animation/animation_blend_tree.cpp
msgid "On BlendTree node '%s', animation not found: '%s'"
-msgstr ""
+msgstr "æ–¼ BlendTree 節點「%sã€ä¸Šæœªæ‰¾åˆ°å‹•ç•«ï¼šã€Œ%sã€"
#: scene/animation/animation_blend_tree.cpp
-#, fuzzy
msgid "Animation not found: '%s'"
-msgstr "動畫長度 (秒)。"
+msgstr "未找到動畫:「%sã€"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
-msgstr ""
+msgstr "於節點「%sã€å…§å‹•ç•«ç„¡æ•ˆï¼šã€Œ%sã€ã€‚"
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "Invalid animation: '%s'."
-msgstr "無效的字體大å°ã€‚"
+msgstr "無效的動畫:「%sã€ã€‚"
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "Nothing connected to input '%s' of node '%s'."
-msgstr "將 '%s' 從 '%s' 中斷連接"
+msgstr "節點「%sã€çš„輸入「%sã€æœªæœ‰ä»»ä½•é€£æŽ¥ã€‚"
#: scene/animation/animation_tree.cpp
msgid "No root AnimationNode for the graph is set."
-msgstr ""
+msgstr "尚未為圖表設定根 AnimationNode。"
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "Path to an AnimationPlayer node containing animations is not set."
-msgstr "從場景樹中é¸æ“‡ä¸€å€‹ AnimationPlayer 來編輯動畫。"
+msgstr "尚未設定一個連接包å«å‹•ç•«ä¸”連接至 AnimationPlayer 節點的路徑。"
#: scene/animation/animation_tree.cpp
msgid "Path set for AnimationPlayer does not lead to an AnimationPlayer node."
-msgstr ""
+msgstr "連接至 AnimationPlayer 的路徑並未連接至 AnimationPlayer 節點。"
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "The AnimationPlayer root node is not a valid node."
-msgstr "動畫樹無效。"
+msgstr "AnimationPlayer 的根節點並éžæœ‰æ•ˆç¯€é»žã€‚"
#: scene/animation/animation_tree_player.cpp
msgid "This node has been deprecated. Use AnimationTree instead."
-msgstr ""
+msgstr "該節點已åœæ­¢ç¶­è­·ï¼Œè«‹æ”¹ç‚ºä½¿ç”¨ AnimationTree。"
#: scene/gui/color_picker.cpp
msgid ""
@@ -12893,28 +12406,29 @@ msgid ""
"LMB: Set color\n"
"RMB: Remove preset"
msgstr ""
+"色彩: #%s\n"
+"å·¦éµé»žæ“Šï¼šè¨­å®šè‰²å½©\n"
+"å³éµé»žæ“Šï¼šåˆªé™¤ Preset"
#: scene/gui/color_picker.cpp
msgid "Pick a color from the editor window."
-msgstr ""
+msgstr "請自編輯器視窗é¸æ“‡ä¸€å€‹é¡è‰²ã€‚"
#: scene/gui/color_picker.cpp
msgid "HSV"
-msgstr ""
+msgstr "HSV"
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Raw"
-msgstr "å航"
+msgstr "原始"
#: scene/gui/color_picker.cpp
msgid "Switch between hexadecimal and code values."
-msgstr ""
+msgstr "在 16 進ä½èˆ‡ä»£ç¢¼å€¼ä¹‹é–“切æ›ã€‚"
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Add current color as a preset."
-msgstr "將目å‰é¡è‰²è¨­ç‚ºé è¨­"
+msgstr "將目å‰çš„é¡è‰²åŠ å…¥ Preset。"
#: scene/gui/container.cpp
msgid ""
@@ -12922,16 +12436,21 @@ msgid ""
"children placement behavior.\n"
"If you don't intend to add a script, use a plain Control node instead."
msgstr ""
+"除éžæœ‰è…³æœ¬è¨­å®šäº† Container å­ç¯€é»žä½”ä½è¡Œç‚º (Placement Behavior),其本身將無作"
+"用。\n"
+"若您未計劃新增腳本,請改為使用普通的 Control 節點。"
#: scene/gui/control.cpp
msgid ""
"The Hint Tooltip won't be displayed as the control's Mouse Filter is set to "
"\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"."
msgstr ""
+"ç”±æ–¼è¨­å®šçš„æ»‘é¼ ç¯©é¸ (Mouse Filter) 設定為「忽略 (Ignore)ã€ï¼Œå°‡ä¸æœƒé¡¯ç¤ºæ示 "
+"Tooltip 。è¦è§£æ±ºè©²å•é¡Œï¼Œè«‹å°‡æ»‘鼠篩é¸è¨­ç‚ºã€Œåœæ­¢ (Stop)ã€æˆ–ã€Œé€šéŽ (Pass)ã€ã€‚"
#: scene/gui/dialogs.cpp
msgid "Alert!"
-msgstr "警告!"
+msgstr "警告ï¼"
#: scene/gui/dialogs.cpp
msgid "Please Confirm..."
@@ -12943,10 +12462,12 @@ msgid ""
"functions. Making them visible for editing is fine, but they will hide upon "
"running."
msgstr ""
+"彈出視窗é è¨­æœƒéš±è—,除éžå‘¼å« popup() 或任何一個 popup*() 函å¼ã€‚å¯ä»¥å°‡å…¶è¨­ç‚ºå¯"
+"見來進行編輯,但在執行的時候會隱è—。"
#: scene/gui/range.cpp
msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0."
-msgstr ""
+msgstr "若啟用「表示å¼ç·¨è¼¯ã€ï¼Œå‰‡ã€Œæœ€å°å€¼ã€å¿…須大於 0。"
#: scene/gui/scroll_container.cpp
msgid ""
@@ -12954,18 +12475,19 @@ msgid ""
"Use a container as child (VBox, HBox, etc.), or a Control and set the custom "
"minimum size manually."
msgstr ""
+"ScrollContainer 旨在於單一å­æŽ§åˆ¶é…åˆä½¿ç”¨ã€‚\n"
+"使用容器作為å­ç¯€é»žï¼ˆVBoxã€HBox…等),或是使用 Control 並手動設定其自定最å°"
+"值。"
#: scene/gui/tree.cpp
msgid "(Other)"
-msgstr "(其它)"
+msgstr "(其它)"
#: scene/main/scene_tree.cpp
msgid ""
"Default Environment as specified in Project Settings (Rendering -> "
"Environment -> Default Environment) could not be loaded."
-msgstr ""
-"在專案設定中的é è¨­ç’°å¢ƒ(Rendering -> Environment -> Default Environment)ä¸èƒ½è¢«"
-"載入"
+msgstr "無法載入專案設定中指定的é è¨­ç’°å¢ƒï¼ˆç®—圖 -> 環境 -> é è¨­ç’°å¢ƒï¼‰ã€‚"
#: scene/main/viewport.cpp
msgid ""
@@ -12974,41 +12496,56 @@ msgid ""
"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
"texture to some node for display."
msgstr ""
+"該 Viewport 尚未被設定為算圖目標。若你想直接將其內容顯示於畫é¢ä¸Šï¼Œè«‹å°‡å…¶è¨­ç‚º "
+"Control çš„å­ç¯€é»žä»¥è®“å…¶å–得大å°ã€‚å¦å‰‡è«‹å°‡å…¶è¨­ç‚º RenderTarget 並指派其內部紋ç†"
+"為其他節點以顯示。"
#: scene/main/viewport.cpp
msgid "Viewport size must be greater than 0 to render anything."
-msgstr ""
+msgstr "Viewport 大å°å¿…須大於 0 æ‰å¯é€²è¡Œç®—圖。"
#: scene/resources/visual_shader_nodes.cpp
-#, fuzzy
msgid "Invalid source for preview."
-msgstr "無效的字體大å°ã€‚"
+msgstr "無效的é è¦½ä¾†æºã€‚"
#: scene/resources/visual_shader_nodes.cpp
-#, fuzzy
msgid "Invalid source for shader."
-msgstr "無效的字體大å°ã€‚"
+msgstr "無效的著色器來æºã€‚"
#: scene/resources/visual_shader_nodes.cpp
-#, fuzzy
msgid "Invalid comparison function for that type."
-msgstr "無效的字體大å°ã€‚"
+msgstr "該型別的比較函å¼ç„¡æ•ˆã€‚"
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
-msgstr ""
+msgstr "指派至函å¼ã€‚"
#: servers/visual/shader_language.cpp
msgid "Assignment to uniform."
-msgstr ""
+msgstr "指派至å‡å‹»ã€‚"
#: servers/visual/shader_language.cpp
msgid "Varyings can only be assigned in vertex function."
-msgstr ""
+msgstr "Varying 變數åªå¯åœ¨é ‚點函å¼ä¸­æŒ‡æ´¾ã€‚"
#: servers/visual/shader_language.cpp
msgid "Constants cannot be modified."
-msgstr ""
+msgstr "ä¸å¯ä¿®æ”¹å¸¸æ•¸ã€‚"
+
+#~ msgid "Not in resource path."
+#~ msgstr "ä¸åœ¨è³‡æºè·¯å¾‘中。"
+
+#~ msgid "Revert"
+#~ msgstr "還原"
+
+#~ msgid "This action cannot be undone. Revert anyway?"
+#~ msgstr "該æ“作無法還原。ä¾ç„¶è¦é‚„原嗎?"
+
+#~ msgid "Revert Scene"
+#~ msgstr "æ¢å¾©å ´æ™¯"
+
+#~ msgid "Clear Script"
+#~ msgstr "清除腳本"
#, fuzzy
#~ msgid "Issue Tracker"
diff --git a/main/main.cpp b/main/main.cpp
index 94dd895a26..5320274add 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -930,6 +930,9 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
#endif
}
+ // Initialize user data dir.
+ OS::get_singleton()->ensure_user_data_dir();
+
GLOBAL_DEF("memory/limits/multithreaded_server/rid_pool_prealloc", 60);
ProjectSettings::get_singleton()->set_custom_property_info("memory/limits/multithreaded_server/rid_pool_prealloc", PropertyInfo(Variant::INT, "memory/limits/multithreaded_server/rid_pool_prealloc", PROPERTY_HINT_RANGE, "0,500,1")); // No negative and limit to 500 due to crashes
GLOBAL_DEF("network/limits/debugger/max_chars_per_second", 32768);
@@ -948,7 +951,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
packed_data->set_disabled(true);
globals->set_disable_feature_overrides(true);
}
-
#endif
GLOBAL_DEF("logging/file_logging/enable_file_logging", false);
@@ -1266,10 +1268,6 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
Thread::_main_thread_id = p_main_tid_override;
}
- /* Initialize user data dir */
-
- OS::get_singleton()->ensure_user_data_dir();
-
/* Initialize Input */
input = memnew(Input);
diff --git a/main/tests/test_basis.cpp b/main/tests/test_basis.cpp
new file mode 100644
index 0000000000..ac25151fd8
--- /dev/null
+++ b/main/tests/test_basis.cpp
@@ -0,0 +1,325 @@
+/*************************************************************************/
+/* test_fbx.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
+#include "test_basis.h"
+
+#include "core/math/random_number_generator.h"
+#include "core/os/os.h"
+#include "core/ustring.h"
+
+namespace TestBasis {
+
+enum RotOrder {
+ EulerXYZ,
+ EulerXZY,
+ EulerYZX,
+ EulerYXZ,
+ EulerZXY,
+ EulerZYX
+};
+
+Vector3 deg2rad(const Vector3 &p_rotation) {
+ return p_rotation / 180.0 * Math_PI;
+}
+
+Vector3 rad2deg(const Vector3 &p_rotation) {
+ return p_rotation / Math_PI * 180.0;
+}
+
+Basis EulerToBasis(RotOrder mode, const Vector3 &p_rotation) {
+ Basis ret;
+ switch (mode) {
+ case EulerXYZ:
+ ret.set_euler_xyz(p_rotation);
+ break;
+
+ case EulerXZY:
+ ret.set_euler_xzy(p_rotation);
+ break;
+
+ case EulerYZX:
+ ret.set_euler_yzx(p_rotation);
+ break;
+
+ case EulerYXZ:
+ ret.set_euler_yxz(p_rotation);
+ break;
+
+ case EulerZXY:
+ ret.set_euler_zxy(p_rotation);
+ break;
+
+ case EulerZYX:
+ ret.set_euler_zyx(p_rotation);
+ break;
+
+ default:
+ // If you land here, Please integrate all rotation orders.
+ CRASH_NOW_MSG("This is not unreachable.");
+ }
+
+ return ret;
+}
+
+Vector3 BasisToEuler(RotOrder mode, const Basis &p_rotation) {
+ switch (mode) {
+ case EulerXYZ:
+ return p_rotation.get_euler_xyz();
+
+ case EulerXZY:
+ return p_rotation.get_euler_xzy();
+
+ case EulerYZX:
+ return p_rotation.get_euler_yzx();
+
+ case EulerYXZ:
+ return p_rotation.get_euler_yxz();
+
+ case EulerZXY:
+ return p_rotation.get_euler_zxy();
+
+ case EulerZYX:
+ return p_rotation.get_euler_zyx();
+
+ default:
+ // If you land here, Please integrate all rotation orders.
+ CRASH_NOW_MSG("This is not unreachable.");
+ return Vector3();
+ }
+}
+
+String get_rot_order_name(RotOrder ro) {
+ switch (ro) {
+ case EulerXYZ:
+ return "XYZ";
+ case EulerXZY:
+ return "XZY";
+ case EulerYZX:
+ return "YZX";
+ case EulerYXZ:
+ return "YXZ";
+ case EulerZXY:
+ return "ZXY";
+ case EulerZYX:
+ return "ZYX";
+ default:
+ return "[Not supported]";
+ }
+}
+
+bool test_rotation(Vector3 deg_original_euler, RotOrder rot_order) {
+ // This test:
+ // 1. Converts the rotation vector from deg to rad.
+ // 2. Converts euler to basis.
+ // 3. Converts the above basis back into euler.
+ // 4. Converts the above euler into basis again.
+ // 5. Compares the basis obtained in step 2 with the basis of step 4
+ //
+ // The conversion "basis to euler", done in the step 3, may be different from
+ // the original euler, even if the final rotation are the same.
+ // This happens because there are more ways to represents the same rotation,
+ // both valid, using eulers.
+ // For this reason is necessary to convert that euler back to basis and finally
+ // compares it.
+ //
+ // In this way we can assert that both functions: basis to euler / euler to basis
+ // are correct.
+
+ bool pass = true;
+
+ // Euler to rotation
+ const Vector3 original_euler = deg2rad(deg_original_euler);
+ const Basis to_rotation = EulerToBasis(rot_order, original_euler);
+
+ // Euler from rotation
+ const Vector3 euler_from_rotation = BasisToEuler(rot_order, to_rotation);
+ const Basis rotation_from_computed_euler = EulerToBasis(rot_order, euler_from_rotation);
+
+ Basis res = to_rotation.inverse() * rotation_from_computed_euler;
+
+ if ((res.get_axis(0) - Vector3(1.0, 0.0, 0.0)).length() > 0.1) {
+ OS::get_singleton()->print("Fail due to X %ls\n", String(res.get_axis(0)).c_str());
+ pass = false;
+ }
+ if ((res.get_axis(1) - Vector3(0.0, 1.0, 0.0)).length() > 0.1) {
+ OS::get_singleton()->print("Fail due to Y %ls\n", String(res.get_axis(1)).c_str());
+ pass = false;
+ }
+ if ((res.get_axis(2) - Vector3(0.0, 0.0, 1.0)).length() > 0.1) {
+ OS::get_singleton()->print("Fail due to Z %ls\n", String(res.get_axis(2)).c_str());
+ pass = false;
+ }
+
+ if (pass) {
+ // Double check `to_rotation` decomposing with XYZ rotation order.
+ const Vector3 euler_xyz_from_rotation = to_rotation.get_euler_xyz();
+ Basis rotation_from_xyz_computed_euler;
+ rotation_from_xyz_computed_euler.set_euler_xyz(euler_xyz_from_rotation);
+
+ res = to_rotation.inverse() * rotation_from_xyz_computed_euler;
+
+ if ((res.get_axis(0) - Vector3(1.0, 0.0, 0.0)).length() > 0.1) {
+ OS::get_singleton()->print("Double check with XYZ rot order failed, due to X %ls\n", String(res.get_axis(0)).c_str());
+ pass = false;
+ }
+ if ((res.get_axis(1) - Vector3(0.0, 1.0, 0.0)).length() > 0.1) {
+ OS::get_singleton()->print("Double check with XYZ rot order failed, due to Y %ls\n", String(res.get_axis(1)).c_str());
+ pass = false;
+ }
+ if ((res.get_axis(2) - Vector3(0.0, 0.0, 1.0)).length() > 0.1) {
+ OS::get_singleton()->print("Double check with XYZ rot order failed, due to Z %ls\n", String(res.get_axis(2)).c_str());
+ pass = false;
+ }
+ }
+
+ if (pass == false) {
+ // Print phase only if not pass.
+ OS *os = OS::get_singleton();
+ os->print("Rotation order: %ls\n.", get_rot_order_name(rot_order).c_str());
+ os->print("Original Rotation: %ls\n", String(deg_original_euler).c_str());
+ os->print("Quaternion to rotation order: %ls\n", String(rad2deg(euler_from_rotation)).c_str());
+ }
+
+ return pass;
+}
+
+void test_euler_conversion() {
+ Vector<RotOrder> rotorder_to_test;
+ rotorder_to_test.push_back(EulerXYZ);
+ rotorder_to_test.push_back(EulerXZY);
+ rotorder_to_test.push_back(EulerYZX);
+ rotorder_to_test.push_back(EulerYXZ);
+ rotorder_to_test.push_back(EulerZXY);
+ rotorder_to_test.push_back(EulerZYX);
+
+ Vector<Vector3> vectors_to_test;
+
+ // Test the special cases.
+ vectors_to_test.push_back(Vector3(0.0, 0.0, 0.0));
+ vectors_to_test.push_back(Vector3(0.5, 0.5, 0.5));
+ vectors_to_test.push_back(Vector3(-0.5, -0.5, -0.5));
+ vectors_to_test.push_back(Vector3(40.0, 40.0, 40.0));
+ vectors_to_test.push_back(Vector3(-40.0, -40.0, -40.0));
+ vectors_to_test.push_back(Vector3(0.0, 0.0, -90.0));
+ vectors_to_test.push_back(Vector3(0.0, -90.0, 0.0));
+ vectors_to_test.push_back(Vector3(-90.0, 0.0, 0.0));
+ vectors_to_test.push_back(Vector3(0.0, 0.0, 90.0));
+ vectors_to_test.push_back(Vector3(0.0, 90.0, 0.0));
+ vectors_to_test.push_back(Vector3(90.0, 0.0, 0.0));
+ vectors_to_test.push_back(Vector3(0.0, 0.0, -30.0));
+ vectors_to_test.push_back(Vector3(0.0, -30.0, 0.0));
+ vectors_to_test.push_back(Vector3(-30.0, 0.0, 0.0));
+ vectors_to_test.push_back(Vector3(0.0, 0.0, 30.0));
+ vectors_to_test.push_back(Vector3(0.0, 30.0, 0.0));
+ vectors_to_test.push_back(Vector3(30.0, 0.0, 0.0));
+ vectors_to_test.push_back(Vector3(0.5, 50.0, 20.0));
+ vectors_to_test.push_back(Vector3(-0.5, -50.0, -20.0));
+ vectors_to_test.push_back(Vector3(0.5, 0.0, 90.0));
+ vectors_to_test.push_back(Vector3(0.5, 0.0, -90.0));
+ vectors_to_test.push_back(Vector3(360.0, 360.0, 360.0));
+ vectors_to_test.push_back(Vector3(-360.0, -360.0, -360.0));
+ vectors_to_test.push_back(Vector3(-90.0, 60.0, -90.0));
+ vectors_to_test.push_back(Vector3(90.0, 60.0, -90.0));
+ vectors_to_test.push_back(Vector3(90.0, -60.0, -90.0));
+ vectors_to_test.push_back(Vector3(-90.0, -60.0, -90.0));
+ vectors_to_test.push_back(Vector3(-90.0, 60.0, 90.0));
+ vectors_to_test.push_back(Vector3(90.0, 60.0, 90.0));
+ vectors_to_test.push_back(Vector3(90.0, -60.0, 90.0));
+ vectors_to_test.push_back(Vector3(-90.0, -60.0, 90.0));
+ vectors_to_test.push_back(Vector3(60.0, 90.0, -40.0));
+ vectors_to_test.push_back(Vector3(60.0, -90.0, -40.0));
+ vectors_to_test.push_back(Vector3(-60.0, -90.0, -40.0));
+ vectors_to_test.push_back(Vector3(-60.0, 90.0, 40.0));
+ vectors_to_test.push_back(Vector3(60.0, 90.0, 40.0));
+ vectors_to_test.push_back(Vector3(60.0, -90.0, 40.0));
+ vectors_to_test.push_back(Vector3(-60.0, -90.0, 40.0));
+ vectors_to_test.push_back(Vector3(-90.0, 90.0, -90.0));
+ vectors_to_test.push_back(Vector3(90.0, 90.0, -90.0));
+ vectors_to_test.push_back(Vector3(90.0, -90.0, -90.0));
+ vectors_to_test.push_back(Vector3(-90.0, -90.0, -90.0));
+ vectors_to_test.push_back(Vector3(-90.0, 90.0, 90.0));
+ vectors_to_test.push_back(Vector3(90.0, 90.0, 90.0));
+ vectors_to_test.push_back(Vector3(90.0, -90.0, 90.0));
+ vectors_to_test.push_back(Vector3(20.0, 150.0, 30.0));
+ vectors_to_test.push_back(Vector3(20.0, -150.0, 30.0));
+ vectors_to_test.push_back(Vector3(-120.0, -150.0, 30.0));
+ vectors_to_test.push_back(Vector3(-120.0, -150.0, -130.0));
+ vectors_to_test.push_back(Vector3(120.0, -150.0, -130.0));
+ vectors_to_test.push_back(Vector3(120.0, 150.0, -130.0));
+ vectors_to_test.push_back(Vector3(120.0, 150.0, 130.0));
+
+ // Add 1000 random vectors with weirds numbers.
+ RandomNumberGenerator rng;
+ for (int _ = 0; _ < 1000; _ += 1) {
+ vectors_to_test.push_back(Vector3(
+ rng.randf_range(-1800, 1800),
+ rng.randf_range(-1800, 1800),
+ rng.randf_range(-1800, 1800)));
+ }
+
+ bool success = true;
+ for (int h = 0; h < rotorder_to_test.size(); h += 1) {
+ int passed = 0;
+ int failed = 0;
+ for (int i = 0; i < vectors_to_test.size(); i += 1) {
+ if (test_rotation(vectors_to_test[i], rotorder_to_test[h])) {
+ //OS::get_singleton()->print("Success. \n\n");
+ passed += 1;
+ } else {
+ OS::get_singleton()->print("FAILED FAILED FAILED. \n\n");
+ OS::get_singleton()->print("------------>\n");
+ OS::get_singleton()->print("------------>\n");
+ failed += 1;
+ success = false;
+ }
+ }
+
+ if (failed == 0) {
+ OS::get_singleton()->print("%i passed tests for rotation order: %ls.\n", passed, get_rot_order_name(rotorder_to_test[h]).c_str());
+ } else {
+ OS::get_singleton()->print("%i FAILED tests for rotation order: %ls.\n", failed, get_rot_order_name(rotorder_to_test[h]).c_str());
+ }
+ }
+
+ if (success) {
+ OS::get_singleton()->print("Euler conversion checks passed.\n");
+ } else {
+ OS::get_singleton()->print("Euler conversion checks FAILED.\n");
+ }
+}
+
+MainLoop *test() {
+ OS::get_singleton()->print("Start euler conversion checks.\n");
+ test_euler_conversion();
+
+ return NULL;
+}
+
+} // namespace TestBasis
diff --git a/main/tests/test_basis.h b/main/tests/test_basis.h
new file mode 100644
index 0000000000..67c9db8877
--- /dev/null
+++ b/main/tests/test_basis.h
@@ -0,0 +1,40 @@
+/*************************************************************************/
+/* test_fbx.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
+#ifndef TEST_BASIS_H
+#define TEST_BASIS_H
+
+#include "core/os/main_loop.h"
+
+namespace TestBasis {
+MainLoop *test();
+}
+
+#endif
diff --git a/main/tests/test_main.cpp b/main/tests/test_main.cpp
index 0bb8367240..5ebdaf1741 100644
--- a/main/tests/test_main.cpp
+++ b/main/tests/test_main.cpp
@@ -35,6 +35,7 @@
#ifdef DEBUG_ENABLED
#include "test_astar.h"
+#include "test_basis.h"
#include "test_class_db.h"
#include "test_gdscript.h"
#include "test_gui.h"
@@ -51,6 +52,7 @@ const char **tests_get_names() {
static const char *test_names[] = {
"string",
"math",
+ "basis",
"physics_2d",
"physics_3d",
"render",
@@ -79,6 +81,10 @@ MainLoop *test_main(String p_test, const List<String> &p_args) {
return TestMath::test();
}
+ if (p_test == "basis") {
+ return TestBasis::test();
+ }
+
if (p_test == "physics_2d") {
return TestPhysics2D::test();
}
diff --git a/methods.py b/methods.py
index 756db19e9a..ca6756f95f 100644
--- a/methods.py
+++ b/methods.py
@@ -803,3 +803,14 @@ def show_progress(env):
progress_finish_command = Command("progress_finish", [], progress_finish)
AlwaysBuild(progress_finish_command)
+
+
+def dump(env):
+ # Dumps latest build information for debugging purposes and external tools.
+ from json import dump
+
+ def non_serializable(obj):
+ return "<<non-serializable: %s>>" % (type(obj).__qualname__)
+
+ with open(".scons_env.json", "w") as f:
+ dump(env.Dictionary(), f, indent=4, default=non_serializable)
diff --git a/modules/assimp/editor_scene_importer_assimp.cpp b/modules/assimp/editor_scene_importer_assimp.cpp
index 9c90faf66b..aedc4b690a 100644
--- a/modules/assimp/editor_scene_importer_assimp.cpp
+++ b/modules/assimp/editor_scene_importer_assimp.cpp
@@ -44,7 +44,6 @@
#include <assimp/scene.h>
#include <assimp/Importer.hpp>
#include <assimp/LogStream.hpp>
-#include <string>
// move into assimp
aiBone *get_bone_by_name(const aiScene *scene, aiString bone_name) {
@@ -102,8 +101,6 @@ void EditorSceneImporterAssimp::_bind_methods() {
Node *EditorSceneImporterAssimp::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps,
List<String> *r_missing_deps, Error *r_err) {
Assimp::Importer importer;
- std::wstring w_path = ProjectSettings::get_singleton()->globalize_path(p_path).c_str();
- std::string s_path(w_path.begin(), w_path.end());
importer.SetPropertyBool(AI_CONFIG_PP_FD_REMOVE, true);
// Cannot remove pivot points because the static mesh will be in the wrong place
importer.SetPropertyBool(AI_CONFIG_IMPORT_FBX_PRESERVE_PIVOTS, false);
@@ -145,7 +142,8 @@ Node *EditorSceneImporterAssimp::import_scene(const String &p_path, uint32_t p_f
// aiProcess_EmbedTextures |
//aiProcess_SplitByBoneCount |
0;
- aiScene *scene = (aiScene *)importer.ReadFile(s_path.c_str(), post_process_Steps);
+ String g_path = ProjectSettings::get_singleton()->globalize_path(p_path);
+ aiScene *scene = (aiScene *)importer.ReadFile(g_path.utf8().ptr(), post_process_Steps);
ERR_FAIL_COND_V_MSG(scene == nullptr, nullptr, String("Open Asset Import failed to open: ") + String(importer.GetErrorString()));
@@ -298,6 +296,7 @@ EditorSceneImporterAssimp::_generate_scene(const String &p_path, aiScene *scene,
state.assimp_scene = scene;
state.max_bone_weights = p_max_bone_weights;
state.animation_player = nullptr;
+ state.import_flags = p_flags;
// populate light map
for (unsigned int l = 0; l < scene->mNumLights; l++) {
@@ -829,6 +828,8 @@ EditorSceneImporterAssimp::_generate_mesh_from_surface_indices(ImportState &stat
Ref<ArrayMesh> mesh;
mesh.instance();
bool has_uvs = false;
+ bool compress_vert_data = state.import_flags & IMPORT_USE_COMPRESSION;
+ uint32_t mesh_flags = compress_vert_data ? Mesh::ARRAY_COMPRESS_DEFAULT : 0;
Map<String, uint32_t> morph_mesh_string_lookup;
@@ -1266,7 +1267,7 @@ EditorSceneImporterAssimp::_generate_mesh_from_surface_indices(ImportState &stat
morphs[j] = array_copy;
}
- mesh->add_surface_from_arrays(primitive, array_mesh, morphs);
+ mesh->add_surface_from_arrays(primitive, array_mesh, morphs, Dictionary(), mesh_flags);
mesh->surface_set_material(i, mat);
mesh->surface_set_name(i, AssimpUtils::get_assimp_string(ai_mesh->mName));
}
diff --git a/modules/assimp/import_state.h b/modules/assimp/import_state.h
index 4a3bd17acb..ee22800ac4 100644
--- a/modules/assimp/import_state.h
+++ b/modules/assimp/import_state.h
@@ -87,6 +87,9 @@ struct ImportState {
// this means we can detect
// what bones are for other armatures
List<aiBone *> bone_stack;
+
+ // EditorSceneImporter::ImportFlags
+ uint32_t import_flags;
};
struct AssimpImageData {
diff --git a/modules/dds/texture_loader_dds.cpp b/modules/dds/texture_loader_dds.cpp
index ba425371a8..2f4f7d7a4c 100644
--- a/modules/dds/texture_loader_dds.cpp
+++ b/modules/dds/texture_loader_dds.cpp
@@ -29,14 +29,15 @@
/*************************************************************************/
#include "texture_loader_dds.h"
+
#include "core/os/file_access.h"
#define PF_FOURCC(s) ((uint32_t)(((s)[3] << 24U) | ((s)[2] << 16U) | ((s)[1] << 8U) | ((s)[0])))
+// Reference: https://docs.microsoft.com/en-us/windows/win32/direct3ddds/dds-header
+
enum {
DDS_MAGIC = 0x20534444,
- DDSD_CAPS = 0x00000001,
- DDSD_PIXELFORMAT = 0x00001000,
DDSD_PITCH = 0x00000008,
DDSD_LINEARSIZE = 0x00080000,
DDSD_MIPMAPCOUNT = 0x00020000,
@@ -47,7 +48,6 @@ enum {
};
enum DDSFormat {
-
DDS_DXT1,
DDS_DXT3,
DDS_DXT5,
@@ -128,7 +128,9 @@ RES ResourceFormatDDS::load(const String &p_path, const String &p_original_path,
//validate
- if (magic != DDS_MAGIC || hsize != 124 || !(flags & DDSD_PIXELFORMAT) || !(flags & DDSD_CAPS)) {
+ // We don't check DDSD_CAPS or DDSD_PIXELFORMAT, as they're mandatory when writing,
+ // but non-mandatory when reading (as some writers don't set them)...
+ if (magic != DDS_MAGIC || hsize != 124) {
ERR_FAIL_V_MSG(RES(), "Invalid or unsupported DDS texture file '" + p_path + "'.");
}
diff --git a/modules/denoise/config.py b/modules/denoise/config.py
index 53b8f2f2e3..091d7643c0 100644
--- a/modules/denoise/config.py
+++ b/modules/denoise/config.py
@@ -1,5 +1,11 @@
def can_build(env, platform):
- return env["tools"]
+ # Thirdparty dependency OpenImage Denoise includes oneDNN library
+ # which only supports 64-bit architectures.
+ # It's also only relevant for tools build and desktop platforms,
+ # as doing lightmap generation and denoising on Android or HTML5
+ # would be a bit far-fetched.
+ desktop_platforms = ["linuxbsd", "osx", "windows"]
+ return env["tools"] and platform in desktop_platforms and env["bits"] == "64"
def configure(env):
diff --git a/modules/gdnative/gdnative_api.json b/modules/gdnative/gdnative_api.json
index d174b936a8..ccd8d2041c 100644
--- a/modules/gdnative/gdnative_api.json
+++ b/modules/gdnative/gdnative_api.json
@@ -2,2276 +2,580 @@
"core": {
"type": "CORE",
"version": {
- "major": 1,
+ "major": 4,
"minor": 0
},
- "next": {
- "type": "CORE",
- "version": {
- "major": 1,
- "minor": 1
- },
- "next": {
- "type": "CORE",
- "version": {
- "major": 1,
- "minor": 2
- },
- "next": {
- "type": "CORE",
- "version": {
- "major": 1,
- "minor": 3
- },
- "next": null,
- "api": [
- {
- "name": "godot_object_get_instance_id",
- "return_type": "uint64_t",
- "arguments": [
- ["const godot_object *", "p_object"]
- ]
- },
- {
- "name": "godot_array_new_packed_float64_array",
- "return_type": "void",
- "arguments": [
- ["godot_array *", "r_dest"],
- ["const godot_packed_float64_array *", "p_pra"]
- ]
- },
- {
- "name": "godot_array_new_packed_int64_array",
- "return_type": "void",
- "arguments": [
- ["godot_array *", "r_dest"],
- ["const godot_packed_int64_array *", "p_pia"]
- ]
- },
- {
- "name": "godot_callable_new_with_object",
- "return_type": "void",
- "arguments": [
- ["godot_callable *", "r_dest"],
- ["const godot_object *", "p_object"],
- ["const godot_string_name *", "p_method"]
- ]
- },
- {
- "name": "godot_callable_new_with_object_id",
- "return_type": "void",
- "arguments": [
- ["godot_callable *", "r_dest"],
- ["uint64_t", "p_objectid"],
- ["const godot_string_name *", "p_method"]
- ]
- },
- {
- "name": "godot_callable_new_copy",
- "return_type": "void",
- "arguments": [
- ["godot_callable *", "r_dest"],
- ["const godot_callable *", "p_src"]
- ]
- },
- {
- "name": "godot_callable_destroy",
- "return_type": "void",
- "arguments": [
- ["godot_callable *", "p_self"]
- ]
- },
- {
- "name": "godot_callable_call",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_callable *", "p_self"],
- ["const godot_variant **", "p_arguments"],
- ["godot_int", "p_argcount"],
- ["godot_variant *", "r_return_value"]
- ]
- },
- {
- "name": "godot_callable_call_deferred",
- "return_type": "void",
- "arguments": [
- ["const godot_callable *", "p_self"],
- ["const godot_variant **", "p_arguments"],
- ["godot_int", "p_argcount"]
- ]
- },
- {
- "name": "godot_callable_is_null",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_callable *", "p_self"]
- ]
- },
- {
- "name": "godot_callable_is_custom",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_callable *", "p_self"]
- ]
- },
- {
- "name": "godot_callable_is_standard",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_callable *", "p_self"]
- ]
- },
- {
- "name": "godot_callable_get_object",
- "return_type": "godot_object *",
- "arguments": [
- ["const godot_callable *", "p_self"]
- ]
- },
- {
- "name": "godot_callable_get_object_id",
- "return_type": "uint64_t",
- "arguments": [
- ["const godot_callable *", "p_self"]
- ]
- },
- {
- "name": "godot_callable_get_method",
- "return_type": "godot_string_name",
- "arguments": [
- ["const godot_callable *", "p_self"]
- ]
- },
- {
- "name": "godot_callable_hash",
- "return_type": "uint32_t",
- "arguments": [
- ["const godot_callable *", "p_self"]
- ]
- },
- {
- "name": "godot_callable_as_string",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_callable *", "p_self"]
- ]
- },
- {
- "name": "godot_callable_operator_equal",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_callable *", "p_self"],
- ["const godot_callable *", "p_other"]
- ]
- },
- {
- "name": "godot_callable_operator_less",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_callable *", "p_self"],
- ["const godot_callable *", "p_other"]
- ]
- },
- {
- "name": "godot_signal_new_with_object",
- "return_type": "void",
- "arguments": [
- ["godot_signal *", "r_dest"],
- ["const godot_object *", "p_object"],
- ["const godot_string_name *", "p_method"]
- ]
- },
- {
- "name": "godot_signal_new_with_object_id",
- "return_type": "void",
- "arguments": [
- ["godot_signal *", "r_dest"],
- ["uint64_t", "p_objectid"],
- ["const godot_string_name *", "p_method"]
- ]
- },
- {
- "name": "godot_signal_new_copy",
- "return_type": "void",
- "arguments": [
- ["godot_signal *", "r_dest"],
- ["const godot_signal *", "p_src"]
- ]
- },
- {
- "name": "godot_signal_destroy",
- "return_type": "void",
- "arguments": [
- ["godot_signal *", "p_self"]
- ]
- },
- {
- "name": "godot_signal_emit",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_signal *", "p_self"],
- ["const godot_variant **", "p_arguments"],
- ["godot_int", "p_argcount"]
- ]
- },
- {
- "name": "godot_signal_connect",
- "return_type": "godot_int",
- "arguments": [
- ["godot_signal *", "p_self"],
- ["const godot_callable *", "p_callable"],
- ["const godot_array *", "p_binds"],
- ["uint32_t", "p_flags"]
- ]
- },
- {
- "name": "godot_signal_disconnect",
- "return_type": "void",
- "arguments": [
- ["godot_signal *", "p_self"],
- ["const godot_callable *", "p_callable"]
- ]
- },
- {
- "name": "godot_signal_is_null",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_signal *", "p_self"]
- ]
- },
- {
- "name": "godot_signal_is_connected",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_signal *", "p_self"],
- ["const godot_callable *", "p_callable"]
- ]
- },
- {
- "name": "godot_signal_get_connections",
- "return_type": "godot_array",
- "arguments": [
- ["const godot_signal *", "p_self"]
- ]
- },
- {
- "name": "godot_signal_get_object",
- "return_type": "godot_object *",
- "arguments": [
- ["const godot_signal *", "p_self"]
- ]
- },
- {
- "name": "godot_signal_get_object_id",
- "return_type": "uint64_t",
- "arguments": [
- ["const godot_signal *", "p_self"]
- ]
- },
- {
- "name": "godot_signal_get_name",
- "return_type": "godot_string_name",
- "arguments": [
- ["const godot_signal *", "p_self"]
- ]
- },
- {
- "name": "godot_signal_as_string",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_signal *", "p_self"]
- ]
- },
- {
- "name": "godot_signal_operator_equal",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_signal *", "p_self"],
- ["const godot_signal *", "p_other"]
- ]
- },
- {
- "name": "godot_signal_operator_less",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_signal *", "p_self"],
- ["const godot_signal *", "p_other"]
- ]
- },
- {
- "name": "godot_packed_int64_array_new",
- "return_type": "void",
- "arguments": [
- ["godot_packed_int64_array *", "r_dest"]
- ]
- },
- {
- "name": "godot_packed_int64_array_new_copy",
- "return_type": "void",
- "arguments": [
- ["godot_packed_int64_array *", "r_dest"],
- ["const godot_packed_int64_array *", "p_src"]
- ]
- },
- {
- "name": "godot_packed_int64_array_new_with_array",
- "return_type": "void",
- "arguments": [
- ["godot_packed_int64_array *", "r_dest"],
- ["const godot_array *", "p_a"]
- ]
- },
- {
- "name": "godot_packed_int64_array_append",
- "return_type": "void",
- "arguments": [
- ["godot_packed_int64_array *", "p_self"],
- ["const int64_t", "p_data"]
- ]
- },
- {
- "name": "godot_packed_int64_array_append_array",
- "return_type": "void",
- "arguments": [
- ["godot_packed_int64_array *", "p_self"],
- ["const godot_packed_int64_array *", "p_array"]
- ]
- },
- {
- "name": "godot_packed_int64_array_insert",
- "return_type": "godot_error",
- "arguments": [
- ["godot_packed_int64_array *", "p_self"],
- ["const godot_int", "p_idx"],
- ["const int64_t", "p_data"]
- ]
- },
- {
- "name": "godot_packed_int64_array_invert",
- "return_type": "void",
- "arguments": [
- ["godot_packed_int64_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_int64_array_push_back",
- "return_type": "void",
- "arguments": [
- ["godot_packed_int64_array *", "p_self"],
- ["const int64_t", "p_data"]
- ]
- },
- {
- "name": "godot_packed_int64_array_remove",
- "return_type": "void",
- "arguments": [
- ["godot_packed_int64_array *", "p_self"],
- ["const godot_int", "p_idx"]
- ]
- },
- {
- "name": "godot_packed_int64_array_resize",
- "return_type": "void",
- "arguments": [
- ["godot_packed_int64_array *", "p_self"],
- ["const godot_int", "p_size"]
- ]
- },
- {
- "name": "godot_packed_int64_array_set",
- "return_type": "void",
- "arguments": [
- ["godot_packed_int64_array *", "p_self"],
- ["const godot_int", "p_idx"],
- ["const int64_t", "p_data"]
- ]
- },
- {
- "name": "godot_packed_int64_array_get",
- "return_type": "int64_t",
- "arguments": [
- ["const godot_packed_int64_array *", "p_self"],
- ["const godot_int", "p_idx"]
- ]
- },
- {
- "name": "godot_packed_int64_array_size",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_packed_int64_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_int64_array_destroy",
- "return_type": "void",
- "arguments": [
- ["godot_packed_int64_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_float64_array_new",
- "return_type": "void",
- "arguments": [
- ["godot_packed_float64_array *", "r_dest"]
- ]
- },
- {
- "name": "godot_packed_float64_array_new_copy",
- "return_type": "void",
- "arguments": [
- ["godot_packed_float64_array *", "r_dest"],
- ["const godot_packed_float64_array *", "p_src"]
- ]
- },
- {
- "name": "godot_packed_float64_array_new_with_array",
- "return_type": "void",
- "arguments": [
- ["godot_packed_float64_array *", "r_dest"],
- ["const godot_array *", "p_a"]
- ]
- },
- {
- "name": "godot_packed_float64_array_append",
- "return_type": "void",
- "arguments": [
- ["godot_packed_float64_array *", "p_self"],
- ["const double", "p_data"]
- ]
- },
- {
- "name": "godot_packed_float64_array_append_array",
- "return_type": "void",
- "arguments": [
- ["godot_packed_float64_array *", "p_self"],
- ["const godot_packed_float64_array *", "p_array"]
- ]
- },
- {
- "name": "godot_packed_float64_array_insert",
- "return_type": "godot_error",
- "arguments": [
- ["godot_packed_float64_array *", "p_self"],
- ["const godot_int", "p_idx"],
- ["const double", "p_data"]
- ]
- },
- {
- "name": "godot_packed_float64_array_invert",
- "return_type": "void",
- "arguments": [
- ["godot_packed_float64_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_float64_array_push_back",
- "return_type": "void",
- "arguments": [
- ["godot_packed_float64_array *", "p_self"],
- ["const double", "p_data"]
- ]
- },
- {
- "name": "godot_packed_float64_array_remove",
- "return_type": "void",
- "arguments": [
- ["godot_packed_float64_array *", "p_self"],
- ["const godot_int", "p_idx"]
- ]
- },
- {
- "name": "godot_packed_float64_array_resize",
- "return_type": "void",
- "arguments": [
- ["godot_packed_float64_array *", "p_self"],
- ["const godot_int", "p_size"]
- ]
- },
- {
- "name": "godot_packed_float64_array_set",
- "return_type": "void",
- "arguments": [
- ["godot_packed_float64_array *", "p_self"],
- ["const godot_int", "p_idx"],
- ["const double", "p_data"]
- ]
- },
- {
- "name": "godot_packed_float64_array_get",
- "return_type": "double",
- "arguments": [
- ["const godot_packed_float64_array *", "p_self"],
- ["const godot_int", "p_idx"]
- ]
- },
- {
- "name": "godot_packed_float64_array_size",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_packed_float64_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_float64_array_destroy",
- "return_type": "void",
- "arguments": [
- ["godot_packed_float64_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_int64_array_ptr",
- "return_type": "const int64_t *",
- "arguments": [
- ["const godot_packed_int64_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_int64_array_ptrw",
- "return_type": "int64_t *",
- "arguments": [
- ["godot_packed_int64_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_float64_array_ptr",
- "return_type": "const double *",
- "arguments": [
- ["const godot_packed_float64_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_float64_array_ptrw",
- "return_type": "double *",
- "arguments": [
- ["godot_packed_float64_array *", "p_self"]
- ]
- },
- {
- "name": "godot_rect2_as_rect2i",
- "return_type": "godot_rect2i",
- "arguments": [
- ["const godot_rect2 *", "p_self"]
- ]
- },
- {
- "name": "godot_rect2i_new_with_position_and_size",
- "return_type": "void",
- "arguments": [
- ["godot_rect2i *", "r_dest"],
- ["const godot_vector2i *", "p_pos"],
- ["const godot_vector2i *", "p_size"]
- ]
- },
- {
- "name": "godot_rect2i_new",
- "return_type": "void",
- "arguments": [
- ["godot_rect2i *", "r_dest"],
- ["const godot_int", "p_x"],
- ["const godot_int", "p_y"],
- ["const godot_int", "p_width"],
- ["const godot_int", "p_height"]
- ]
- },
- {
- "name": "godot_rect2i_as_string",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_rect2i *", "p_self"]
- ]
- },
- {
- "name": "godot_rect2i_as_rect2",
- "return_type": "godot_rect2",
- "arguments": [
- ["const godot_rect2i *", "p_self"]
- ]
- },
- {
- "name": "godot_rect2i_get_area",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_rect2i *", "p_self"]
- ]
- },
- {
- "name": "godot_rect2i_intersects",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_rect2i *", "p_self"],
- ["const godot_rect2i *", "p_b"]
- ]
- },
- {
- "name": "godot_rect2i_encloses",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_rect2i *", "p_self"],
- ["const godot_rect2i *", "p_b"]
- ]
- },
- {
- "name": "godot_rect2i_has_no_area",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_rect2i *", "p_self"]
- ]
- },
- {
- "name": "godot_rect2i_clip",
- "return_type": "godot_rect2i",
- "arguments": [
- ["const godot_rect2i *", "p_self"],
- ["const godot_rect2i *", "p_b"]
- ]
- },
- {
- "name": "godot_rect2i_merge",
- "return_type": "godot_rect2i",
- "arguments": [
- ["const godot_rect2i *", "p_self"],
- ["const godot_rect2i *", "p_b"]
- ]
- },
- {
- "name": "godot_rect2i_has_point",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_rect2i *", "p_self"],
- ["const godot_vector2i *", "p_point"]
- ]
- },
- {
- "name": "godot_rect2i_grow",
- "return_type": "godot_rect2i",
- "arguments": [
- ["const godot_rect2i *", "p_self"],
- ["const godot_int", "p_by"]
- ]
- },
- {
- "name": "godot_rect2i_grow_individual",
- "return_type": "godot_rect2i",
- "arguments": [
- ["const godot_rect2i *", "p_self"],
- ["const godot_int", "p_left"],
- ["const godot_int", "p_top"],
- ["const godot_int", "p_right"],
- ["const godot_int", "p_bottom"]
- ]
- },
- {
- "name": "godot_rect2i_grow_margin",
- "return_type": "godot_rect2i",
- "arguments": [
- ["const godot_rect2i *", "p_self"],
- ["const godot_int", "p_margin"],
- ["const godot_int", "p_by"]
- ]
- },
- {
- "name": "godot_rect2i_abs",
- "return_type": "godot_rect2i",
- "arguments": [
- ["const godot_rect2i *", "p_self"]
- ]
- },
- {
- "name": "godot_rect2i_expand",
- "return_type": "godot_rect2i",
- "arguments": [
- ["const godot_rect2i *", "p_self"],
- ["const godot_vector2i *", "p_to"]
- ]
- },
- {
- "name": "godot_rect2i_operator_equal",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_rect2i *", "p_self"],
- ["const godot_rect2i *", "p_b"]
- ]
- },
- {
- "name": "godot_rect2i_get_position",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_rect2i *", "p_self"]
- ]
- },
- {
- "name": "godot_rect2i_get_size",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_rect2i *", "p_self"]
- ]
- },
- {
- "name": "godot_rect2i_set_position",
- "return_type": "void",
- "arguments": [
- ["godot_rect2i *", "p_self"],
- ["const godot_vector2i *", "p_pos"]
- ]
- },
- {
- "name": "godot_rect2i_set_size",
- "return_type": "void",
- "arguments": [
- ["godot_rect2i *", "p_self"],
- ["const godot_vector2i *", "p_size"]
- ]
- },
- {
- "name": "godot_variant_new_string_name",
- "return_type": "void",
- "arguments": [
- ["godot_variant *", "r_dest"],
- ["const godot_string_name *", "p_s"]
- ]
- },
- {
- "name": "godot_variant_new_vector2i",
- "return_type": "void",
- "arguments": [
- ["godot_variant *", "r_dest"],
- ["const godot_vector2i *", "p_v2"]
- ]
- },
- {
- "name": "godot_variant_new_rect2i",
- "return_type": "void",
- "arguments": [
- ["godot_variant *", "r_dest"],
- ["const godot_rect2i *", "p_rect2"]
- ]
- },
- {
- "name": "godot_variant_new_vector3i",
- "return_type": "void",
- "arguments": [
- ["godot_variant *", "r_dest"],
- ["const godot_vector3i *", "p_v3"]
- ]
- },
- {
- "name": "godot_variant_new_callable",
- "return_type": "void",
- "arguments": [
- ["godot_variant *", "r_dest"],
- ["const godot_callable *", "p_cb"]
- ]
- },
- {
- "name": "godot_variant_new_signal",
- "return_type": "void",
- "arguments": [
- ["godot_variant *", "r_dest"],
- ["const godot_signal *", "p_signal"]
- ]
- },
- {
- "name": "godot_variant_new_packed_int64_array",
- "return_type": "void",
- "arguments": [
- ["godot_variant *", "r_dest"],
- ["const godot_packed_int64_array *", "p_pia"]
- ]
- },
- {
- "name": "godot_variant_new_packed_float64_array",
- "return_type": "void",
- "arguments": [
- ["godot_variant *", "r_dest"],
- ["const godot_packed_float64_array *", "p_pra"]
- ]
- },
- {
- "name": "godot_variant_as_string_name",
- "return_type": "godot_string_name",
- "arguments": [
- ["const godot_variant *", "p_self"]
- ]
- },
- {
- "name": "godot_variant_as_vector2i",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_variant *", "p_self"]
- ]
- },
- {
- "name": "godot_variant_as_rect2i",
- "return_type": "godot_rect2i",
- "arguments": [
- ["const godot_variant *", "p_self"]
- ]
- },
- {
- "name": "godot_variant_as_vector3i",
- "return_type": "godot_vector3i",
- "arguments": [
- ["const godot_variant *", "p_self"]
- ]
- },
- {
- "name": "godot_variant_as_callable",
- "return_type": "godot_callable",
- "arguments": [
- ["const godot_variant *", "p_self"]
- ]
- },
- {
- "name": "godot_variant_as_signal",
- "return_type": "godot_signal",
- "arguments": [
- ["const godot_variant *", "p_self"]
- ]
- },
- {
- "name": "godot_variant_as_packed_int64_array",
- "return_type": "godot_packed_int64_array",
- "arguments": [
- ["const godot_variant *", "p_self"]
- ]
- },
- {
- "name": "godot_variant_as_packed_float64_array",
- "return_type": "godot_packed_float64_array",
- "arguments": [
- ["const godot_variant *", "p_self"]
- ]
- },
- {
- "name": "godot_variant_hash",
- "return_type": "uint32_t",
- "arguments": [
- ["const godot_variant *", "p_self"]
- ]
- },
- {
- "name": "godot_vector2_as_vector2i",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_vector2 *", "p_self"]
- ]
- },
- {
- "name": "godot_vector2_sign",
- "return_type": "godot_vector2",
- "arguments": [
- ["const godot_vector2 *", "p_self"]
- ]
- },
- {
- "name": "godot_vector2i_new",
- "return_type": "void",
- "arguments": [
- ["godot_vector2i *", "r_dest"],
- ["const godot_int", "p_x"],
- ["const godot_int", "p_y"]
- ]
- },
- {
- "name": "godot_vector2i_as_string",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_vector2i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector2i_as_vector2",
- "return_type": "godot_vector2",
- "arguments": [
- ["const godot_vector2i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector2i_aspect",
- "return_type": "godot_real",
- "arguments": [
- ["const godot_vector2i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector2i_abs",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_vector2i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector2i_sign",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_vector2i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector2i_operator_add",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_vector2i *", "p_self"],
- ["const godot_vector2i *", "p_b"]
- ]
- },
- {
- "name": "godot_vector2i_operator_subtract",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_vector2i *", "p_self"],
- ["const godot_vector2i *", "p_b"]
- ]
- },
- {
- "name": "godot_vector2i_operator_multiply_vector",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_vector2i *", "p_self"],
- ["const godot_vector2i *", "p_b"]
- ]
- },
- {
- "name": "godot_vector2i_operator_multiply_scalar",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_vector2i *", "p_self"],
- ["const godot_int", "p_b"]
- ]
- },
- {
- "name": "godot_vector2i_operator_divide_vector",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_vector2i *", "p_self"],
- ["const godot_vector2i *", "p_b"]
- ]
- },
- {
- "name": "godot_vector2i_operator_divide_scalar",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_vector2i *", "p_self"],
- ["const godot_int", "p_b"]
- ]
- },
- {
- "name": "godot_vector2i_operator_equal",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_vector2i *", "p_self"],
- ["const godot_vector2i *", "p_b"]
- ]
- },
- {
- "name": "godot_vector2i_operator_less",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_vector2i *", "p_self"],
- ["const godot_vector2i *", "p_b"]
- ]
- },
- {
- "name": "godot_vector2i_operator_neg",
- "return_type": "godot_vector2i",
- "arguments": [
- ["const godot_vector2i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector2i_set_x",
- "return_type": "void",
- "arguments": [
- ["godot_vector2i *", "p_self"],
- ["const godot_int", "p_x"]
- ]
- },
- {
- "name": "godot_vector2i_set_y",
- "return_type": "void",
- "arguments": [
- ["godot_vector2i *", "p_self"],
- ["const godot_int", "p_y"]
- ]
- },
- {
- "name": "godot_vector2i_get_x",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_vector2i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector2i_get_y",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_vector2i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector3_as_vector3i",
- "return_type": "godot_vector3i",
- "arguments": [
- ["const godot_vector3 *", "p_self"]
- ]
- },
- {
- "name": "godot_vector3_sign",
- "return_type": "godot_vector3",
- "arguments": [
- ["const godot_vector3 *", "p_self"]
- ]
- },
- {
- "name": "godot_vector3i_new",
- "return_type": "void",
- "arguments": [
- ["godot_vector3i *", "r_dest"],
- ["const godot_int", "p_x"],
- ["const godot_int", "p_y"],
- ["const godot_int", "p_z"]
- ]
- },
- {
- "name": "godot_vector3i_as_string",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_vector3i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector3i_as_vector3",
- "return_type": "godot_vector3",
- "arguments": [
- ["const godot_vector3i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector3i_min_axis",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_vector3i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector3i_max_axis",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_vector3i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector3i_abs",
- "return_type": "godot_vector3i",
- "arguments": [
- ["const godot_vector3i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector3i_sign",
- "return_type": "godot_vector3i",
- "arguments": [
- ["const godot_vector3i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector3i_operator_add",
- "return_type": "godot_vector3i",
- "arguments": [
- ["const godot_vector3i *", "p_self"],
- ["const godot_vector3i *", "p_b"]
- ]
- },
- {
- "name": "godot_vector3i_operator_subtract",
- "return_type": "godot_vector3i",
- "arguments": [
- ["const godot_vector3i *", "p_self"],
- ["const godot_vector3i *", "p_b"]
- ]
- },
- {
- "name": "godot_vector3i_operator_multiply_vector",
- "return_type": "godot_vector3i",
- "arguments": [
- ["const godot_vector3i *", "p_self"],
- ["const godot_vector3i *", "p_b"]
- ]
- },
- {
- "name": "godot_vector3i_operator_multiply_scalar",
- "return_type": "godot_vector3i",
- "arguments": [
- ["const godot_vector3i *", "p_self"],
- ["const godot_int", "p_b"]
- ]
- },
- {
- "name": "godot_vector3i_operator_divide_vector",
- "return_type": "godot_vector3i",
- "arguments": [
- ["const godot_vector3i *", "p_self"],
- ["const godot_vector3i *", "p_b"]
- ]
- },
- {
- "name": "godot_vector3i_operator_divide_scalar",
- "return_type": "godot_vector3i",
- "arguments": [
- ["const godot_vector3i *", "p_self"],
- ["const godot_int", "p_b"]
- ]
- },
- {
- "name": "godot_vector3i_operator_equal",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_vector3i *", "p_self"],
- ["const godot_vector3i *", "p_b"]
- ]
- },
- {
- "name": "godot_vector3i_operator_less",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_vector3i *", "p_self"],
- ["const godot_vector3i *", "p_b"]
- ]
- },
- {
- "name": "godot_vector3i_operator_neg",
- "return_type": "godot_vector3i",
- "arguments": [
- ["const godot_vector3i *", "p_self"]
- ]
- },
- {
- "name": "godot_vector3i_set_axis",
- "return_type": "void",
- "arguments": [
- ["godot_vector3i *", "p_self"],
- ["const godot_vector3_axis", "p_axis"],
- ["const godot_int", "p_val"]
- ]
- },
- {
- "name": "godot_vector3i_get_axis",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_vector3i *", "p_self"],
- ["const godot_vector3_axis", "p_axis"]
- ]
- }
- ]
- },
- "api": [
- {
- "name": "godot_dictionary_duplicate",
- "return_type": "godot_dictionary",
- "arguments": [
- ["const godot_dictionary *", "p_self"],
- ["const godot_bool", "p_deep"]
- ]
- },
- {
- "name": "godot_vector3_move_toward",
- "return_type": "godot_vector3",
- "arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_to"],
- ["const godot_real", "p_delta"]
- ]
- },
- {
- "name": "godot_vector2_move_toward",
- "return_type": "godot_vector2",
- "arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_to"],
- ["const godot_real", "p_delta"]
- ]
- },
- {
- "name": "godot_string_count",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_what"],
- ["godot_int", "p_from"],
- ["godot_int", "p_to"]
- ]
- },
- {
- "name": "godot_string_countn",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_what"],
- ["godot_int", "p_from"],
- ["godot_int", "p_to"]
- ]
- },
- {
- "name": "godot_vector3_direction_to",
- "return_type": "godot_vector3",
- "arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_to"]
- ]
- },
- {
- "name": "godot_vector2_direction_to",
- "return_type": "godot_vector2",
- "arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_to"]
- ]
- },
- {
- "name": "godot_array_slice",
- "return_type": "godot_array",
- "arguments": [
- ["const godot_array *", "p_self"],
- ["const godot_int", "p_begin"],
- ["const godot_int", "p_end"],
- ["const godot_int", "p_step"],
- ["const godot_bool", "p_deep"]
- ]
- },
- {
- "name": "godot_packed_byte_array_empty",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_packed_byte_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_int32_array_empty",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_packed_int32_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_float32_array_empty",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_packed_float32_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_string_array_empty",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_packed_string_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_vector2_array_empty",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_packed_vector2_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_vector3_array_empty",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_packed_vector3_array *", "p_self"]
- ]
- },
- {
- "name": "godot_packed_color_array_empty",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_packed_color_array *", "p_self"]
- ]
- },
- {
- "name": "godot_get_class_tag",
- "return_type": "void *",
- "arguments": [
- ["const godot_string_name *", "p_class"]
- ]
- },
- {
- "name": "godot_object_cast_to",
- "return_type": "godot_object *",
- "arguments": [
- ["const godot_object *", "p_object"],
- ["void *", "p_class_tag"]
- ]
- },
- {
- "name": "godot_instance_from_id",
- "return_type": "godot_object *",
- "arguments": [
- ["uint64_t", "p_instance_id"]
- ]
- }
- ]
- },
- "api": [
- {
- "name": "godot_color_to_abgr32",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_to_abgr64",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_to_argb64",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_to_rgba64",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_darkened",
- "return_type": "godot_color",
- "arguments": [
- ["const godot_color *", "p_self"],
- ["const godot_real", "p_amount"]
- ]
- },
- {
- "name": "godot_color_from_hsv",
- "return_type": "godot_color",
- "arguments": [
- ["const godot_color *", "p_self"],
- ["const godot_real", "p_h"],
- ["const godot_real", "p_s"],
- ["const godot_real", "p_v"],
- ["const godot_real", "p_a"]
- ]
- },
- {
- "name": "godot_color_lightened",
- "return_type": "godot_color",
- "arguments": [
- ["const godot_color *", "p_self"],
- ["const godot_real", "p_amount"]
- ]
- },
- {
- "name": "godot_array_duplicate",
- "return_type": "godot_array",
- "arguments": [
- ["const godot_array *", "p_self"],
- ["const godot_bool", "p_deep"]
- ]
- },
- {
- "name": "godot_array_max",
- "return_type": "godot_variant",
- "arguments": [
- ["const godot_array *", "p_self"]
- ]
- },
- {
- "name": "godot_array_min",
- "return_type": "godot_variant",
- "arguments": [
- ["const godot_array *", "p_self"]
- ]
- },
- {
- "name": "godot_array_shuffle",
- "return_type": "void",
- "arguments": [
- ["godot_array *", "p_self"]
- ]
- },
- {
- "name": "godot_basis_slerp",
- "return_type": "godot_basis",
- "arguments": [
- ["const godot_basis *", "p_self"],
- ["const godot_basis *", "p_b"],
- ["const godot_real", "p_t"]
- ]
- },
- {
- "name": "godot_dictionary_get_with_default",
- "return_type": "godot_variant",
- "arguments": [
- ["const godot_dictionary *", "p_self"],
- ["const godot_variant *", "p_key"],
- ["const godot_variant *", "p_default"]
- ]
- },
- {
- "name": "godot_dictionary_erase_with_return",
- "return_type": "bool",
- "arguments": [
- ["godot_dictionary *", "p_self"],
- ["const godot_variant *", "p_key"]
- ]
- },
- {
- "name": "godot_node_path_get_as_property_path",
- "return_type": "godot_node_path",
- "arguments": [
- ["const godot_node_path *", "p_self"]
- ]
- },
- {
- "name": "godot_quat_set_axis_angle",
- "return_type": "void",
- "arguments": [
- ["godot_quat *", "p_self"],
- ["const godot_vector3 *", "p_axis"],
- ["const godot_real", "p_angle"]
- ]
- },
- {
- "name": "godot_rect2_grow_individual",
- "return_type": "godot_rect2",
- "arguments": [
- ["const godot_rect2 *", "p_self"],
- ["const godot_real", "p_left"],
- ["const godot_real", "p_top"],
- ["const godot_real", "p_right"],
- ["const godot_real", "p_bottom"]
- ]
- },
- {
- "name": "godot_rect2_grow_margin",
- "return_type": "godot_rect2",
- "arguments": [
- ["const godot_rect2 *", "p_self"],
- ["const godot_int", "p_margin"],
- ["const godot_real", "p_by"]
- ]
- },
- {
- "name": "godot_rect2_abs",
- "return_type": "godot_rect2",
- "arguments": [
- ["const godot_rect2 *", "p_self"]
- ]
- },
- {
- "name": "godot_string_dedent",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"]
- ]
- },
- {
- "name": "godot_string_trim_prefix",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_prefix"]
- ]
- },
- {
- "name": "godot_string_trim_suffix",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_suffix"]
- ]
- },
- {
- "name": "godot_string_rstrip",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_chars"]
- ]
- },
- {
- "name": "godot_string_rsplit",
- "return_type": "godot_packed_string_array",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_divisor"],
- ["const godot_bool", "p_allow_empty"],
- ["const godot_int", "p_maxsplit"]
- ]
- },
- {
- "name": "godot_basis_get_quat",
- "return_type": "godot_quat",
- "arguments": [
- ["const godot_basis *", "p_self"]
- ]
- },
- {
- "name": "godot_basis_set_quat",
- "return_type": "void",
- "arguments": [
- ["godot_basis *", "p_self"],
- ["const godot_quat *", "p_quat"]
- ]
- },
- {
- "name": "godot_basis_set_axis_angle_scale",
- "return_type": "void",
- "arguments": [
- ["godot_basis *", "p_self"],
- ["const godot_vector3 *", "p_axis"],
- ["godot_real", "p_phi"],
- ["const godot_vector3 *", "p_scale"]
- ]
- },
- {
- "name": "godot_basis_set_euler_scale",
- "return_type": "void",
- "arguments": [
- ["godot_basis *", "p_self"],
- ["const godot_vector3 *", "p_euler"],
- ["const godot_vector3 *", "p_scale"]
- ]
- },
- {
- "name": "godot_basis_set_quat_scale",
- "return_type": "void",
- "arguments": [
- ["godot_basis *", "p_self"],
- ["const godot_quat *", "p_quat"],
- ["const godot_vector3 *", "p_scale"]
- ]
- },
- {
- "name": "godot_quat_new_with_basis",
- "return_type": "void",
- "arguments": [
- ["godot_quat *", "r_dest"],
- ["const godot_basis *", "p_basis"]
- ]
- },
- {
- "name": "godot_quat_new_with_euler",
- "return_type": "void",
- "arguments": [
- ["godot_quat *", "r_dest"],
- ["const godot_vector3 *", "p_euler"]
- ]
- },
- {
- "name": "godot_transform_new_with_quat",
- "return_type": "void",
- "arguments": [
- ["godot_transform *", "r_dest"],
- ["const godot_quat *", "p_quat"]
- ]
- },
- {
- "name": "godot_variant_get_operator_name",
- "return_type": "godot_string",
- "arguments": [
- ["godot_variant_operator", "p_op"]
- ]
- },
- {
- "name": "godot_variant_evaluate",
- "return_type": "void",
- "arguments": [
- ["godot_variant_operator", "p_op"],
- ["const godot_variant *", "p_a"],
- ["const godot_variant *", "p_b"],
- ["godot_variant *", "r_ret"],
- ["godot_bool *", "r_valid"]
- ]
- }
- ]
- },
+ "next": null,
"api": [
{
- "name": "godot_color_new_rgba",
- "return_type": "void",
- "arguments": [
- ["godot_color *", "r_dest"],
- ["const godot_real", "p_r"],
- ["const godot_real", "p_g"],
- ["const godot_real", "p_b"],
- ["const godot_real", "p_a"]
- ]
- },
- {
- "name": "godot_color_new_rgb",
- "return_type": "void",
- "arguments": [
- ["godot_color *", "r_dest"],
- ["const godot_real", "p_r"],
- ["const godot_real", "p_g"],
- ["const godot_real", "p_b"]
- ]
- },
- {
- "name": "godot_color_get_r",
- "return_type": "godot_real",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_set_r",
- "return_type": "void",
- "arguments": [
- ["godot_color *", "p_self"],
- ["const godot_real", "r"]
- ]
- },
- {
- "name": "godot_color_get_g",
- "return_type": "godot_real",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_set_g",
+ "name": "godot_aabb_new",
"return_type": "void",
"arguments": [
- ["godot_color *", "p_self"],
- ["const godot_real", "g"]
+ ["godot_aabb *", "r_dest"],
+ ["const godot_vector3 *", "p_pos"],
+ ["const godot_vector3 *", "p_size"]
]
},
{
- "name": "godot_color_get_b",
- "return_type": "godot_real",
+ "name": "godot_aabb_get_position",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_color *", "p_self"]
+ ["const godot_aabb *", "p_self"]
]
},
{
- "name": "godot_color_set_b",
+ "name": "godot_aabb_set_position",
"return_type": "void",
"arguments": [
- ["godot_color *", "p_self"],
- ["const godot_real", "b"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_vector3 *", "p_v"]
]
},
{
- "name": "godot_color_get_a",
- "return_type": "godot_real",
+ "name": "godot_aabb_get_size",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_color *", "p_self"]
+ ["const godot_aabb *", "p_self"]
]
},
{
- "name": "godot_color_set_a",
+ "name": "godot_aabb_set_size",
"return_type": "void",
"arguments": [
- ["godot_color *", "p_self"],
- ["const godot_real", "a"]
- ]
- },
- {
- "name": "godot_color_get_h",
- "return_type": "godot_real",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_get_s",
- "return_type": "godot_real",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_get_v",
- "return_type": "godot_real",
- "arguments": [
- ["const godot_color *", "p_self"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_vector3 *", "p_v"]
]
},
{
- "name": "godot_color_as_string",
+ "name": "godot_aabb_as_string",
"return_type": "godot_string",
"arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_to_rgba32",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_to_argb32",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_inverted",
- "return_type": "godot_color",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_contrasted",
- "return_type": "godot_color",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
- "name": "godot_color_lerp",
- "return_type": "godot_color",
- "arguments": [
- ["const godot_color *", "p_self"],
- ["const godot_color *", "p_b"],
- ["const godot_real", "p_t"]
- ]
- },
- {
- "name": "godot_color_blend",
- "return_type": "godot_color",
- "arguments": [
- ["const godot_color *", "p_self"],
- ["const godot_color *", "p_over"]
+ ["const godot_aabb *", "p_self"]
]
},
{
- "name": "godot_color_to_html",
- "return_type": "godot_string",
+ "name": "godot_aabb_get_area",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_color *", "p_self"],
- ["const godot_bool", "p_with_alpha"]
+ ["const godot_aabb *", "p_self"]
]
},
{
- "name": "godot_color_operator_equal",
+ "name": "godot_aabb_has_no_area",
"return_type": "godot_bool",
"arguments": [
- ["const godot_color *", "p_self"],
- ["const godot_color *", "p_b"]
+ ["const godot_aabb *", "p_self"]
]
},
{
- "name": "godot_color_operator_less",
+ "name": "godot_aabb_has_no_surface",
"return_type": "godot_bool",
"arguments": [
- ["const godot_color *", "p_self"],
- ["const godot_color *", "p_b"]
+ ["const godot_aabb *", "p_self"]
]
},
{
- "name": "godot_vector2_new",
- "return_type": "void",
+ "name": "godot_aabb_intersects",
+ "return_type": "godot_bool",
"arguments": [
- ["godot_vector2 *", "r_dest"],
- ["const godot_real", "p_x"],
- ["const godot_real", "p_y"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_aabb *", "p_with"]
]
},
{
- "name": "godot_vector2_as_string",
- "return_type": "godot_string",
+ "name": "godot_aabb_encloses",
+ "return_type": "godot_bool",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_aabb *", "p_with"]
]
},
{
- "name": "godot_vector2_normalized",
- "return_type": "godot_vector2",
+ "name": "godot_aabb_merge",
+ "return_type": "godot_aabb",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_aabb *", "p_with"]
]
},
{
- "name": "godot_vector2_length",
- "return_type": "godot_real",
+ "name": "godot_aabb_intersection",
+ "return_type": "godot_aabb",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_aabb *", "p_with"]
]
},
{
- "name": "godot_vector2_angle",
- "return_type": "godot_real",
+ "name": "godot_aabb_intersects_plane",
+ "return_type": "godot_bool",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_plane *", "p_plane"]
]
},
{
- "name": "godot_vector2_length_squared",
- "return_type": "godot_real",
+ "name": "godot_aabb_intersects_segment",
+ "return_type": "godot_bool",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_vector3 *", "p_from"],
+ ["const godot_vector3 *", "p_to"]
]
},
{
- "name": "godot_vector2_is_normalized",
+ "name": "godot_aabb_has_point",
"return_type": "godot_bool",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_vector3 *", "p_point"]
]
},
{
- "name": "godot_vector2_distance_to",
- "return_type": "godot_real",
+ "name": "godot_aabb_get_support",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_to"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_vector3 *", "p_dir"]
]
},
{
- "name": "godot_vector2_distance_squared_to",
- "return_type": "godot_real",
+ "name": "godot_aabb_get_longest_axis",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_to"]
+ ["const godot_aabb *", "p_self"]
]
},
{
- "name": "godot_vector2_angle_to",
- "return_type": "godot_real",
+ "name": "godot_aabb_get_longest_axis_index",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_to"]
+ ["const godot_aabb *", "p_self"]
]
},
{
- "name": "godot_vector2_angle_to_point",
+ "name": "godot_aabb_get_longest_axis_size",
"return_type": "godot_real",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_to"]
+ ["const godot_aabb *", "p_self"]
]
},
{
- "name": "godot_vector2_lerp",
- "return_type": "godot_vector2",
+ "name": "godot_aabb_get_shortest_axis",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_b"],
- ["const godot_real", "p_t"]
+ ["const godot_aabb *", "p_self"]
]
},
{
- "name": "godot_vector2_cubic_interpolate",
- "return_type": "godot_vector2",
+ "name": "godot_aabb_get_shortest_axis_index",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_b"],
- ["const godot_vector2 *", "p_pre_a"],
- ["const godot_vector2 *", "p_post_b"],
- ["const godot_real", "p_t"]
+ ["const godot_aabb *", "p_self"]
]
},
{
- "name": "godot_vector2_rotated",
- "return_type": "godot_vector2",
+ "name": "godot_aabb_get_shortest_axis_size",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_real", "p_phi"]
+ ["const godot_aabb *", "p_self"]
]
},
{
- "name": "godot_vector2_tangent",
- "return_type": "godot_vector2",
+ "name": "godot_aabb_expand",
+ "return_type": "godot_aabb",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_vector3 *", "p_to_point"]
]
},
{
- "name": "godot_vector2_floor",
- "return_type": "godot_vector2",
+ "name": "godot_aabb_grow",
+ "return_type": "godot_aabb",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_real", "p_by"]
]
},
{
- "name": "godot_vector2_snapped",
- "return_type": "godot_vector2",
+ "name": "godot_aabb_get_endpoint",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_by"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_int", "p_idx"]
]
},
{
- "name": "godot_vector2_aspect",
- "return_type": "godot_real",
+ "name": "godot_aabb_operator_equal",
+ "return_type": "godot_bool",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["const godot_aabb *", "p_self"],
+ ["const godot_aabb *", "p_b"]
]
},
{
- "name": "godot_vector2_dot",
- "return_type": "godot_real",
+ "name": "godot_array_new",
+ "return_type": "void",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_with"]
+ ["godot_array *", "r_dest"]
]
},
{
- "name": "godot_vector2_slide",
- "return_type": "godot_vector2",
+ "name": "godot_array_new_copy",
+ "return_type": "void",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_n"]
+ ["godot_array *", "r_dest"],
+ ["const godot_array *", "p_src"]
]
},
{
- "name": "godot_vector2_bounce",
- "return_type": "godot_vector2",
+ "name": "godot_array_new_packed_color_array",
+ "return_type": "void",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_n"]
+ ["godot_array *", "r_dest"],
+ ["const godot_packed_color_array *", "p_pca"]
]
},
{
- "name": "godot_vector2_reflect",
- "return_type": "godot_vector2",
+ "name": "godot_array_new_packed_vector3_array",
+ "return_type": "void",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_n"]
+ ["godot_array *", "r_dest"],
+ ["const godot_packed_vector3_array *", "p_pv3a"]
]
},
{
- "name": "godot_vector2_abs",
- "return_type": "godot_vector2",
+ "name": "godot_array_new_packed_vector2_array",
+ "return_type": "void",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["godot_array *", "r_dest"],
+ ["const godot_packed_vector2_array *", "p_pv2a"]
]
},
{
- "name": "godot_vector2_clamped",
- "return_type": "godot_vector2",
+ "name": "godot_array_new_packed_string_array",
+ "return_type": "void",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_real", "p_length"]
+ ["godot_array *", "r_dest"],
+ ["const godot_packed_string_array *", "p_psa"]
]
},
{
- "name": "godot_vector2_operator_add",
- "return_type": "godot_vector2",
+ "name": "godot_array_new_packed_float32_array",
+ "return_type": "void",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_b"]
+ ["godot_array *", "r_dest"],
+ ["const godot_packed_float32_array *", "p_pra"]
]
},
{
- "name": "godot_vector2_operator_subtract",
- "return_type": "godot_vector2",
+ "name": "godot_array_new_packed_float64_array",
+ "return_type": "void",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_b"]
+ ["godot_array *", "r_dest"],
+ ["const godot_packed_float64_array *", "p_pra"]
]
},
{
- "name": "godot_vector2_operator_multiply_vector",
- "return_type": "godot_vector2",
+ "name": "godot_array_new_packed_int32_array",
+ "return_type": "void",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_b"]
+ ["godot_array *", "r_dest"],
+ ["const godot_packed_int32_array *", "p_pia"]
]
},
{
- "name": "godot_vector2_operator_multiply_scalar",
- "return_type": "godot_vector2",
+ "name": "godot_array_new_packed_int64_array",
+ "return_type": "void",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_real", "p_b"]
+ ["godot_array *", "r_dest"],
+ ["const godot_packed_int64_array *", "p_pia"]
]
},
{
- "name": "godot_vector2_operator_divide_vector",
- "return_type": "godot_vector2",
+ "name": "godot_array_new_packed_byte_array",
+ "return_type": "void",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_b"]
+ ["godot_array *", "r_dest"],
+ ["const godot_packed_byte_array *", "p_pba"]
]
},
{
- "name": "godot_vector2_operator_divide_scalar",
- "return_type": "godot_vector2",
+ "name": "godot_array_set",
+ "return_type": "void",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_real", "p_b"]
+ ["godot_array *", "p_self"],
+ ["const godot_int", "p_idx"],
+ ["const godot_variant *", "p_value"]
]
},
{
- "name": "godot_vector2_operator_equal",
- "return_type": "godot_bool",
+ "name": "godot_array_get",
+ "return_type": "godot_variant",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_b"]
+ ["const godot_array *", "p_self"],
+ ["const godot_int", "p_idx"]
]
},
{
- "name": "godot_vector2_operator_less",
- "return_type": "godot_bool",
+ "name": "godot_array_operator_index",
+ "return_type": "godot_variant *",
"arguments": [
- ["const godot_vector2 *", "p_self"],
- ["const godot_vector2 *", "p_b"]
+ ["godot_array *", "p_self"],
+ ["const godot_int", "p_idx"]
]
},
{
- "name": "godot_vector2_operator_neg",
- "return_type": "godot_vector2",
+ "name": "godot_array_operator_index_const",
+ "return_type": "const godot_variant *",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["const godot_array *", "p_self"],
+ ["const godot_int", "p_idx"]
]
},
{
- "name": "godot_vector2_set_x",
+ "name": "godot_array_append",
"return_type": "void",
"arguments": [
- ["godot_vector2 *", "p_self"],
- ["const godot_real", "p_x"]
+ ["godot_array *", "p_self"],
+ ["const godot_variant *", "p_value"]
]
},
{
- "name": "godot_vector2_set_y",
+ "name": "godot_array_clear",
"return_type": "void",
"arguments": [
- ["godot_vector2 *", "p_self"],
- ["const godot_real", "p_y"]
+ ["godot_array *", "p_self"]
]
},
{
- "name": "godot_vector2_get_x",
- "return_type": "godot_real",
+ "name": "godot_array_count",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["const godot_array *", "p_self"],
+ ["const godot_variant *", "p_value"]
]
},
{
- "name": "godot_vector2_get_y",
- "return_type": "godot_real",
+ "name": "godot_array_duplicate",
+ "return_type": "godot_array",
"arguments": [
- ["const godot_vector2 *", "p_self"]
+ ["const godot_array *", "p_self"],
+ ["const godot_bool", "p_deep"]
]
},
{
- "name": "godot_quat_new",
- "return_type": "void",
+ "name": "godot_array_empty",
+ "return_type": "godot_bool",
"arguments": [
- ["godot_quat *", "r_dest"],
- ["const godot_real", "p_x"],
- ["const godot_real", "p_y"],
- ["const godot_real", "p_z"],
- ["const godot_real", "p_w"]
+ ["const godot_array *", "p_self"]
]
},
{
- "name": "godot_quat_new_with_axis_angle",
+ "name": "godot_array_erase",
"return_type": "void",
"arguments": [
- ["godot_quat *", "r_dest"],
- ["const godot_vector3 *", "p_axis"],
- ["const godot_real", "p_angle"]
+ ["godot_array *", "p_self"],
+ ["const godot_variant *", "p_value"]
]
},
{
- "name": "godot_quat_get_x",
- "return_type": "godot_real",
+ "name": "godot_array_front",
+ "return_type": "godot_variant",
"arguments": [
- ["const godot_quat *", "p_self"]
+ ["const godot_array *", "p_self"]
]
},
{
- "name": "godot_quat_set_x",
- "return_type": "void",
+ "name": "godot_array_back",
+ "return_type": "godot_variant",
"arguments": [
- ["godot_quat *", "p_self"],
- ["const godot_real", "val"]
+ ["const godot_array *", "p_self"]
]
},
{
- "name": "godot_quat_get_y",
- "return_type": "godot_real",
+ "name": "godot_array_find",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_quat *", "p_self"]
+ ["const godot_array *", "p_self"],
+ ["const godot_variant *", "p_what"],
+ ["const godot_int", "p_from"]
]
},
{
- "name": "godot_quat_set_y",
- "return_type": "void",
+ "name": "godot_array_find_last",
+ "return_type": "godot_int",
"arguments": [
- ["godot_quat *", "p_self"],
- ["const godot_real", "val"]
+ ["const godot_array *", "p_self"],
+ ["const godot_variant *", "p_what"]
]
},
{
- "name": "godot_quat_get_z",
- "return_type": "godot_real",
+ "name": "godot_array_has",
+ "return_type": "godot_bool",
"arguments": [
- ["const godot_quat *", "p_self"]
+ ["const godot_array *", "p_self"],
+ ["const godot_variant *", "p_value"]
]
},
{
- "name": "godot_quat_set_z",
- "return_type": "void",
+ "name": "godot_array_hash",
+ "return_type": "godot_int",
"arguments": [
- ["godot_quat *", "p_self"],
- ["const godot_real", "val"]
+ ["const godot_array *", "p_self"]
]
},
{
- "name": "godot_quat_get_w",
- "return_type": "godot_real",
+ "name": "godot_array_insert",
+ "return_type": "void",
"arguments": [
- ["const godot_quat *", "p_self"]
+ ["godot_array *", "p_self"],
+ ["const godot_int", "p_pos"],
+ ["const godot_variant *", "p_value"]
]
},
{
- "name": "godot_quat_set_w",
+ "name": "godot_array_invert",
"return_type": "void",
"arguments": [
- ["godot_quat *", "p_self"],
- ["const godot_real", "val"]
+ ["godot_array *", "p_self"]
]
},
{
- "name": "godot_quat_as_string",
- "return_type": "godot_string",
+ "name": "godot_array_max",
+ "return_type": "godot_variant",
"arguments": [
- ["const godot_quat *", "p_self"]
+ ["const godot_array *", "p_self"]
]
},
{
- "name": "godot_quat_length",
- "return_type": "godot_real",
+ "name": "godot_array_min",
+ "return_type": "godot_variant",
"arguments": [
- ["const godot_quat *", "p_self"]
+ ["const godot_array *", "p_self"]
]
},
{
- "name": "godot_quat_length_squared",
- "return_type": "godot_real",
+ "name": "godot_array_pop_back",
+ "return_type": "godot_variant",
"arguments": [
- ["const godot_quat *", "p_self"]
+ ["godot_array *", "p_self"]
]
},
{
- "name": "godot_quat_normalized",
- "return_type": "godot_quat",
+ "name": "godot_array_pop_front",
+ "return_type": "godot_variant",
"arguments": [
- ["const godot_quat *", "p_self"]
+ ["godot_array *", "p_self"]
]
},
{
- "name": "godot_quat_is_normalized",
- "return_type": "godot_bool",
+ "name": "godot_array_push_back",
+ "return_type": "void",
"arguments": [
- ["const godot_quat *", "p_self"]
+ ["godot_array *", "p_self"],
+ ["const godot_variant *", "p_value"]
]
},
{
- "name": "godot_quat_inverse",
- "return_type": "godot_quat",
+ "name": "godot_array_push_front",
+ "return_type": "void",
"arguments": [
- ["const godot_quat *", "p_self"]
+ ["godot_array *", "p_self"],
+ ["const godot_variant *", "p_value"]
]
},
{
- "name": "godot_quat_dot",
- "return_type": "godot_real",
+ "name": "godot_array_remove",
+ "return_type": "void",
"arguments": [
- ["const godot_quat *", "p_self"],
- ["const godot_quat *", "p_b"]
+ ["godot_array *", "p_self"],
+ ["const godot_int", "p_idx"]
]
},
{
- "name": "godot_quat_xform",
- "return_type": "godot_vector3",
+ "name": "godot_array_resize",
+ "return_type": "void",
"arguments": [
- ["const godot_quat *", "p_self"],
- ["const godot_vector3 *", "p_v"]
+ ["godot_array *", "p_self"],
+ ["const godot_int", "p_size"]
]
},
{
- "name": "godot_quat_slerp",
- "return_type": "godot_quat",
+ "name": "godot_array_rfind",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_quat *", "p_self"],
- ["const godot_quat *", "p_b"],
- ["const godot_real", "p_t"]
+ ["const godot_array *", "p_self"],
+ ["const godot_variant *", "p_what"],
+ ["const godot_int", "p_from"]
]
},
{
- "name": "godot_quat_slerpni",
- "return_type": "godot_quat",
+ "name": "godot_array_size",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_quat *", "p_self"],
- ["const godot_quat *", "p_b"],
- ["const godot_real", "p_t"]
+ ["const godot_array *", "p_self"]
]
},
{
- "name": "godot_quat_cubic_slerp",
- "return_type": "godot_quat",
+ "name": "godot_array_shuffle",
+ "return_type": "void",
"arguments": [
- ["const godot_quat *", "p_self"],
- ["const godot_quat *", "p_b"],
- ["const godot_quat *", "p_pre_a"],
- ["const godot_quat *", "p_post_b"],
- ["const godot_real", "p_t"]
+ ["godot_array *", "p_self"]
]
},
{
- "name": "godot_quat_operator_multiply",
- "return_type": "godot_quat",
+ "name": "godot_array_slice",
+ "return_type": "godot_array",
"arguments": [
- ["const godot_quat *", "p_self"],
- ["const godot_real", "p_b"]
+ ["const godot_array *", "p_self"],
+ ["const godot_int", "p_begin"],
+ ["const godot_int", "p_end"],
+ ["const godot_int", "p_step"],
+ ["const godot_bool", "p_deep"]
]
},
{
- "name": "godot_quat_operator_add",
- "return_type": "godot_quat",
+ "name": "godot_array_sort",
+ "return_type": "void",
"arguments": [
- ["const godot_quat *", "p_self"],
- ["const godot_quat *", "p_b"]
+ ["godot_array *", "p_self"]
]
},
{
- "name": "godot_quat_operator_subtract",
- "return_type": "godot_quat",
+ "name": "godot_array_sort_custom",
+ "return_type": "void",
"arguments": [
- ["const godot_quat *", "p_self"],
- ["const godot_quat *", "p_b"]
+ ["godot_array *", "p_self"],
+ ["godot_object *", "p_obj"],
+ ["const godot_string *", "p_func"]
]
},
{
- "name": "godot_quat_operator_divide",
- "return_type": "godot_quat",
+ "name": "godot_array_bsearch",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_quat *", "p_self"],
- ["const godot_real", "p_b"]
+ ["godot_array *", "p_self"],
+ ["const godot_variant *", "p_value"],
+ ["const godot_bool", "p_before"]
]
},
{
- "name": "godot_quat_operator_equal",
- "return_type": "godot_bool",
+ "name": "godot_array_bsearch_custom",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_quat *", "p_self"],
- ["const godot_quat *", "p_b"]
+ ["godot_array *", "p_self"],
+ ["const godot_variant *", "p_value"],
+ ["godot_object *", "p_obj"],
+ ["const godot_string *", "p_func"],
+ ["const godot_bool", "p_before"]
]
},
{
- "name": "godot_quat_operator_neg",
- "return_type": "godot_quat",
+ "name": "godot_array_destroy",
+ "return_type": "void",
"arguments": [
- ["const godot_quat *", "p_self"]
+ ["godot_array *", "p_self"]
]
},
{
@@ -2512,294 +816,803 @@
]
},
{
- "name": "godot_vector3_new",
+ "name": "godot_basis_slerp",
+ "return_type": "godot_basis",
+ "arguments": [
+ ["const godot_basis *", "p_self"],
+ ["const godot_basis *", "p_b"],
+ ["const godot_real", "p_t"]
+ ]
+ },
+ {
+ "name": "godot_basis_get_quat",
+ "return_type": "godot_quat",
+ "arguments": [
+ ["const godot_basis *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_basis_set_quat",
"return_type": "void",
"arguments": [
- ["godot_vector3 *", "r_dest"],
- ["const godot_real", "p_x"],
- ["const godot_real", "p_y"],
- ["const godot_real", "p_z"]
+ ["godot_basis *", "p_self"],
+ ["const godot_quat *", "p_quat"]
]
},
{
- "name": "godot_vector3_as_string",
+ "name": "godot_basis_set_axis_angle_scale",
+ "return_type": "void",
+ "arguments": [
+ ["godot_basis *", "p_self"],
+ ["const godot_vector3 *", "p_axis"],
+ ["godot_real", "p_phi"],
+ ["const godot_vector3 *", "p_scale"]
+ ]
+ },
+ {
+ "name": "godot_basis_set_euler_scale",
+ "return_type": "void",
+ "arguments": [
+ ["godot_basis *", "p_self"],
+ ["const godot_vector3 *", "p_euler"],
+ ["const godot_vector3 *", "p_scale"]
+ ]
+ },
+ {
+ "name": "godot_basis_set_quat_scale",
+ "return_type": "void",
+ "arguments": [
+ ["godot_basis *", "p_self"],
+ ["const godot_quat *", "p_quat"],
+ ["const godot_vector3 *", "p_scale"]
+ ]
+ },
+ {
+ "name": "godot_callable_new_with_object",
+ "return_type": "void",
+ "arguments": [
+ ["godot_callable *", "r_dest"],
+ ["const godot_object *", "p_object"],
+ ["const godot_string_name *", "p_method"]
+ ]
+ },
+ {
+ "name": "godot_callable_new_with_object_id",
+ "return_type": "void",
+ "arguments": [
+ ["godot_callable *", "r_dest"],
+ ["uint64_t", "p_objectid"],
+ ["const godot_string_name *", "p_method"]
+ ]
+ },
+ {
+ "name": "godot_callable_new_copy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_callable *", "r_dest"],
+ ["const godot_callable *", "p_src"]
+ ]
+ },
+ {
+ "name": "godot_callable_destroy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_callable *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_callable_call",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_callable *", "p_self"],
+ ["const godot_variant **", "p_arguments"],
+ ["godot_int", "p_argcount"],
+ ["godot_variant *", "r_return_value"]
+ ]
+ },
+ {
+ "name": "godot_callable_call_deferred",
+ "return_type": "void",
+ "arguments": [
+ ["const godot_callable *", "p_self"],
+ ["const godot_variant **", "p_arguments"],
+ ["godot_int", "p_argcount"]
+ ]
+ },
+ {
+ "name": "godot_callable_is_null",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_callable *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_callable_is_custom",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_callable *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_callable_is_standard",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_callable *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_callable_get_object",
+ "return_type": "godot_object *",
+ "arguments": [
+ ["const godot_callable *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_callable_get_object_id",
+ "return_type": "uint64_t",
+ "arguments": [
+ ["const godot_callable *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_callable_get_method",
+ "return_type": "godot_string_name",
+ "arguments": [
+ ["const godot_callable *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_callable_hash",
+ "return_type": "uint32_t",
+ "arguments": [
+ ["const godot_callable *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_callable_as_string",
"return_type": "godot_string",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["const godot_callable *", "p_self"]
]
},
{
- "name": "godot_vector3_min_axis",
+ "name": "godot_callable_operator_equal",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_callable *", "p_self"],
+ ["const godot_callable *", "p_other"]
+ ]
+ },
+ {
+ "name": "godot_callable_operator_less",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_callable *", "p_self"],
+ ["const godot_callable *", "p_other"]
+ ]
+ },
+ {
+ "name": "godot_signal_new_with_object",
+ "return_type": "void",
+ "arguments": [
+ ["godot_signal *", "r_dest"],
+ ["const godot_object *", "p_object"],
+ ["const godot_string_name *", "p_method"]
+ ]
+ },
+ {
+ "name": "godot_signal_new_with_object_id",
+ "return_type": "void",
+ "arguments": [
+ ["godot_signal *", "r_dest"],
+ ["uint64_t", "p_objectid"],
+ ["const godot_string_name *", "p_method"]
+ ]
+ },
+ {
+ "name": "godot_signal_new_copy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_signal *", "r_dest"],
+ ["const godot_signal *", "p_src"]
+ ]
+ },
+ {
+ "name": "godot_signal_destroy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_signal *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_signal_emit",
"return_type": "godot_int",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["const godot_signal *", "p_self"],
+ ["const godot_variant **", "p_arguments"],
+ ["godot_int", "p_argcount"]
]
},
{
- "name": "godot_vector3_max_axis",
+ "name": "godot_signal_connect",
"return_type": "godot_int",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["godot_signal *", "p_self"],
+ ["const godot_callable *", "p_callable"],
+ ["const godot_array *", "p_binds"],
+ ["uint32_t", "p_flags"]
]
},
{
- "name": "godot_vector3_length",
- "return_type": "godot_real",
+ "name": "godot_signal_disconnect",
+ "return_type": "void",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["godot_signal *", "p_self"],
+ ["const godot_callable *", "p_callable"]
]
},
{
- "name": "godot_vector3_length_squared",
- "return_type": "godot_real",
+ "name": "godot_signal_is_null",
+ "return_type": "godot_bool",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["const godot_signal *", "p_self"]
]
},
{
- "name": "godot_vector3_is_normalized",
+ "name": "godot_signal_is_connected",
"return_type": "godot_bool",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["const godot_signal *", "p_self"],
+ ["const godot_callable *", "p_callable"]
]
},
{
- "name": "godot_vector3_normalized",
- "return_type": "godot_vector3",
+ "name": "godot_signal_get_connections",
+ "return_type": "godot_array",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["const godot_signal *", "p_self"]
]
},
{
- "name": "godot_vector3_inverse",
- "return_type": "godot_vector3",
+ "name": "godot_signal_get_object",
+ "return_type": "godot_object *",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["const godot_signal *", "p_self"]
]
},
{
- "name": "godot_vector3_snapped",
- "return_type": "godot_vector3",
+ "name": "godot_signal_get_object_id",
+ "return_type": "uint64_t",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_by"]
+ ["const godot_signal *", "p_self"]
]
},
{
- "name": "godot_vector3_rotated",
- "return_type": "godot_vector3",
+ "name": "godot_signal_get_name",
+ "return_type": "godot_string_name",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_axis"],
- ["const godot_real", "p_phi"]
+ ["const godot_signal *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_signal_as_string",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_signal *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_signal_operator_equal",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_signal *", "p_self"],
+ ["const godot_signal *", "p_other"]
+ ]
+ },
+ {
+ "name": "godot_signal_operator_less",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_signal *", "p_self"],
+ ["const godot_signal *", "p_other"]
]
},
{
- "name": "godot_vector3_lerp",
- "return_type": "godot_vector3",
+ "name": "godot_color_new_rgba",
+ "return_type": "void",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"],
- ["const godot_real", "p_t"]
+ ["godot_color *", "r_dest"],
+ ["const godot_real", "p_r"],
+ ["const godot_real", "p_g"],
+ ["const godot_real", "p_b"],
+ ["const godot_real", "p_a"]
]
},
{
- "name": "godot_vector3_cubic_interpolate",
- "return_type": "godot_vector3",
+ "name": "godot_color_new_rgb",
+ "return_type": "void",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"],
- ["const godot_vector3 *", "p_pre_a"],
- ["const godot_vector3 *", "p_post_b"],
- ["const godot_real", "p_t"]
+ ["godot_color *", "r_dest"],
+ ["const godot_real", "p_r"],
+ ["const godot_real", "p_g"],
+ ["const godot_real", "p_b"]
]
},
{
- "name": "godot_vector3_dot",
+ "name": "godot_color_get_r",
"return_type": "godot_real",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"]
+ ["const godot_color *", "p_self"]
]
},
{
- "name": "godot_vector3_cross",
- "return_type": "godot_vector3",
+ "name": "godot_color_set_r",
+ "return_type": "void",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"]
+ ["godot_color *", "p_self"],
+ ["const godot_real", "r"]
]
},
{
- "name": "godot_vector3_outer",
- "return_type": "godot_basis",
+ "name": "godot_color_get_g",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"]
+ ["const godot_color *", "p_self"]
]
},
{
- "name": "godot_vector3_to_diagonal_matrix",
- "return_type": "godot_basis",
+ "name": "godot_color_set_g",
+ "return_type": "void",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["godot_color *", "p_self"],
+ ["const godot_real", "g"]
]
},
{
- "name": "godot_vector3_abs",
- "return_type": "godot_vector3",
+ "name": "godot_color_get_b",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["const godot_color *", "p_self"]
]
},
{
- "name": "godot_vector3_floor",
- "return_type": "godot_vector3",
+ "name": "godot_color_set_b",
+ "return_type": "void",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["godot_color *", "p_self"],
+ ["const godot_real", "b"]
]
},
{
- "name": "godot_vector3_ceil",
- "return_type": "godot_vector3",
+ "name": "godot_color_get_a",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["const godot_color *", "p_self"]
]
},
{
- "name": "godot_vector3_distance_to",
+ "name": "godot_color_set_a",
+ "return_type": "void",
+ "arguments": [
+ ["godot_color *", "p_self"],
+ ["const godot_real", "a"]
+ ]
+ },
+ {
+ "name": "godot_color_get_h",
"return_type": "godot_real",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"]
+ ["const godot_color *", "p_self"]
]
},
{
- "name": "godot_vector3_distance_squared_to",
+ "name": "godot_color_get_s",
"return_type": "godot_real",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"]
+ ["const godot_color *", "p_self"]
]
},
{
- "name": "godot_vector3_angle_to",
+ "name": "godot_color_get_v",
"return_type": "godot_real",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_to"]
+ ["const godot_color *", "p_self"]
]
},
{
- "name": "godot_vector3_slide",
- "return_type": "godot_vector3",
+ "name": "godot_color_as_string",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_n"]
+ ["const godot_color *", "p_self"]
]
},
{
- "name": "godot_vector3_bounce",
- "return_type": "godot_vector3",
+ "name": "godot_color_to_rgba32",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_n"]
+ ["const godot_color *", "p_self"]
]
},
{
- "name": "godot_vector3_reflect",
- "return_type": "godot_vector3",
+ "name": "godot_color_to_argb32",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_n"]
+ ["const godot_color *", "p_self"]
]
},
{
- "name": "godot_vector3_operator_add",
- "return_type": "godot_vector3",
+ "name": "godot_color_inverted",
+ "return_type": "godot_color",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"]
+ ["const godot_color *", "p_self"]
]
},
{
- "name": "godot_vector3_operator_subtract",
- "return_type": "godot_vector3",
+ "name": "godot_color_contrasted",
+ "return_type": "godot_color",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"]
+ ["const godot_color *", "p_self"]
]
},
{
- "name": "godot_vector3_operator_multiply_vector",
- "return_type": "godot_vector3",
+ "name": "godot_color_lerp",
+ "return_type": "godot_color",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"]
+ ["const godot_color *", "p_self"],
+ ["const godot_color *", "p_b"],
+ ["const godot_real", "p_t"]
]
},
{
- "name": "godot_vector3_operator_multiply_scalar",
- "return_type": "godot_vector3",
+ "name": "godot_color_blend",
+ "return_type": "godot_color",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_real", "p_b"]
+ ["const godot_color *", "p_self"],
+ ["const godot_color *", "p_over"]
]
},
{
- "name": "godot_vector3_operator_divide_vector",
- "return_type": "godot_vector3",
+ "name": "godot_color_to_html",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"]
+ ["const godot_color *", "p_self"],
+ ["const godot_bool", "p_with_alpha"]
]
},
{
- "name": "godot_vector3_operator_divide_scalar",
- "return_type": "godot_vector3",
+ "name": "godot_color_operator_equal",
+ "return_type": "godot_bool",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_real", "p_b"]
+ ["const godot_color *", "p_self"],
+ ["const godot_color *", "p_b"]
]
},
{
- "name": "godot_vector3_operator_equal",
+ "name": "godot_color_operator_less",
"return_type": "godot_bool",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"]
+ ["const godot_color *", "p_self"],
+ ["const godot_color *", "p_b"]
]
},
{
- "name": "godot_vector3_operator_less",
+ "name": "godot_color_to_abgr32",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_color *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_color_to_abgr64",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_color *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_color_to_argb64",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_color *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_color_to_rgba64",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_color *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_color_darkened",
+ "return_type": "godot_color",
+ "arguments": [
+ ["const godot_color *", "p_self"],
+ ["const godot_real", "p_amount"]
+ ]
+ },
+ {
+ "name": "godot_color_from_hsv",
+ "return_type": "godot_color",
+ "arguments": [
+ ["const godot_color *", "p_self"],
+ ["const godot_real", "p_h"],
+ ["const godot_real", "p_s"],
+ ["const godot_real", "p_v"],
+ ["const godot_real", "p_a"]
+ ]
+ },
+ {
+ "name": "godot_color_lightened",
+ "return_type": "godot_color",
+ "arguments": [
+ ["const godot_color *", "p_self"],
+ ["const godot_real", "p_amount"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_new",
+ "return_type": "void",
+ "arguments": [
+ ["godot_dictionary *", "r_dest"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_new_copy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_dictionary *", "r_dest"],
+ ["const godot_dictionary *", "p_src"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_destroy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_dictionary *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_size",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_dictionary *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_empty",
"return_type": "godot_bool",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3 *", "p_b"]
+ ["const godot_dictionary *", "p_self"]
]
},
{
- "name": "godot_vector3_operator_neg",
- "return_type": "godot_vector3",
+ "name": "godot_dictionary_clear",
+ "return_type": "void",
"arguments": [
- ["const godot_vector3 *", "p_self"]
+ ["godot_dictionary *", "p_self"]
]
},
{
- "name": "godot_vector3_set_axis",
+ "name": "godot_dictionary_has",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_dictionary *", "p_self"],
+ ["const godot_variant *", "p_key"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_has_all",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_dictionary *", "p_self"],
+ ["const godot_array *", "p_keys"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_erase",
"return_type": "void",
"arguments": [
- ["godot_vector3 *", "p_self"],
- ["const godot_vector3_axis", "p_axis"],
- ["const godot_real", "p_val"]
+ ["godot_dictionary *", "p_self"],
+ ["const godot_variant *", "p_key"]
]
},
{
- "name": "godot_vector3_get_axis",
- "return_type": "godot_real",
+ "name": "godot_dictionary_hash",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_vector3 *", "p_self"],
- ["const godot_vector3_axis", "p_axis"]
+ ["const godot_dictionary *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_keys",
+ "return_type": "godot_array",
+ "arguments": [
+ ["const godot_dictionary *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_values",
+ "return_type": "godot_array",
+ "arguments": [
+ ["const godot_dictionary *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_get",
+ "return_type": "godot_variant",
+ "arguments": [
+ ["const godot_dictionary *", "p_self"],
+ ["const godot_variant *", "p_key"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_set",
+ "return_type": "void",
+ "arguments": [
+ ["godot_dictionary *", "p_self"],
+ ["const godot_variant *", "p_key"],
+ ["const godot_variant *", "p_value"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_operator_index",
+ "return_type": "godot_variant *",
+ "arguments": [
+ ["godot_dictionary *", "p_self"],
+ ["const godot_variant *", "p_key"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_operator_index_const",
+ "return_type": "const godot_variant *",
+ "arguments": [
+ ["const godot_dictionary *", "p_self"],
+ ["const godot_variant *", "p_key"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_next",
+ "return_type": "godot_variant *",
+ "arguments": [
+ ["const godot_dictionary *", "p_self"],
+ ["const godot_variant *", "p_key"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_operator_equal",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_dictionary *", "p_self"],
+ ["const godot_dictionary *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_to_json",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_dictionary *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_duplicate",
+ "return_type": "godot_dictionary",
+ "arguments": [
+ ["const godot_dictionary *", "p_self"],
+ ["const godot_bool", "p_deep"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_get_with_default",
+ "return_type": "godot_variant",
+ "arguments": [
+ ["const godot_dictionary *", "p_self"],
+ ["const godot_variant *", "p_key"],
+ ["const godot_variant *", "p_default"]
+ ]
+ },
+ {
+ "name": "godot_dictionary_erase_with_return",
+ "return_type": "bool",
+ "arguments": [
+ ["godot_dictionary *", "p_self"],
+ ["const godot_variant *", "p_key"]
+ ]
+ },
+ {
+ "name": "godot_node_path_new",
+ "return_type": "void",
+ "arguments": [
+ ["godot_node_path *", "r_dest"],
+ ["const godot_string *", "p_from"]
+ ]
+ },
+ {
+ "name": "godot_node_path_new_copy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_node_path *", "r_dest"],
+ ["const godot_node_path *", "p_src"]
+ ]
+ },
+ {
+ "name": "godot_node_path_destroy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_node_path *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_node_path_as_string",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_node_path *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_node_path_is_absolute",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_node_path *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_node_path_get_name_count",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_node_path *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_node_path_get_name",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_node_path *", "p_self"],
+ ["const godot_int", "p_idx"]
+ ]
+ },
+ {
+ "name": "godot_node_path_get_subname_count",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_node_path *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_node_path_get_subname",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_node_path *", "p_self"],
+ ["const godot_int", "p_idx"]
+ ]
+ },
+ {
+ "name": "godot_node_path_get_concatenated_subnames",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_node_path *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_node_path_is_empty",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_node_path *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_node_path_operator_equal",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_node_path *", "p_self"],
+ ["const godot_node_path *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_node_path_get_as_property_path",
+ "return_type": "godot_node_path",
+ "arguments": [
+ ["const godot_node_path *", "p_self"]
]
},
{
@@ -2826,6 +1639,13 @@
]
},
{
+ "name": "godot_packed_byte_array_empty",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_packed_byte_array *", "p_self"]
+ ]
+ },
+ {
"name": "godot_packed_byte_array_append",
"return_type": "void",
"arguments": [
@@ -2950,6 +1770,13 @@
]
},
{
+ "name": "godot_packed_int32_array_empty",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_packed_int32_array *", "p_self"]
+ ]
+ },
+ {
"name": "godot_packed_int32_array_append",
"return_type": "void",
"arguments": [
@@ -3051,6 +1878,137 @@
]
},
{
+ "name": "godot_packed_int64_array_new",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_int64_array *", "r_dest"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_new_copy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_int64_array *", "r_dest"],
+ ["const godot_packed_int64_array *", "p_src"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_new_with_array",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_int64_array *", "r_dest"],
+ ["const godot_array *", "p_a"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_empty",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_packed_int64_array *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_append",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_int64_array *", "p_self"],
+ ["const int64_t", "p_data"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_append_array",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_int64_array *", "p_self"],
+ ["const godot_packed_int64_array *", "p_array"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_insert",
+ "return_type": "godot_error",
+ "arguments": [
+ ["godot_packed_int64_array *", "p_self"],
+ ["const godot_int", "p_idx"],
+ ["const int64_t", "p_data"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_invert",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_int64_array *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_push_back",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_int64_array *", "p_self"],
+ ["const int64_t", "p_data"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_remove",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_int64_array *", "p_self"],
+ ["const godot_int", "p_idx"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_resize",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_int64_array *", "p_self"],
+ ["const godot_int", "p_size"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_ptr",
+ "return_type": "const int64_t *",
+ "arguments": [
+ ["const godot_packed_int64_array *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_ptrw",
+ "return_type": "int64_t *",
+ "arguments": [
+ ["godot_packed_int64_array *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_set",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_int64_array *", "p_self"],
+ ["const godot_int", "p_idx"],
+ ["const int64_t", "p_data"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_get",
+ "return_type": "int64_t",
+ "arguments": [
+ ["const godot_packed_int64_array *", "p_self"],
+ ["const godot_int", "p_idx"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_size",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_packed_int64_array *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_packed_int64_array_destroy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_int64_array *", "p_self"]
+ ]
+ },
+ {
"name": "godot_packed_float32_array_new",
"return_type": "void",
"arguments": [
@@ -3074,6 +2032,13 @@
]
},
{
+ "name": "godot_packed_float32_array_empty",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_packed_float32_array *", "p_self"]
+ ]
+ },
+ {
"name": "godot_packed_float32_array_append",
"return_type": "void",
"arguments": [
@@ -3175,6 +2140,137 @@
]
},
{
+ "name": "godot_packed_float64_array_new",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_float64_array *", "r_dest"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_new_copy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_float64_array *", "r_dest"],
+ ["const godot_packed_float64_array *", "p_src"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_new_with_array",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_float64_array *", "r_dest"],
+ ["const godot_array *", "p_a"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_empty",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_packed_float64_array *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_append",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_float64_array *", "p_self"],
+ ["const double", "p_data"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_append_array",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_float64_array *", "p_self"],
+ ["const godot_packed_float64_array *", "p_array"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_insert",
+ "return_type": "godot_error",
+ "arguments": [
+ ["godot_packed_float64_array *", "p_self"],
+ ["const godot_int", "p_idx"],
+ ["const double", "p_data"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_invert",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_float64_array *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_push_back",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_float64_array *", "p_self"],
+ ["const double", "p_data"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_remove",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_float64_array *", "p_self"],
+ ["const godot_int", "p_idx"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_resize",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_float64_array *", "p_self"],
+ ["const godot_int", "p_size"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_ptr",
+ "return_type": "const double *",
+ "arguments": [
+ ["const godot_packed_float64_array *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_ptrw",
+ "return_type": "double *",
+ "arguments": [
+ ["godot_packed_float64_array *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_set",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_float64_array *", "p_self"],
+ ["const godot_int", "p_idx"],
+ ["const double", "p_data"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_get",
+ "return_type": "double",
+ "arguments": [
+ ["const godot_packed_float64_array *", "p_self"],
+ ["const godot_int", "p_idx"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_size",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_packed_float64_array *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_packed_float64_array_destroy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_packed_float64_array *", "p_self"]
+ ]
+ },
+ {
"name": "godot_packed_string_array_new",
"return_type": "void",
"arguments": [
@@ -3198,6 +2294,13 @@
]
},
{
+ "name": "godot_packed_string_array_empty",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_packed_string_array *", "p_self"]
+ ]
+ },
+ {
"name": "godot_packed_string_array_append",
"return_type": "void",
"arguments": [
@@ -3322,6 +2425,13 @@
]
},
{
+ "name": "godot_packed_vector2_array_empty",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_packed_vector2_array *", "p_self"]
+ ]
+ },
+ {
"name": "godot_packed_vector2_array_append",
"return_type": "void",
"arguments": [
@@ -3446,6 +2556,13 @@
]
},
{
+ "name": "godot_packed_vector3_array_empty",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_packed_vector3_array *", "p_self"]
+ ]
+ },
+ {
"name": "godot_packed_vector3_array_append",
"return_type": "void",
"arguments": [
@@ -3570,6 +2687,13 @@
]
},
{
+ "name": "godot_packed_color_array_empty",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_packed_color_array *", "p_self"]
+ ]
+ },
+ {
"name": "godot_packed_color_array_append",
"return_type": "void",
"arguments": [
@@ -3671,1090 +2795,2064 @@
]
},
{
- "name": "godot_array_new",
+ "name": "godot_plane_new_with_reals",
"return_type": "void",
"arguments": [
- ["godot_array *", "r_dest"]
+ ["godot_plane *", "r_dest"],
+ ["const godot_real", "p_a"],
+ ["const godot_real", "p_b"],
+ ["const godot_real", "p_c"],
+ ["const godot_real", "p_d"]
]
},
{
- "name": "godot_array_new_copy",
+ "name": "godot_plane_new_with_vectors",
"return_type": "void",
"arguments": [
- ["godot_array *", "r_dest"],
- ["const godot_array *", "p_src"]
+ ["godot_plane *", "r_dest"],
+ ["const godot_vector3 *", "p_v1"],
+ ["const godot_vector3 *", "p_v2"],
+ ["const godot_vector3 *", "p_v3"]
]
},
{
- "name": "godot_array_new_packed_color_array",
+ "name": "godot_plane_new_with_normal",
"return_type": "void",
"arguments": [
- ["godot_array *", "r_dest"],
- ["const godot_packed_color_array *", "p_pca"]
+ ["godot_plane *", "r_dest"],
+ ["const godot_vector3 *", "p_normal"],
+ ["const godot_real", "p_d"]
]
},
{
- "name": "godot_array_new_packed_vector3_array",
+ "name": "godot_plane_as_string",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_plane *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_plane_normalized",
+ "return_type": "godot_plane",
+ "arguments": [
+ ["const godot_plane *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_plane_center",
+ "return_type": "godot_vector3",
+ "arguments": [
+ ["const godot_plane *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_plane_get_any_point",
+ "return_type": "godot_vector3",
+ "arguments": [
+ ["const godot_plane *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_plane_is_point_over",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_plane *", "p_self"],
+ ["const godot_vector3 *", "p_point"]
+ ]
+ },
+ {
+ "name": "godot_plane_distance_to",
+ "return_type": "godot_real",
+ "arguments": [
+ ["const godot_plane *", "p_self"],
+ ["const godot_vector3 *", "p_point"]
+ ]
+ },
+ {
+ "name": "godot_plane_has_point",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_plane *", "p_self"],
+ ["const godot_vector3 *", "p_point"],
+ ["const godot_real", "p_epsilon"]
+ ]
+ },
+ {
+ "name": "godot_plane_project",
+ "return_type": "godot_vector3",
+ "arguments": [
+ ["const godot_plane *", "p_self"],
+ ["const godot_vector3 *", "p_point"]
+ ]
+ },
+ {
+ "name": "godot_plane_intersect_3",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_plane *", "p_self"],
+ ["godot_vector3 *", "r_dest"],
+ ["const godot_plane *", "p_b"],
+ ["const godot_plane *", "p_c"]
+ ]
+ },
+ {
+ "name": "godot_plane_intersects_ray",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_plane *", "p_self"],
+ ["godot_vector3 *", "r_dest"],
+ ["const godot_vector3 *", "p_from"],
+ ["const godot_vector3 *", "p_dir"]
+ ]
+ },
+ {
+ "name": "godot_plane_intersects_segment",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_plane *", "p_self"],
+ ["godot_vector3 *", "r_dest"],
+ ["const godot_vector3 *", "p_begin"],
+ ["const godot_vector3 *", "p_end"]
+ ]
+ },
+ {
+ "name": "godot_plane_operator_neg",
+ "return_type": "godot_plane",
+ "arguments": [
+ ["const godot_plane *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_plane_operator_equal",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_plane *", "p_self"],
+ ["const godot_plane *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_plane_set_normal",
"return_type": "void",
"arguments": [
- ["godot_array *", "r_dest"],
- ["const godot_packed_vector3_array *", "p_pv3a"]
+ ["godot_plane *", "p_self"],
+ ["const godot_vector3 *", "p_normal"]
]
},
{
- "name": "godot_array_new_packed_vector2_array",
+ "name": "godot_plane_get_normal",
+ "return_type": "godot_vector3",
+ "arguments": [
+ ["const godot_plane *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_plane_get_d",
+ "return_type": "godot_real",
+ "arguments": [
+ ["const godot_plane *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_plane_set_d",
"return_type": "void",
"arguments": [
- ["godot_array *", "r_dest"],
- ["const godot_packed_vector2_array *", "p_pv2a"]
+ ["godot_plane *", "p_self"],
+ ["const godot_real", "p_d"]
]
},
{
- "name": "godot_array_new_packed_string_array",
+ "name": "godot_quat_new",
"return_type": "void",
"arguments": [
- ["godot_array *", "r_dest"],
- ["const godot_packed_string_array *", "p_psa"]
+ ["godot_quat *", "r_dest"],
+ ["const godot_real", "p_x"],
+ ["const godot_real", "p_y"],
+ ["const godot_real", "p_z"],
+ ["const godot_real", "p_w"]
]
},
{
- "name": "godot_array_new_packed_float32_array",
+ "name": "godot_quat_new_with_axis_angle",
"return_type": "void",
"arguments": [
- ["godot_array *", "r_dest"],
- ["const godot_packed_float32_array *", "p_pra"]
+ ["godot_quat *", "r_dest"],
+ ["const godot_vector3 *", "p_axis"],
+ ["const godot_real", "p_angle"]
]
},
{
- "name": "godot_array_new_packed_int32_array",
+ "name": "godot_quat_new_with_basis",
"return_type": "void",
"arguments": [
- ["godot_array *", "r_dest"],
- ["const godot_packed_int32_array *", "p_pia"]
+ ["godot_quat *", "r_dest"],
+ ["const godot_basis *", "p_basis"]
]
},
{
- "name": "godot_array_new_packed_byte_array",
+ "name": "godot_quat_new_with_euler",
"return_type": "void",
"arguments": [
- ["godot_array *", "r_dest"],
- ["const godot_packed_byte_array *", "p_pba"]
+ ["godot_quat *", "r_dest"],
+ ["const godot_vector3 *", "p_euler"]
]
},
{
- "name": "godot_array_set",
+ "name": "godot_quat_get_x",
+ "return_type": "godot_real",
+ "arguments": [
+ ["const godot_quat *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_quat_set_x",
"return_type": "void",
"arguments": [
- ["godot_array *", "p_self"],
- ["const godot_int", "p_idx"],
- ["const godot_variant *", "p_value"]
+ ["godot_quat *", "p_self"],
+ ["const godot_real", "val"]
]
},
{
- "name": "godot_array_get",
- "return_type": "godot_variant",
+ "name": "godot_quat_get_y",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_array *", "p_self"],
- ["const godot_int", "p_idx"]
+ ["const godot_quat *", "p_self"]
]
},
{
- "name": "godot_array_operator_index",
- "return_type": "godot_variant *",
+ "name": "godot_quat_set_y",
+ "return_type": "void",
"arguments": [
- ["godot_array *", "p_self"],
- ["const godot_int", "p_idx"]
+ ["godot_quat *", "p_self"],
+ ["const godot_real", "val"]
]
},
{
- "name": "godot_array_operator_index_const",
- "return_type": "const godot_variant *",
+ "name": "godot_quat_get_z",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_array *", "p_self"],
- ["const godot_int", "p_idx"]
+ ["const godot_quat *", "p_self"]
]
},
{
- "name": "godot_array_append",
+ "name": "godot_quat_set_z",
"return_type": "void",
"arguments": [
- ["godot_array *", "p_self"],
- ["const godot_variant *", "p_value"]
+ ["godot_quat *", "p_self"],
+ ["const godot_real", "val"]
]
},
{
- "name": "godot_array_clear",
+ "name": "godot_quat_get_w",
+ "return_type": "godot_real",
+ "arguments": [
+ ["const godot_quat *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_quat_set_w",
"return_type": "void",
"arguments": [
- ["godot_array *", "p_self"]
+ ["godot_quat *", "p_self"],
+ ["const godot_real", "val"]
]
},
{
- "name": "godot_array_count",
- "return_type": "godot_int",
+ "name": "godot_quat_set_axis_angle",
+ "return_type": "void",
"arguments": [
- ["const godot_array *", "p_self"],
- ["const godot_variant *", "p_value"]
+ ["godot_quat *", "p_self"],
+ ["const godot_vector3 *", "p_axis"],
+ ["const godot_real", "p_angle"]
]
},
{
- "name": "godot_array_empty",
+ "name": "godot_quat_as_string",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_quat *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_quat_length",
+ "return_type": "godot_real",
+ "arguments": [
+ ["const godot_quat *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_quat_length_squared",
+ "return_type": "godot_real",
+ "arguments": [
+ ["const godot_quat *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_quat_normalized",
+ "return_type": "godot_quat",
+ "arguments": [
+ ["const godot_quat *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_quat_is_normalized",
"return_type": "godot_bool",
"arguments": [
- ["const godot_array *", "p_self"]
+ ["const godot_quat *", "p_self"]
]
},
{
- "name": "godot_array_erase",
- "return_type": "void",
+ "name": "godot_quat_inverse",
+ "return_type": "godot_quat",
"arguments": [
- ["godot_array *", "p_self"],
- ["const godot_variant *", "p_value"]
+ ["const godot_quat *", "p_self"]
]
},
{
- "name": "godot_array_front",
- "return_type": "godot_variant",
+ "name": "godot_quat_dot",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_array *", "p_self"]
+ ["const godot_quat *", "p_self"],
+ ["const godot_quat *", "p_b"]
]
},
{
- "name": "godot_array_back",
- "return_type": "godot_variant",
+ "name": "godot_quat_xform",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_array *", "p_self"]
+ ["const godot_quat *", "p_self"],
+ ["const godot_vector3 *", "p_v"]
]
},
{
- "name": "godot_array_find",
- "return_type": "godot_int",
+ "name": "godot_quat_slerp",
+ "return_type": "godot_quat",
"arguments": [
- ["const godot_array *", "p_self"],
- ["const godot_variant *", "p_what"],
- ["const godot_int", "p_from"]
+ ["const godot_quat *", "p_self"],
+ ["const godot_quat *", "p_b"],
+ ["const godot_real", "p_t"]
]
},
{
- "name": "godot_array_find_last",
- "return_type": "godot_int",
+ "name": "godot_quat_slerpni",
+ "return_type": "godot_quat",
"arguments": [
- ["const godot_array *", "p_self"],
- ["const godot_variant *", "p_what"]
+ ["const godot_quat *", "p_self"],
+ ["const godot_quat *", "p_b"],
+ ["const godot_real", "p_t"]
]
},
{
- "name": "godot_array_has",
+ "name": "godot_quat_cubic_slerp",
+ "return_type": "godot_quat",
+ "arguments": [
+ ["const godot_quat *", "p_self"],
+ ["const godot_quat *", "p_b"],
+ ["const godot_quat *", "p_pre_a"],
+ ["const godot_quat *", "p_post_b"],
+ ["const godot_real", "p_t"]
+ ]
+ },
+ {
+ "name": "godot_quat_operator_multiply",
+ "return_type": "godot_quat",
+ "arguments": [
+ ["const godot_quat *", "p_self"],
+ ["const godot_real", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_quat_operator_add",
+ "return_type": "godot_quat",
+ "arguments": [
+ ["const godot_quat *", "p_self"],
+ ["const godot_quat *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_quat_operator_subtract",
+ "return_type": "godot_quat",
+ "arguments": [
+ ["const godot_quat *", "p_self"],
+ ["const godot_quat *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_quat_operator_divide",
+ "return_type": "godot_quat",
+ "arguments": [
+ ["const godot_quat *", "p_self"],
+ ["const godot_real", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_quat_operator_equal",
"return_type": "godot_bool",
"arguments": [
- ["const godot_array *", "p_self"],
- ["const godot_variant *", "p_value"]
+ ["const godot_quat *", "p_self"],
+ ["const godot_quat *", "p_b"]
]
},
{
- "name": "godot_array_hash",
- "return_type": "godot_int",
+ "name": "godot_quat_operator_neg",
+ "return_type": "godot_quat",
"arguments": [
- ["const godot_array *", "p_self"]
+ ["const godot_quat *", "p_self"]
]
},
{
- "name": "godot_array_insert",
+ "name": "godot_rect2_new_with_position_and_size",
"return_type": "void",
"arguments": [
- ["godot_array *", "p_self"],
- ["const godot_int", "p_pos"],
- ["const godot_variant *", "p_value"]
+ ["godot_rect2 *", "r_dest"],
+ ["const godot_vector2 *", "p_pos"],
+ ["const godot_vector2 *", "p_size"]
]
},
{
- "name": "godot_array_invert",
+ "name": "godot_rect2_new",
"return_type": "void",
"arguments": [
- ["godot_array *", "p_self"]
+ ["godot_rect2 *", "r_dest"],
+ ["const godot_real", "p_x"],
+ ["const godot_real", "p_y"],
+ ["const godot_real", "p_width"],
+ ["const godot_real", "p_height"]
]
},
{
- "name": "godot_array_pop_back",
- "return_type": "godot_variant",
+ "name": "godot_rect2_as_rect2i",
+ "return_type": "godot_rect2i",
"arguments": [
- ["godot_array *", "p_self"]
+ ["const godot_rect2 *", "p_self"]
]
},
{
- "name": "godot_array_pop_front",
- "return_type": "godot_variant",
+ "name": "godot_rect2_as_string",
+ "return_type": "godot_string",
"arguments": [
- ["godot_array *", "p_self"]
+ ["const godot_rect2 *", "p_self"]
]
},
{
- "name": "godot_array_push_back",
+ "name": "godot_rect2_get_area",
+ "return_type": "godot_real",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_rect2_grow_individual",
+ "return_type": "godot_rect2",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"],
+ ["const godot_real", "p_left"],
+ ["const godot_real", "p_top"],
+ ["const godot_real", "p_right"],
+ ["const godot_real", "p_bottom"]
+ ]
+ },
+ {
+ "name": "godot_rect2_grow_margin",
+ "return_type": "godot_rect2",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"],
+ ["const godot_int", "p_margin"],
+ ["const godot_real", "p_by"]
+ ]
+ },
+ {
+ "name": "godot_rect2_abs",
+ "return_type": "godot_rect2",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_rect2_intersects",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"],
+ ["const godot_rect2 *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_rect2_encloses",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"],
+ ["const godot_rect2 *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_rect2_has_no_area",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_rect2_clip",
+ "return_type": "godot_rect2",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"],
+ ["const godot_rect2 *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_rect2_merge",
+ "return_type": "godot_rect2",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"],
+ ["const godot_rect2 *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_rect2_has_point",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"],
+ ["const godot_vector2 *", "p_point"]
+ ]
+ },
+ {
+ "name": "godot_rect2_grow",
+ "return_type": "godot_rect2",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"],
+ ["const godot_real", "p_by"]
+ ]
+ },
+ {
+ "name": "godot_rect2_expand",
+ "return_type": "godot_rect2",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"],
+ ["const godot_vector2 *", "p_to"]
+ ]
+ },
+ {
+ "name": "godot_rect2_operator_equal",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"],
+ ["const godot_rect2 *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_rect2_get_position",
+ "return_type": "godot_vector2",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_rect2_get_size",
+ "return_type": "godot_vector2",
+ "arguments": [
+ ["const godot_rect2 *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_rect2_set_position",
"return_type": "void",
"arguments": [
- ["godot_array *", "p_self"],
- ["const godot_variant *", "p_value"]
+ ["godot_rect2 *", "p_self"],
+ ["const godot_vector2 *", "p_pos"]
]
},
{
- "name": "godot_array_push_front",
+ "name": "godot_rect2_set_size",
"return_type": "void",
"arguments": [
- ["godot_array *", "p_self"],
- ["const godot_variant *", "p_value"]
+ ["godot_rect2 *", "p_self"],
+ ["const godot_vector2 *", "p_size"]
]
},
{
- "name": "godot_array_remove",
+ "name": "godot_rect2i_new_with_position_and_size",
"return_type": "void",
"arguments": [
- ["godot_array *", "p_self"],
- ["const godot_int", "p_idx"]
+ ["godot_rect2i *", "r_dest"],
+ ["const godot_vector2i *", "p_pos"],
+ ["const godot_vector2i *", "p_size"]
]
},
{
- "name": "godot_array_resize",
+ "name": "godot_rect2i_new",
"return_type": "void",
"arguments": [
- ["godot_array *", "p_self"],
- ["const godot_int", "p_size"]
+ ["godot_rect2i *", "r_dest"],
+ ["const godot_int", "p_x"],
+ ["const godot_int", "p_y"],
+ ["const godot_int", "p_width"],
+ ["const godot_int", "p_height"]
]
},
{
- "name": "godot_array_rfind",
- "return_type": "godot_int",
+ "name": "godot_rect2i_as_string",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_array *", "p_self"],
- ["const godot_variant *", "p_what"],
- ["const godot_int", "p_from"]
+ ["const godot_rect2i *", "p_self"]
]
},
{
- "name": "godot_array_size",
+ "name": "godot_rect2i_as_rect2",
+ "return_type": "godot_rect2",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_get_area",
"return_type": "godot_int",
"arguments": [
- ["const godot_array *", "p_self"]
+ ["const godot_rect2i *", "p_self"]
]
},
{
- "name": "godot_array_sort",
+ "name": "godot_rect2i_intersects",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"],
+ ["const godot_rect2i *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_encloses",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"],
+ ["const godot_rect2i *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_has_no_area",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_clip",
+ "return_type": "godot_rect2i",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"],
+ ["const godot_rect2i *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_merge",
+ "return_type": "godot_rect2i",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"],
+ ["const godot_rect2i *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_has_point",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"],
+ ["const godot_vector2i *", "p_point"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_grow",
+ "return_type": "godot_rect2i",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"],
+ ["const godot_int", "p_by"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_grow_individual",
+ "return_type": "godot_rect2i",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"],
+ ["const godot_int", "p_left"],
+ ["const godot_int", "p_top"],
+ ["const godot_int", "p_right"],
+ ["const godot_int", "p_bottom"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_grow_margin",
+ "return_type": "godot_rect2i",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"],
+ ["const godot_int", "p_margin"],
+ ["const godot_int", "p_by"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_abs",
+ "return_type": "godot_rect2i",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_expand",
+ "return_type": "godot_rect2i",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"],
+ ["const godot_vector2i *", "p_to"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_operator_equal",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"],
+ ["const godot_rect2i *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_get_position",
+ "return_type": "godot_vector2i",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_get_size",
+ "return_type": "godot_vector2i",
+ "arguments": [
+ ["const godot_rect2i *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_rect2i_set_position",
"return_type": "void",
"arguments": [
- ["godot_array *", "p_self"]
+ ["godot_rect2i *", "p_self"],
+ ["const godot_vector2i *", "p_pos"]
]
},
{
- "name": "godot_array_sort_custom",
+ "name": "godot_rect2i_set_size",
"return_type": "void",
"arguments": [
- ["godot_array *", "p_self"],
- ["godot_object *", "p_obj"],
- ["const godot_string *", "p_func"]
+ ["godot_rect2i *", "p_self"],
+ ["const godot_vector2i *", "p_size"]
]
},
{
- "name": "godot_array_bsearch",
+ "name": "godot_rid_new",
+ "return_type": "void",
+ "arguments": [
+ ["godot_rid *", "r_dest"]
+ ]
+ },
+ {
+ "name": "godot_rid_get_id",
"return_type": "godot_int",
"arguments": [
- ["godot_array *", "p_self"],
- ["const godot_variant *", "p_value"],
- ["const godot_bool", "p_before"]
+ ["const godot_rid *", "p_self"]
]
},
{
- "name": "godot_array_bsearch_custom",
+ "name": "godot_rid_new_with_resource",
+ "return_type": "void",
+ "arguments": [
+ ["godot_rid *", "r_dest"],
+ ["const godot_object *", "p_from"]
+ ]
+ },
+ {
+ "name": "godot_rid_operator_equal",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_rid *", "p_self"],
+ ["const godot_rid *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_rid_operator_less",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_rid *", "p_self"],
+ ["const godot_rid *", "p_b"]
+ ]
+ },
+ {
+ "name": "godot_char_string_length",
"return_type": "godot_int",
"arguments": [
- ["godot_array *", "p_self"],
- ["const godot_variant *", "p_value"],
- ["godot_object *", "p_obj"],
- ["const godot_string *", "p_func"],
- ["const godot_bool", "p_before"]
+ ["const godot_char_string *", "p_cs"]
]
},
{
- "name": "godot_array_destroy",
+ "name": "godot_char_string_get_data",
+ "return_type": "const char *",
+ "arguments": [
+ ["const godot_char_string *", "p_cs"]
+ ]
+ },
+ {
+ "name": "godot_char_string_destroy",
"return_type": "void",
"arguments": [
- ["godot_array *", "p_self"]
+ ["godot_char_string *", "p_cs"]
]
},
{
- "name": "godot_dictionary_new",
+ "name": "godot_string_new",
"return_type": "void",
"arguments": [
- ["godot_dictionary *", "r_dest"]
+ ["godot_string *", "r_dest"]
]
},
{
- "name": "godot_dictionary_new_copy",
+ "name": "godot_string_new_copy",
"return_type": "void",
"arguments": [
- ["godot_dictionary *", "r_dest"],
- ["const godot_dictionary *", "p_src"]
+ ["godot_string *", "r_dest"],
+ ["const godot_string *", "p_src"]
]
},
{
- "name": "godot_dictionary_destroy",
+ "name": "godot_string_new_with_wide_string",
"return_type": "void",
"arguments": [
- ["godot_dictionary *", "p_self"]
+ ["godot_string *", "r_dest"],
+ ["const wchar_t *", "p_contents"],
+ ["const int", "p_size"]
]
},
{
- "name": "godot_dictionary_size",
- "return_type": "godot_int",
+ "name": "godot_string_operator_index",
+ "return_type": "const wchar_t *",
"arguments": [
- ["const godot_dictionary *", "p_self"]
+ ["godot_string *", "p_self"],
+ ["const godot_int", "p_idx"]
]
},
{
- "name": "godot_dictionary_empty",
- "return_type": "godot_bool",
+ "name": "godot_string_operator_index_const",
+ "return_type": "wchar_t",
"arguments": [
- ["const godot_dictionary *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["const godot_int", "p_idx"]
]
},
{
- "name": "godot_dictionary_clear",
- "return_type": "void",
+ "name": "godot_string_wide_str",
+ "return_type": "const wchar_t *",
"arguments": [
- ["godot_dictionary *", "p_self"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_dictionary_has",
+ "name": "godot_string_operator_equal",
"return_type": "godot_bool",
"arguments": [
- ["const godot_dictionary *", "p_self"],
- ["const godot_variant *", "p_key"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_b"]
]
},
{
- "name": "godot_dictionary_has_all",
+ "name": "godot_string_operator_less",
"return_type": "godot_bool",
"arguments": [
- ["const godot_dictionary *", "p_self"],
- ["const godot_array *", "p_keys"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_b"]
]
},
{
- "name": "godot_dictionary_erase",
- "return_type": "void",
+ "name": "godot_string_operator_plus",
+ "return_type": "godot_string",
"arguments": [
- ["godot_dictionary *", "p_self"],
- ["const godot_variant *", "p_key"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_b"]
]
},
{
- "name": "godot_dictionary_hash",
+ "name": "godot_string_count",
"return_type": "godot_int",
"arguments": [
- ["const godot_dictionary *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_what"],
+ ["godot_int", "p_from"],
+ ["godot_int", "p_to"]
]
},
{
- "name": "godot_dictionary_keys",
- "return_type": "godot_array",
+ "name": "godot_string_countn",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_dictionary *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_what"],
+ ["godot_int", "p_from"],
+ ["godot_int", "p_to"]
]
},
{
- "name": "godot_dictionary_values",
- "return_type": "godot_array",
+ "name": "godot_string_dedent",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_dictionary *", "p_self"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_dictionary_get",
- "return_type": "godot_variant",
+ "name": "godot_string_length",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_dictionary *", "p_self"],
- ["const godot_variant *", "p_key"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_dictionary_set",
- "return_type": "void",
+ "name": "godot_string_casecmp_to",
+ "return_type": "signed char",
"arguments": [
- ["godot_dictionary *", "p_self"],
- ["const godot_variant *", "p_key"],
- ["const godot_variant *", "p_value"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_str"]
]
},
{
- "name": "godot_dictionary_operator_index",
- "return_type": "godot_variant *",
+ "name": "godot_string_nocasecmp_to",
+ "return_type": "signed char",
"arguments": [
- ["godot_dictionary *", "p_self"],
- ["const godot_variant *", "p_key"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_str"]
]
},
{
- "name": "godot_dictionary_operator_index_const",
- "return_type": "const godot_variant *",
+ "name": "godot_string_naturalnocasecmp_to",
+ "return_type": "signed char",
"arguments": [
- ["const godot_dictionary *", "p_self"],
- ["const godot_variant *", "p_key"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_str"]
]
},
{
- "name": "godot_dictionary_next",
- "return_type": "godot_variant *",
+ "name": "godot_string_begins_with",
+ "return_type": "godot_bool",
"arguments": [
- ["const godot_dictionary *", "p_self"],
- ["const godot_variant *", "p_key"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_string"]
]
},
{
- "name": "godot_dictionary_operator_equal",
+ "name": "godot_string_begins_with_char_array",
"return_type": "godot_bool",
"arguments": [
- ["const godot_dictionary *", "p_self"],
- ["const godot_dictionary *", "p_b"]
+ ["const godot_string *", "p_self"],
+ ["const char *", "p_char_array"]
]
},
{
- "name": "godot_dictionary_to_json",
+ "name": "godot_string_bigrams",
+ "return_type": "godot_array",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_chr",
"return_type": "godot_string",
"arguments": [
- ["const godot_dictionary *", "p_self"]
+ ["wchar_t", "p_character"]
]
},
{
- "name": "godot_node_path_new",
- "return_type": "void",
+ "name": "godot_string_ends_with",
+ "return_type": "godot_bool",
"arguments": [
- ["godot_node_path *", "r_dest"],
- ["const godot_string *", "p_from"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_string"]
]
},
{
- "name": "godot_node_path_new_copy",
- "return_type": "void",
+ "name": "godot_string_find",
+ "return_type": "godot_int",
"arguments": [
- ["godot_node_path *", "r_dest"],
- ["const godot_node_path *", "p_src"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_what"]
]
},
{
- "name": "godot_node_path_destroy",
- "return_type": "void",
+ "name": "godot_string_find_from",
+ "return_type": "godot_int",
"arguments": [
- ["godot_node_path *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_what"],
+ ["godot_int", "p_from"]
]
},
{
- "name": "godot_node_path_as_string",
- "return_type": "godot_string",
+ "name": "godot_string_findmk",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_node_path *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["const godot_array *", "p_keys"]
]
},
{
- "name": "godot_node_path_is_absolute",
- "return_type": "godot_bool",
+ "name": "godot_string_findmk_from",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_node_path *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["const godot_array *", "p_keys"],
+ ["godot_int", "p_from"]
]
},
{
- "name": "godot_node_path_get_name_count",
+ "name": "godot_string_findmk_from_in_place",
"return_type": "godot_int",
"arguments": [
- ["const godot_node_path *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["const godot_array *", "p_keys"],
+ ["godot_int", "p_from"],
+ ["godot_int *", "r_key"]
]
},
{
- "name": "godot_node_path_get_name",
+ "name": "godot_string_findn",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_what"]
+ ]
+ },
+ {
+ "name": "godot_string_findn_from",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_what"],
+ ["godot_int", "p_from"]
+ ]
+ },
+ {
+ "name": "godot_string_find_last",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_what"]
+ ]
+ },
+ {
+ "name": "godot_string_format",
"return_type": "godot_string",
"arguments": [
- ["const godot_node_path *", "p_self"],
- ["const godot_int", "p_idx"]
+ ["const godot_string *", "p_self"],
+ ["const godot_variant *", "p_values"]
]
},
{
- "name": "godot_node_path_get_subname_count",
+ "name": "godot_string_format_with_custom_placeholder",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["const godot_variant *", "p_values"],
+ ["const char *", "p_placeholder"]
+ ]
+ },
+ {
+ "name": "godot_string_hex_encode_buffer",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const uint8_t *", "p_buffer"],
+ ["godot_int", "p_len"]
+ ]
+ },
+ {
+ "name": "godot_string_hex_to_int",
"return_type": "godot_int",
"arguments": [
- ["const godot_node_path *", "p_self"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_node_path_get_subname",
+ "name": "godot_string_hex_to_int_without_prefix",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_insert",
"return_type": "godot_string",
"arguments": [
- ["const godot_node_path *", "p_self"],
- ["const godot_int", "p_idx"]
+ ["const godot_string *", "p_self"],
+ ["godot_int", "p_at_pos"],
+ ["godot_string", "p_string"]
]
},
{
- "name": "godot_node_path_get_concatenated_subnames",
+ "name": "godot_string_is_numeric",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_is_subsequence_of",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_string"]
+ ]
+ },
+ {
+ "name": "godot_string_is_subsequence_ofi",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_string"]
+ ]
+ },
+ {
+ "name": "godot_string_lpad",
"return_type": "godot_string",
"arguments": [
- ["const godot_node_path *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["godot_int", "p_min_length"]
]
},
{
- "name": "godot_node_path_is_empty",
+ "name": "godot_string_lpad_with_custom_character",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["godot_int", "p_min_length"],
+ ["const godot_string *", "p_character"]
+ ]
+ },
+ {
+ "name": "godot_string_match",
"return_type": "godot_bool",
"arguments": [
- ["const godot_node_path *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_wildcard"]
]
},
{
- "name": "godot_node_path_operator_equal",
+ "name": "godot_string_matchn",
"return_type": "godot_bool",
"arguments": [
- ["const godot_node_path *", "p_self"],
- ["const godot_node_path *", "p_b"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_wildcard"]
]
},
{
- "name": "godot_plane_new_with_reals",
- "return_type": "void",
+ "name": "godot_string_md5",
+ "return_type": "godot_string",
"arguments": [
- ["godot_plane *", "r_dest"],
- ["const godot_real", "p_a"],
- ["const godot_real", "p_b"],
- ["const godot_real", "p_c"],
- ["const godot_real", "p_d"]
+ ["const uint8_t *", "p_md5"]
]
},
{
- "name": "godot_plane_new_with_vectors",
- "return_type": "void",
+ "name": "godot_string_num",
+ "return_type": "godot_string",
"arguments": [
- ["godot_plane *", "r_dest"],
- ["const godot_vector3 *", "p_v1"],
- ["const godot_vector3 *", "p_v2"],
- ["const godot_vector3 *", "p_v3"]
+ ["double", "p_num"]
]
},
{
- "name": "godot_plane_new_with_normal",
- "return_type": "void",
+ "name": "godot_string_num_int64",
+ "return_type": "godot_string",
"arguments": [
- ["godot_plane *", "r_dest"],
- ["const godot_vector3 *", "p_normal"],
- ["const godot_real", "p_d"]
+ ["int64_t", "p_num"],
+ ["godot_int", "p_base"]
]
},
{
- "name": "godot_plane_as_string",
+ "name": "godot_string_num_int64_capitalized",
"return_type": "godot_string",
"arguments": [
- ["const godot_plane *", "p_self"]
+ ["int64_t", "p_num"],
+ ["godot_int", "p_base"],
+ ["godot_bool", "p_capitalize_hex"]
]
},
{
- "name": "godot_plane_normalized",
- "return_type": "godot_plane",
+ "name": "godot_string_num_real",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_plane *", "p_self"]
+ ["double", "p_num"]
]
},
{
- "name": "godot_plane_center",
- "return_type": "godot_vector3",
+ "name": "godot_string_num_scientific",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_plane *", "p_self"]
+ ["double", "p_num"]
]
},
{
- "name": "godot_plane_get_any_point",
- "return_type": "godot_vector3",
+ "name": "godot_string_num_with_decimals",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_plane *", "p_self"]
+ ["double", "p_num"],
+ ["godot_int", "p_decimals"]
]
},
{
- "name": "godot_plane_is_point_over",
- "return_type": "godot_bool",
+ "name": "godot_string_pad_decimals",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_plane *", "p_self"],
- ["const godot_vector3 *", "p_point"]
+ ["const godot_string *", "p_self"],
+ ["godot_int", "p_digits"]
]
},
{
- "name": "godot_plane_distance_to",
- "return_type": "godot_real",
+ "name": "godot_string_pad_zeros",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_plane *", "p_self"],
- ["const godot_vector3 *", "p_point"]
+ ["const godot_string *", "p_self"],
+ ["godot_int", "p_digits"]
]
},
{
- "name": "godot_plane_has_point",
- "return_type": "godot_bool",
+ "name": "godot_string_replace_first",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_plane *", "p_self"],
- ["const godot_vector3 *", "p_point"],
- ["const godot_real", "p_epsilon"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_key"],
+ ["godot_string", "p_with"]
]
},
{
- "name": "godot_plane_project",
- "return_type": "godot_vector3",
+ "name": "godot_string_replace",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_plane *", "p_self"],
- ["const godot_vector3 *", "p_point"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_key"],
+ ["godot_string", "p_with"]
]
},
{
- "name": "godot_plane_intersect_3",
- "return_type": "godot_bool",
+ "name": "godot_string_replacen",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_plane *", "p_self"],
- ["godot_vector3 *", "r_dest"],
- ["const godot_plane *", "p_b"],
- ["const godot_plane *", "p_c"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_key"],
+ ["godot_string", "p_with"]
]
},
{
- "name": "godot_plane_intersects_ray",
- "return_type": "godot_bool",
+ "name": "godot_string_rfind",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_plane *", "p_self"],
- ["godot_vector3 *", "r_dest"],
- ["const godot_vector3 *", "p_from"],
- ["const godot_vector3 *", "p_dir"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_what"]
]
},
{
- "name": "godot_plane_intersects_segment",
- "return_type": "godot_bool",
+ "name": "godot_string_rfindn",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_plane *", "p_self"],
- ["godot_vector3 *", "r_dest"],
- ["const godot_vector3 *", "p_begin"],
- ["const godot_vector3 *", "p_end"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_what"]
]
},
{
- "name": "godot_plane_operator_neg",
- "return_type": "godot_plane",
+ "name": "godot_string_rfind_from",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_plane *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_what"],
+ ["godot_int", "p_from"]
]
},
{
- "name": "godot_plane_operator_equal",
- "return_type": "godot_bool",
+ "name": "godot_string_rfindn_from",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_plane *", "p_self"],
- ["const godot_plane *", "p_b"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_what"],
+ ["godot_int", "p_from"]
]
},
{
- "name": "godot_plane_set_normal",
- "return_type": "void",
+ "name": "godot_string_rpad",
+ "return_type": "godot_string",
"arguments": [
- ["godot_plane *", "p_self"],
- ["const godot_vector3 *", "p_normal"]
+ ["const godot_string *", "p_self"],
+ ["godot_int", "p_min_length"]
]
},
{
- "name": "godot_plane_get_normal",
- "return_type": "godot_vector3",
+ "name": "godot_string_rpad_with_custom_character",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_plane *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["godot_int", "p_min_length"],
+ ["const godot_string *", "p_character"]
]
},
{
- "name": "godot_plane_get_d",
+ "name": "godot_string_similarity",
"return_type": "godot_real",
"arguments": [
- ["const godot_plane *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_string"]
]
},
{
- "name": "godot_plane_set_d",
- "return_type": "void",
+ "name": "godot_string_sprintf",
+ "return_type": "godot_string",
"arguments": [
- ["godot_plane *", "p_self"],
- ["const godot_real", "p_d"]
+ ["const godot_string *", "p_self"],
+ ["const godot_array *", "p_values"],
+ ["godot_bool *", "p_error"]
]
},
{
- "name": "godot_rect2_new_with_position_and_size",
- "return_type": "void",
+ "name": "godot_string_substr",
+ "return_type": "godot_string",
"arguments": [
- ["godot_rect2 *", "r_dest"],
- ["const godot_vector2 *", "p_pos"],
- ["const godot_vector2 *", "p_size"]
+ ["const godot_string *", "p_self"],
+ ["godot_int", "p_from"],
+ ["godot_int", "p_chars"]
]
},
{
- "name": "godot_rect2_new",
- "return_type": "void",
+ "name": "godot_string_to_double",
+ "return_type": "double",
"arguments": [
- ["godot_rect2 *", "r_dest"],
- ["const godot_real", "p_x"],
- ["const godot_real", "p_y"],
- ["const godot_real", "p_width"],
- ["const godot_real", "p_height"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_rect2_as_string",
+ "name": "godot_string_to_float",
+ "return_type": "godot_real",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_to_int",
+ "return_type": "godot_int",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_camelcase_to_underscore",
"return_type": "godot_string",
"arguments": [
- ["const godot_rect2 *", "p_self"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_rect2_get_area",
- "return_type": "godot_real",
+ "name": "godot_string_camelcase_to_underscore_lowercased",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_rect2 *", "p_self"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_rect2_intersects",
- "return_type": "godot_bool",
+ "name": "godot_string_capitalize",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_rect2 *", "p_self"],
- ["const godot_rect2 *", "p_b"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_rect2_encloses",
- "return_type": "godot_bool",
+ "name": "godot_string_char_to_double",
+ "return_type": "double",
"arguments": [
- ["const godot_rect2 *", "p_self"],
- ["const godot_rect2 *", "p_b"]
+ ["const char *", "p_what"]
]
},
{
- "name": "godot_rect2_has_no_area",
- "return_type": "godot_bool",
+ "name": "godot_string_char_to_int",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_rect2 *", "p_self"]
+ ["const char *", "p_what"]
]
},
{
- "name": "godot_rect2_clip",
- "return_type": "godot_rect2",
+ "name": "godot_string_wchar_to_int",
+ "return_type": "int64_t",
"arguments": [
- ["const godot_rect2 *", "p_self"],
- ["const godot_rect2 *", "p_b"]
+ ["const wchar_t *", "p_str"]
]
},
{
- "name": "godot_rect2_merge",
- "return_type": "godot_rect2",
+ "name": "godot_string_char_to_int_with_len",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_rect2 *", "p_self"],
- ["const godot_rect2 *", "p_b"]
+ ["const char *", "p_what"],
+ ["godot_int", "p_len"]
]
},
{
- "name": "godot_rect2_has_point",
- "return_type": "godot_bool",
+ "name": "godot_string_char_to_int64_with_len",
+ "return_type": "int64_t",
"arguments": [
- ["const godot_rect2 *", "p_self"],
- ["const godot_vector2 *", "p_point"]
+ ["const wchar_t *", "p_str"],
+ ["int", "p_len"]
]
},
{
- "name": "godot_rect2_grow",
- "return_type": "godot_rect2",
+ "name": "godot_string_hex_to_int64",
+ "return_type": "int64_t",
"arguments": [
- ["const godot_rect2 *", "p_self"],
- ["const godot_real", "p_by"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_rect2_expand",
- "return_type": "godot_rect2",
+ "name": "godot_string_hex_to_int64_with_prefix",
+ "return_type": "int64_t",
"arguments": [
- ["const godot_rect2 *", "p_self"],
- ["const godot_vector2 *", "p_to"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_rect2_operator_equal",
- "return_type": "godot_bool",
+ "name": "godot_string_to_int64",
+ "return_type": "int64_t",
"arguments": [
- ["const godot_rect2 *", "p_self"],
- ["const godot_rect2 *", "p_b"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_rect2_get_position",
- "return_type": "godot_vector2",
+ "name": "godot_string_unicode_char_to_double",
+ "return_type": "double",
"arguments": [
- ["const godot_rect2 *", "p_self"]
+ ["const wchar_t *", "p_str"],
+ ["const wchar_t **", "r_end"]
]
},
{
- "name": "godot_rect2_get_size",
- "return_type": "godot_vector2",
+ "name": "godot_string_get_slice_count",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_rect2 *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_splitter"]
]
},
{
- "name": "godot_rect2_set_position",
- "return_type": "void",
+ "name": "godot_string_get_slice",
+ "return_type": "godot_string",
"arguments": [
- ["godot_rect2 *", "p_self"],
- ["const godot_vector2 *", "p_pos"]
+ ["const godot_string *", "p_self"],
+ ["godot_string", "p_splitter"],
+ ["godot_int", "p_slice"]
]
},
{
- "name": "godot_rect2_set_size",
- "return_type": "void",
+ "name": "godot_string_get_slicec",
+ "return_type": "godot_string",
"arguments": [
- ["godot_rect2 *", "p_self"],
- ["const godot_vector2 *", "p_size"]
+ ["const godot_string *", "p_self"],
+ ["wchar_t", "p_splitter"],
+ ["godot_int", "p_slice"]
]
},
{
- "name": "godot_aabb_new",
- "return_type": "void",
+ "name": "godot_string_split",
+ "return_type": "godot_array",
"arguments": [
- ["godot_aabb *", "r_dest"],
- ["const godot_vector3 *", "p_pos"],
- ["const godot_vector3 *", "p_size"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_splitter"]
]
},
{
- "name": "godot_aabb_get_position",
- "return_type": "godot_vector3",
+ "name": "godot_string_split_allow_empty",
+ "return_type": "godot_array",
"arguments": [
- ["const godot_aabb *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_splitter"]
]
},
{
- "name": "godot_aabb_set_position",
- "return_type": "void",
+ "name": "godot_string_split_floats",
+ "return_type": "godot_array",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_vector3 *", "p_v"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_splitter"]
]
},
{
- "name": "godot_aabb_get_size",
- "return_type": "godot_vector3",
+ "name": "godot_string_split_floats_allows_empty",
+ "return_type": "godot_array",
"arguments": [
- ["const godot_aabb *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_splitter"]
]
},
{
- "name": "godot_aabb_set_size",
- "return_type": "void",
+ "name": "godot_string_split_floats_mk",
+ "return_type": "godot_array",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_vector3 *", "p_v"]
+ ["const godot_string *", "p_self"],
+ ["const godot_array *", "p_splitters"]
]
},
{
- "name": "godot_aabb_as_string",
+ "name": "godot_string_split_floats_mk_allows_empty",
+ "return_type": "godot_array",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["const godot_array *", "p_splitters"]
+ ]
+ },
+ {
+ "name": "godot_string_split_ints",
+ "return_type": "godot_array",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_splitter"]
+ ]
+ },
+ {
+ "name": "godot_string_split_ints_allows_empty",
+ "return_type": "godot_array",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_splitter"]
+ ]
+ },
+ {
+ "name": "godot_string_split_ints_mk",
+ "return_type": "godot_array",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["const godot_array *", "p_splitters"]
+ ]
+ },
+ {
+ "name": "godot_string_split_ints_mk_allows_empty",
+ "return_type": "godot_array",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["const godot_array *", "p_splitters"]
+ ]
+ },
+ {
+ "name": "godot_string_split_spaces",
+ "return_type": "godot_array",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_rstrip",
"return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_chars"]
]
},
{
- "name": "godot_aabb_get_area",
- "return_type": "godot_real",
+ "name": "godot_string_rsplit",
+ "return_type": "godot_packed_string_array",
"arguments": [
- ["const godot_aabb *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_divisor"],
+ ["const godot_bool", "p_allow_empty"],
+ ["const godot_int", "p_maxsplit"]
]
},
{
- "name": "godot_aabb_has_no_area",
- "return_type": "godot_bool",
+ "name": "godot_string_trim_prefix",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_prefix"]
]
},
{
- "name": "godot_aabb_has_no_surface",
+ "name": "godot_string_trim_suffix",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_suffix"]
+ ]
+ },
+ {
+ "name": "godot_string_char_lowercase",
+ "return_type": "wchar_t",
+ "arguments": [
+ ["wchar_t", "p_char"]
+ ]
+ },
+ {
+ "name": "godot_string_char_uppercase",
+ "return_type": "wchar_t",
+ "arguments": [
+ ["wchar_t", "p_char"]
+ ]
+ },
+ {
+ "name": "godot_string_to_lower",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_to_upper",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_get_basename",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_get_extension",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_left",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["godot_int", "p_pos"]
+ ]
+ },
+ {
+ "name": "godot_string_ord_at",
+ "return_type": "wchar_t",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["godot_int", "p_idx"]
+ ]
+ },
+ {
+ "name": "godot_string_plus_file",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_file"]
+ ]
+ },
+ {
+ "name": "godot_string_right",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["godot_int", "p_pos"]
+ ]
+ },
+ {
+ "name": "godot_string_strip_edges",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["godot_bool", "p_left"],
+ ["godot_bool", "p_right"]
+ ]
+ },
+ {
+ "name": "godot_string_strip_escapes",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_erase",
+ "return_type": "void",
+ "arguments": [
+ ["godot_string *", "p_self"],
+ ["godot_int", "p_pos"],
+ ["godot_int", "p_chars"]
+ ]
+ },
+ {
+ "name": "godot_string_ascii",
+ "return_type": "godot_char_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_ascii_extended",
+ "return_type": "godot_char_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_utf8",
+ "return_type": "godot_char_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_parse_utf8",
"return_type": "godot_bool",
"arguments": [
- ["const godot_aabb *", "p_self"]
+ ["godot_string *", "p_self"],
+ ["const char *", "p_utf8"]
]
},
{
- "name": "godot_aabb_intersects",
+ "name": "godot_string_parse_utf8_with_len",
"return_type": "godot_bool",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_aabb *", "p_with"]
+ ["godot_string *", "p_self"],
+ ["const char *", "p_utf8"],
+ ["godot_int", "p_len"]
]
},
{
- "name": "godot_aabb_encloses",
+ "name": "godot_string_chars_to_utf8",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const char *", "p_utf8"]
+ ]
+ },
+ {
+ "name": "godot_string_chars_to_utf8_with_len",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const char *", "p_utf8"],
+ ["godot_int", "p_len"]
+ ]
+ },
+ {
+ "name": "godot_string_hash",
+ "return_type": "uint32_t",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_hash64",
+ "return_type": "uint64_t",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_hash_chars",
+ "return_type": "uint32_t",
+ "arguments": [
+ ["const char *", "p_cstr"]
+ ]
+ },
+ {
+ "name": "godot_string_hash_chars_with_len",
+ "return_type": "uint32_t",
+ "arguments": [
+ ["const char *", "p_cstr"],
+ ["godot_int", "p_len"]
+ ]
+ },
+ {
+ "name": "godot_string_hash_utf8_chars",
+ "return_type": "uint32_t",
+ "arguments": [
+ ["const wchar_t *", "p_str"]
+ ]
+ },
+ {
+ "name": "godot_string_hash_utf8_chars_with_len",
+ "return_type": "uint32_t",
+ "arguments": [
+ ["const wchar_t *", "p_str"],
+ ["godot_int", "p_len"]
+ ]
+ },
+ {
+ "name": "godot_string_md5_buffer",
+ "return_type": "godot_packed_byte_array",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_md5_text",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_sha256_buffer",
+ "return_type": "godot_packed_byte_array",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_sha256_text",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_empty",
"return_type": "godot_bool",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_aabb *", "p_with"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_merge",
- "return_type": "godot_aabb",
+ "name": "godot_string_get_base_dir",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_aabb *", "p_with"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_intersection",
- "return_type": "godot_aabb",
+ "name": "godot_string_get_file",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_aabb *", "p_with"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_intersects_plane",
+ "name": "godot_string_humanize_size",
+ "return_type": "godot_string",
+ "arguments": [
+ ["size_t", "p_size"]
+ ]
+ },
+ {
+ "name": "godot_string_is_abs_path",
"return_type": "godot_bool",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_plane *", "p_plane"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_intersects_segment",
+ "name": "godot_string_is_rel_path",
"return_type": "godot_bool",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_vector3 *", "p_from"],
- ["const godot_vector3 *", "p_to"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_has_point",
+ "name": "godot_string_is_resource_file",
"return_type": "godot_bool",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_vector3 *", "p_point"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_get_support",
- "return_type": "godot_vector3",
+ "name": "godot_string_path_to",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_vector3 *", "p_dir"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_path"]
]
},
{
- "name": "godot_aabb_get_longest_axis",
- "return_type": "godot_vector3",
+ "name": "godot_string_path_to_file",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"]
+ ["const godot_string *", "p_self"],
+ ["const godot_string *", "p_path"]
]
},
{
- "name": "godot_aabb_get_longest_axis_index",
- "return_type": "godot_int",
+ "name": "godot_string_simplify_path",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_get_longest_axis_size",
- "return_type": "godot_real",
+ "name": "godot_string_c_escape",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_get_shortest_axis",
- "return_type": "godot_vector3",
+ "name": "godot_string_c_escape_multiline",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_get_shortest_axis_index",
- "return_type": "godot_int",
+ "name": "godot_string_c_unescape",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_get_shortest_axis_size",
- "return_type": "godot_real",
+ "name": "godot_string_http_escape",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_expand",
- "return_type": "godot_aabb",
+ "name": "godot_string_http_unescape",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_vector3 *", "p_to_point"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_grow",
- "return_type": "godot_aabb",
+ "name": "godot_string_json_escape",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_real", "p_by"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_aabb_get_endpoint",
- "return_type": "godot_vector3",
+ "name": "godot_string_word_wrap",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_int", "p_idx"]
+ ["const godot_string *", "p_self"],
+ ["godot_int", "p_chars_per_line"]
]
},
{
- "name": "godot_aabb_operator_equal",
+ "name": "godot_string_xml_escape",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_xml_escape_with_quotes",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_xml_unescape",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_percent_decode",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_percent_encode",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_is_valid_float",
"return_type": "godot_bool",
"arguments": [
- ["const godot_aabb *", "p_self"],
- ["const godot_aabb *", "p_b"]
+ ["const godot_string *", "p_self"]
]
},
{
- "name": "godot_rid_new",
+ "name": "godot_string_is_valid_hex_number",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_string *", "p_self"],
+ ["godot_bool", "p_with_prefix"]
+ ]
+ },
+ {
+ "name": "godot_string_is_valid_html_color",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_is_valid_identifier",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_is_valid_integer",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_is_valid_ip_address",
+ "return_type": "godot_bool",
+ "arguments": [
+ ["const godot_string *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_destroy",
"return_type": "void",
"arguments": [
- ["godot_rid *", "r_dest"]
+ ["godot_string *", "p_self"]
]
},
{
- "name": "godot_rid_get_id",
- "return_type": "godot_int",
+ "name": "godot_string_name_new",
+ "return_type": "void",
"arguments": [
- ["const godot_rid *", "p_self"]
+ ["godot_string_name *", "r_dest"],
+ ["const godot_string *", "p_name"]
]
},
{
- "name": "godot_rid_new_with_resource",
+ "name": "godot_string_name_new_data",
"return_type": "void",
"arguments": [
- ["godot_rid *", "r_dest"],
- ["const godot_object *", "p_from"]
+ ["godot_string_name *", "r_dest"],
+ ["const char *", "p_name"]
]
},
{
- "name": "godot_rid_operator_equal",
+ "name": "godot_string_name_get_name",
+ "return_type": "godot_string",
+ "arguments": [
+ ["const godot_string_name *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_name_get_hash",
+ "return_type": "uint32_t",
+ "arguments": [
+ ["const godot_string_name *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_name_get_data_unique_pointer",
+ "return_type": "const void *",
+ "arguments": [
+ ["const godot_string_name *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_string_name_operator_equal",
"return_type": "godot_bool",
"arguments": [
- ["const godot_rid *", "p_self"],
- ["const godot_rid *", "p_b"]
+ ["const godot_string_name *", "p_self"],
+ ["const godot_string_name *", "p_other"]
]
},
{
- "name": "godot_rid_operator_less",
+ "name": "godot_string_name_operator_less",
"return_type": "godot_bool",
"arguments": [
- ["const godot_rid *", "p_self"],
- ["const godot_rid *", "p_b"]
+ ["const godot_string_name *", "p_self"],
+ ["const godot_string_name *", "p_other"]
+ ]
+ },
+ {
+ "name": "godot_string_name_destroy",
+ "return_type": "void",
+ "arguments": [
+ ["godot_string_name *", "p_self"]
]
},
{
@@ -4769,6 +4867,14 @@
]
},
{
+ "name": "godot_transform_new_with_quat",
+ "return_type": "void",
+ "arguments": [
+ ["godot_transform *", "r_dest"],
+ ["const godot_quat *", "p_quat"]
+ ]
+ },
+ {
"name": "godot_transform_new",
"return_type": "void",
"arguments": [
@@ -5175,6 +5281,14 @@
]
},
{
+ "name": "godot_variant_new_string_name",
+ "return_type": "void",
+ "arguments": [
+ ["godot_variant *", "r_dest"],
+ ["const godot_string_name *", "p_s"]
+ ]
+ },
+ {
"name": "godot_variant_new_vector2",
"return_type": "void",
"arguments": [
@@ -5183,6 +5297,14 @@
]
},
{
+ "name": "godot_variant_new_vector2i",
+ "return_type": "void",
+ "arguments": [
+ ["godot_variant *", "r_dest"],
+ ["const godot_vector2i *", "p_v2"]
+ ]
+ },
+ {
"name": "godot_variant_new_rect2",
"return_type": "void",
"arguments": [
@@ -5191,6 +5313,14 @@
]
},
{
+ "name": "godot_variant_new_rect2i",
+ "return_type": "void",
+ "arguments": [
+ ["godot_variant *", "r_dest"],
+ ["const godot_rect2i *", "p_rect2"]
+ ]
+ },
+ {
"name": "godot_variant_new_vector3",
"return_type": "void",
"arguments": [
@@ -5199,6 +5329,14 @@
]
},
{
+ "name": "godot_variant_new_vector3i",
+ "return_type": "void",
+ "arguments": [
+ ["godot_variant *", "r_dest"],
+ ["const godot_vector3i *", "p_v3"]
+ ]
+ },
+ {
"name": "godot_variant_new_transform2d",
"return_type": "void",
"arguments": [
@@ -5279,6 +5417,22 @@
]
},
{
+ "name": "godot_variant_new_callable",
+ "return_type": "void",
+ "arguments": [
+ ["godot_variant *", "r_dest"],
+ ["const godot_callable *", "p_cb"]
+ ]
+ },
+ {
+ "name": "godot_variant_new_signal",
+ "return_type": "void",
+ "arguments": [
+ ["godot_variant *", "r_dest"],
+ ["const godot_signal *", "p_signal"]
+ ]
+ },
+ {
"name": "godot_variant_new_dictionary",
"return_type": "void",
"arguments": [
@@ -5311,6 +5465,14 @@
]
},
{
+ "name": "godot_variant_new_packed_int64_array",
+ "return_type": "void",
+ "arguments": [
+ ["godot_variant *", "r_dest"],
+ ["const godot_packed_int64_array *", "p_pia"]
+ ]
+ },
+ {
"name": "godot_variant_new_packed_float32_array",
"return_type": "void",
"arguments": [
@@ -5319,6 +5481,14 @@
]
},
{
+ "name": "godot_variant_new_packed_float64_array",
+ "return_type": "void",
+ "arguments": [
+ ["godot_variant *", "r_dest"],
+ ["const godot_packed_float64_array *", "p_pra"]
+ ]
+ },
+ {
"name": "godot_variant_new_packed_string_array",
"return_type": "void",
"arguments": [
@@ -5386,6 +5556,13 @@
]
},
{
+ "name": "godot_variant_as_string_name",
+ "return_type": "godot_string_name",
+ "arguments": [
+ ["const godot_variant *", "p_self"]
+ ]
+ },
+ {
"name": "godot_variant_as_vector2",
"return_type": "godot_vector2",
"arguments": [
@@ -5393,6 +5570,13 @@
]
},
{
+ "name": "godot_variant_as_vector2i",
+ "return_type": "godot_vector2i",
+ "arguments": [
+ ["const godot_variant *", "p_self"]
+ ]
+ },
+ {
"name": "godot_variant_as_rect2",
"return_type": "godot_rect2",
"arguments": [
@@ -5400,6 +5584,13 @@
]
},
{
+ "name": "godot_variant_as_rect2i",
+ "return_type": "godot_rect2i",
+ "arguments": [
+ ["const godot_variant *", "p_self"]
+ ]
+ },
+ {
"name": "godot_variant_as_vector3",
"return_type": "godot_vector3",
"arguments": [
@@ -5407,6 +5598,13 @@
]
},
{
+ "name": "godot_variant_as_vector3i",
+ "return_type": "godot_vector3i",
+ "arguments": [
+ ["const godot_variant *", "p_self"]
+ ]
+ },
+ {
"name": "godot_variant_as_transform2d",
"return_type": "godot_transform2d",
"arguments": [
@@ -5477,6 +5675,20 @@
]
},
{
+ "name": "godot_variant_as_callable",
+ "return_type": "godot_callable",
+ "arguments": [
+ ["const godot_variant *", "p_self"]
+ ]
+ },
+ {
+ "name": "godot_variant_as_signal",
+ "return_type": "godot_signal",
+ "arguments": [
+ ["const godot_variant *", "p_self"]
+ ]
+ },
+ {
"name": "godot_variant_as_dictionary",
"return_type": "godot_dictionary",
"arguments": [
@@ -5505,6 +5717,13 @@
]
},
{
+ "name": "godot_variant_as_packed_int64_array",
+ "return_type": "godot_packed_int64_array",
+ "arguments": [
+ ["const godot_variant *", "p_self"]
+ ]
+ },
+ {
"name": "godot_variant_as_packed_float32_array",
"return_type": "godot_packed_float32_array",
"arguments": [
@@ -5512,6 +5731,13 @@
]
},
{
+ "name": "godot_variant_as_packed_float64_array",
+ "return_type": "godot_packed_float64_array",
+ "arguments": [
+ ["const godot_variant *", "p_self"]
+ ]
+ },
+ {
"name": "godot_variant_as_packed_string_array",
"return_type": "godot_packed_string_array",
"arguments": [
@@ -5559,15 +5785,14 @@
]
},
{
- "name": "godot_variant_operator_equal",
- "return_type": "godot_bool",
+ "name": "godot_variant_hash",
+ "return_type": "uint32_t",
"arguments": [
- ["const godot_variant *", "p_self"],
- ["const godot_variant *", "p_other"]
+ ["const godot_variant *", "p_self"]
]
},
{
- "name": "godot_variant_operator_less",
+ "name": "godot_variant_operator_equal",
"return_type": "godot_bool",
"arguments": [
["const godot_variant *", "p_self"],
@@ -5575,7 +5800,7 @@
]
},
{
- "name": "godot_variant_hash_compare",
+ "name": "godot_variant_operator_less",
"return_type": "godot_bool",
"arguments": [
["const godot_variant *", "p_self"],
@@ -5583,1236 +5808,1005 @@
]
},
{
- "name": "godot_variant_booleanize",
- "return_type": "godot_bool",
- "arguments": [
- ["const godot_variant *", "p_self"]
- ]
- },
- {
- "name": "godot_variant_destroy",
- "return_type": "void",
- "arguments": [
- ["godot_variant *", "p_self"]
- ]
- },
- {
- "name": "godot_char_string_length",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_char_string *", "p_cs"]
- ]
- },
- {
- "name": "godot_char_string_get_data",
- "return_type": "const char *",
+ "name": "godot_variant_get_operator_name",
+ "return_type": "godot_string",
"arguments": [
- ["const godot_char_string *", "p_cs"]
+ ["godot_variant_operator", "p_op"]
]
},
{
- "name": "godot_char_string_destroy",
+ "name": "godot_variant_evaluate",
"return_type": "void",
"arguments": [
- ["godot_char_string *", "p_cs"]
+ ["godot_variant_operator", "p_op"],
+ ["const godot_variant *", "p_a"],
+ ["const godot_variant *", "p_b"],
+ ["godot_variant *", "r_ret"],
+ ["godot_bool *", "r_valid"]
]
},
{
- "name": "godot_string_new",
- "return_type": "void",
+ "name": "godot_variant_hash_compare",
+ "return_type": "godot_bool",
"arguments": [
- ["godot_string *", "r_dest"]
+ ["const godot_variant *", "p_self"],
+ ["const godot_variant *", "p_other"]
]
},
{
- "name": "godot_string_new_copy",
- "return_type": "void",
+ "name": "godot_variant_booleanize",
+ "return_type": "godot_bool",
"arguments": [
- ["godot_string *", "r_dest"],
- ["const godot_string *", "p_src"]
+ ["const godot_variant *", "p_self"]
]
},
{
- "name": "godot_string_new_with_wide_string",
+ "name": "godot_variant_destroy",
"return_type": "void",
"arguments": [
- ["godot_string *", "r_dest"],
- ["const wchar_t *", "p_contents"],
- ["const int", "p_size"]
+ ["godot_variant *", "p_self"]
]
},
{
- "name": "godot_string_operator_index",
- "return_type": "const wchar_t *",
+ "name": "godot_vector2_as_vector2i",
+ "return_type": "godot_vector2i",
"arguments": [
- ["godot_string *", "p_self"],
- ["const godot_int", "p_idx"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_operator_index_const",
- "return_type": "wchar_t",
+ "name": "godot_vector2_sign",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_int", "p_idx"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_wide_str",
- "return_type": "const wchar_t *",
+ "name": "godot_vector2_move_toward",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_to"],
+ ["const godot_real", "p_delta"]
]
},
{
- "name": "godot_string_operator_equal",
- "return_type": "godot_bool",
+ "name": "godot_vector2_direction_to",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_b"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_to"]
]
},
{
- "name": "godot_string_operator_less",
- "return_type": "godot_bool",
+ "name": "godot_vector2_new",
+ "return_type": "void",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_b"]
+ ["godot_vector2 *", "r_dest"],
+ ["const godot_real", "p_x"],
+ ["const godot_real", "p_y"]
]
},
{
- "name": "godot_string_operator_plus",
+ "name": "godot_vector2_as_string",
"return_type": "godot_string",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_b"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_length",
- "return_type": "godot_int",
+ "name": "godot_vector2_normalized",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_casecmp_to",
- "return_type": "signed char",
+ "name": "godot_vector2_length",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_str"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_nocasecmp_to",
- "return_type": "signed char",
+ "name": "godot_vector2_angle",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_str"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_naturalnocasecmp_to",
- "return_type": "signed char",
+ "name": "godot_vector2_length_squared",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_str"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_begins_with",
+ "name": "godot_vector2_is_normalized",
"return_type": "godot_bool",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_string"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_begins_with_char_array",
- "return_type": "godot_bool",
+ "name": "godot_vector2_distance_to",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const char *", "p_char_array"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_to"]
]
},
{
- "name": "godot_string_bigrams",
- "return_type": "godot_array",
+ "name": "godot_vector2_distance_squared_to",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_to"]
]
},
{
- "name": "godot_string_chr",
- "return_type": "godot_string",
+ "name": "godot_vector2_angle_to",
+ "return_type": "godot_real",
"arguments": [
- ["wchar_t", "p_character"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_to"]
]
},
{
- "name": "godot_string_ends_with",
- "return_type": "godot_bool",
+ "name": "godot_vector2_angle_to_point",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_string"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_to"]
]
},
{
- "name": "godot_string_find",
- "return_type": "godot_int",
+ "name": "godot_vector2_lerp",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_what"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_b"],
+ ["const godot_real", "p_t"]
]
},
{
- "name": "godot_string_find_from",
- "return_type": "godot_int",
+ "name": "godot_vector2_cubic_interpolate",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_what"],
- ["godot_int", "p_from"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_b"],
+ ["const godot_vector2 *", "p_pre_a"],
+ ["const godot_vector2 *", "p_post_b"],
+ ["const godot_real", "p_t"]
]
},
{
- "name": "godot_string_findmk",
- "return_type": "godot_int",
+ "name": "godot_vector2_rotated",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_array *", "p_keys"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_real", "p_phi"]
]
},
{
- "name": "godot_string_findmk_from",
- "return_type": "godot_int",
+ "name": "godot_vector2_tangent",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_array *", "p_keys"],
- ["godot_int", "p_from"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_findmk_from_in_place",
- "return_type": "godot_int",
+ "name": "godot_vector2_floor",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_array *", "p_keys"],
- ["godot_int", "p_from"],
- ["godot_int *", "r_key"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_findn",
- "return_type": "godot_int",
+ "name": "godot_vector2_snapped",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_what"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_by"]
]
},
{
- "name": "godot_string_findn_from",
- "return_type": "godot_int",
+ "name": "godot_vector2_aspect",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_what"],
- ["godot_int", "p_from"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_find_last",
- "return_type": "godot_int",
+ "name": "godot_vector2_dot",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_what"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_with"]
]
},
{
- "name": "godot_string_format",
- "return_type": "godot_string",
+ "name": "godot_vector2_slide",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_variant *", "p_values"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_n"]
]
},
{
- "name": "godot_string_format_with_custom_placeholder",
- "return_type": "godot_string",
+ "name": "godot_vector2_bounce",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_variant *", "p_values"],
- ["const char *", "p_placeholder"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_n"]
]
},
{
- "name": "godot_string_hex_encode_buffer",
- "return_type": "godot_string",
+ "name": "godot_vector2_reflect",
+ "return_type": "godot_vector2",
"arguments": [
- ["const uint8_t *", "p_buffer"],
- ["godot_int", "p_len"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_n"]
]
},
{
- "name": "godot_string_hex_to_int",
- "return_type": "godot_int",
+ "name": "godot_vector2_abs",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_hex_to_int_without_prefix",
- "return_type": "godot_int",
+ "name": "godot_vector2_clamped",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_real", "p_length"]
]
},
{
- "name": "godot_string_insert",
- "return_type": "godot_string",
+ "name": "godot_vector2_operator_add",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_int", "p_at_pos"],
- ["godot_string", "p_string"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_b"]
]
},
{
- "name": "godot_string_is_numeric",
- "return_type": "godot_bool",
+ "name": "godot_vector2_operator_subtract",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_b"]
]
},
{
- "name": "godot_string_is_subsequence_of",
- "return_type": "godot_bool",
+ "name": "godot_vector2_operator_multiply_vector",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_string"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_b"]
]
},
{
- "name": "godot_string_is_subsequence_ofi",
- "return_type": "godot_bool",
+ "name": "godot_vector2_operator_multiply_scalar",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_string"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_real", "p_b"]
]
},
{
- "name": "godot_string_lpad",
- "return_type": "godot_string",
+ "name": "godot_vector2_operator_divide_vector",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_int", "p_min_length"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_b"]
]
},
{
- "name": "godot_string_lpad_with_custom_character",
- "return_type": "godot_string",
+ "name": "godot_vector2_operator_divide_scalar",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_int", "p_min_length"],
- ["const godot_string *", "p_character"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_real", "p_b"]
]
},
{
- "name": "godot_string_match",
+ "name": "godot_vector2_operator_equal",
"return_type": "godot_bool",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_wildcard"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_b"]
]
},
{
- "name": "godot_string_matchn",
+ "name": "godot_vector2_operator_less",
"return_type": "godot_bool",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_wildcard"]
- ]
- },
- {
- "name": "godot_string_md5",
- "return_type": "godot_string",
- "arguments": [
- ["const uint8_t *", "p_md5"]
- ]
- },
- {
- "name": "godot_string_num",
- "return_type": "godot_string",
- "arguments": [
- ["double", "p_num"]
- ]
- },
- {
- "name": "godot_string_num_int64",
- "return_type": "godot_string",
- "arguments": [
- ["int64_t", "p_num"],
- ["godot_int", "p_base"]
- ]
- },
- {
- "name": "godot_string_num_int64_capitalized",
- "return_type": "godot_string",
- "arguments": [
- ["int64_t", "p_num"],
- ["godot_int", "p_base"],
- ["godot_bool", "p_capitalize_hex"]
- ]
- },
- {
- "name": "godot_string_num_real",
- "return_type": "godot_string",
- "arguments": [
- ["double", "p_num"]
- ]
- },
- {
- "name": "godot_string_num_scientific",
- "return_type": "godot_string",
- "arguments": [
- ["double", "p_num"]
- ]
- },
- {
- "name": "godot_string_num_with_decimals",
- "return_type": "godot_string",
- "arguments": [
- ["double", "p_num"],
- ["godot_int", "p_decimals"]
- ]
- },
- {
- "name": "godot_string_pad_decimals",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["godot_int", "p_digits"]
- ]
- },
- {
- "name": "godot_string_pad_zeros",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["godot_int", "p_digits"]
- ]
- },
- {
- "name": "godot_string_replace_first",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_key"],
- ["godot_string", "p_with"]
- ]
- },
- {
- "name": "godot_string_replace",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_key"],
- ["godot_string", "p_with"]
- ]
- },
- {
- "name": "godot_string_replacen",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_key"],
- ["godot_string", "p_with"]
- ]
- },
- {
- "name": "godot_string_rfind",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_what"]
- ]
- },
- {
- "name": "godot_string_rfindn",
- "return_type": "godot_int",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_what"]
+ ["const godot_vector2 *", "p_self"],
+ ["const godot_vector2 *", "p_b"]
]
},
{
- "name": "godot_string_rfind_from",
- "return_type": "godot_int",
+ "name": "godot_vector2_operator_neg",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_what"],
- ["godot_int", "p_from"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_rfindn_from",
- "return_type": "godot_int",
+ "name": "godot_vector2_set_x",
+ "return_type": "void",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_what"],
- ["godot_int", "p_from"]
+ ["godot_vector2 *", "p_self"],
+ ["const godot_real", "p_x"]
]
},
{
- "name": "godot_string_rpad",
- "return_type": "godot_string",
+ "name": "godot_vector2_set_y",
+ "return_type": "void",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_int", "p_min_length"]
+ ["godot_vector2 *", "p_self"],
+ ["const godot_real", "p_y"]
]
},
{
- "name": "godot_string_rpad_with_custom_character",
- "return_type": "godot_string",
+ "name": "godot_vector2_get_x",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_int", "p_min_length"],
- ["const godot_string *", "p_character"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_similarity",
+ "name": "godot_vector2_get_y",
"return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_string"]
+ ["const godot_vector2 *", "p_self"]
]
},
{
- "name": "godot_string_sprintf",
- "return_type": "godot_string",
+ "name": "godot_vector2i_new",
+ "return_type": "void",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_array *", "p_values"],
- ["godot_bool *", "p_error"]
+ ["godot_vector2i *", "r_dest"],
+ ["const godot_int", "p_x"],
+ ["const godot_int", "p_y"]
]
},
{
- "name": "godot_string_substr",
+ "name": "godot_vector2i_as_string",
"return_type": "godot_string",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_int", "p_from"],
- ["godot_int", "p_chars"]
+ ["const godot_vector2i *", "p_self"]
]
},
{
- "name": "godot_string_to_double",
- "return_type": "double",
+ "name": "godot_vector2i_as_vector2",
+ "return_type": "godot_vector2",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2i *", "p_self"]
]
},
{
- "name": "godot_string_to_float",
+ "name": "godot_vector2i_aspect",
"return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2i *", "p_self"]
]
},
{
- "name": "godot_string_to_int",
- "return_type": "godot_int",
+ "name": "godot_vector2i_abs",
+ "return_type": "godot_vector2i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2i *", "p_self"]
]
},
{
- "name": "godot_string_camelcase_to_underscore",
- "return_type": "godot_string",
+ "name": "godot_vector2i_sign",
+ "return_type": "godot_vector2i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2i *", "p_self"]
]
},
{
- "name": "godot_string_camelcase_to_underscore_lowercased",
- "return_type": "godot_string",
+ "name": "godot_vector2i_operator_add",
+ "return_type": "godot_vector2i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2i *", "p_self"],
+ ["const godot_vector2i *", "p_b"]
]
},
{
- "name": "godot_string_capitalize",
- "return_type": "godot_string",
+ "name": "godot_vector2i_operator_subtract",
+ "return_type": "godot_vector2i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2i *", "p_self"],
+ ["const godot_vector2i *", "p_b"]
]
},
{
- "name": "godot_string_char_to_double",
- "return_type": "double",
+ "name": "godot_vector2i_operator_multiply_vector",
+ "return_type": "godot_vector2i",
"arguments": [
- ["const char *", "p_what"]
+ ["const godot_vector2i *", "p_self"],
+ ["const godot_vector2i *", "p_b"]
]
},
{
- "name": "godot_string_char_to_int",
- "return_type": "godot_int",
+ "name": "godot_vector2i_operator_multiply_scalar",
+ "return_type": "godot_vector2i",
"arguments": [
- ["const char *", "p_what"]
+ ["const godot_vector2i *", "p_self"],
+ ["const godot_int", "p_b"]
]
},
{
- "name": "godot_string_wchar_to_int",
- "return_type": "int64_t",
+ "name": "godot_vector2i_operator_divide_vector",
+ "return_type": "godot_vector2i",
"arguments": [
- ["const wchar_t *", "p_str"]
+ ["const godot_vector2i *", "p_self"],
+ ["const godot_vector2i *", "p_b"]
]
},
{
- "name": "godot_string_char_to_int_with_len",
- "return_type": "godot_int",
+ "name": "godot_vector2i_operator_divide_scalar",
+ "return_type": "godot_vector2i",
"arguments": [
- ["const char *", "p_what"],
- ["godot_int", "p_len"]
+ ["const godot_vector2i *", "p_self"],
+ ["const godot_int", "p_b"]
]
},
{
- "name": "godot_string_char_to_int64_with_len",
- "return_type": "int64_t",
+ "name": "godot_vector2i_operator_equal",
+ "return_type": "godot_bool",
"arguments": [
- ["const wchar_t *", "p_str"],
- ["int", "p_len"]
+ ["const godot_vector2i *", "p_self"],
+ ["const godot_vector2i *", "p_b"]
]
},
{
- "name": "godot_string_hex_to_int64",
- "return_type": "int64_t",
+ "name": "godot_vector2i_operator_less",
+ "return_type": "godot_bool",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2i *", "p_self"],
+ ["const godot_vector2i *", "p_b"]
]
},
{
- "name": "godot_string_hex_to_int64_with_prefix",
- "return_type": "int64_t",
+ "name": "godot_vector2i_operator_neg",
+ "return_type": "godot_vector2i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector2i *", "p_self"]
]
},
{
- "name": "godot_string_to_int64",
- "return_type": "int64_t",
+ "name": "godot_vector2i_set_x",
+ "return_type": "void",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["godot_vector2i *", "p_self"],
+ ["const godot_int", "p_x"]
]
},
{
- "name": "godot_string_unicode_char_to_double",
- "return_type": "double",
+ "name": "godot_vector2i_set_y",
+ "return_type": "void",
"arguments": [
- ["const wchar_t *", "p_str"],
- ["const wchar_t **", "r_end"]
+ ["godot_vector2i *", "p_self"],
+ ["const godot_int", "p_y"]
]
},
{
- "name": "godot_string_get_slice_count",
+ "name": "godot_vector2i_get_x",
"return_type": "godot_int",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_splitter"]
- ]
- },
- {
- "name": "godot_string_get_slice",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["godot_string", "p_splitter"],
- ["godot_int", "p_slice"]
+ ["const godot_vector2i *", "p_self"]
]
},
{
- "name": "godot_string_get_slicec",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["wchar_t", "p_splitter"],
- ["godot_int", "p_slice"]
- ]
- },
- {
- "name": "godot_string_split",
- "return_type": "godot_array",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_splitter"]
- ]
- },
- {
- "name": "godot_string_split_allow_empty",
- "return_type": "godot_array",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_splitter"]
- ]
- },
- {
- "name": "godot_string_split_floats",
- "return_type": "godot_array",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_splitter"]
- ]
- },
- {
- "name": "godot_string_split_floats_allows_empty",
- "return_type": "godot_array",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_splitter"]
- ]
- },
- {
- "name": "godot_string_split_floats_mk",
- "return_type": "godot_array",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_array *", "p_splitters"]
- ]
- },
- {
- "name": "godot_string_split_floats_mk_allows_empty",
- "return_type": "godot_array",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_array *", "p_splitters"]
- ]
- },
- {
- "name": "godot_string_split_ints",
- "return_type": "godot_array",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_splitter"]
- ]
- },
- {
- "name": "godot_string_split_ints_allows_empty",
- "return_type": "godot_array",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_splitter"]
- ]
- },
- {
- "name": "godot_string_split_ints_mk",
- "return_type": "godot_array",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_array *", "p_splitters"]
- ]
- },
- {
- "name": "godot_string_split_ints_mk_allows_empty",
- "return_type": "godot_array",
+ "name": "godot_vector2i_get_y",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_array *", "p_splitters"]
+ ["const godot_vector2i *", "p_self"]
]
},
{
- "name": "godot_string_split_spaces",
- "return_type": "godot_array",
+ "name": "godot_vector3_as_vector3i",
+ "return_type": "godot_vector3i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_char_lowercase",
- "return_type": "wchar_t",
+ "name": "godot_vector3_sign",
+ "return_type": "godot_vector3",
"arguments": [
- ["wchar_t", "p_char"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_char_uppercase",
- "return_type": "wchar_t",
+ "name": "godot_vector3_move_toward",
+ "return_type": "godot_vector3",
"arguments": [
- ["wchar_t", "p_char"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_to"],
+ ["const godot_real", "p_delta"]
]
},
{
- "name": "godot_string_to_lower",
- "return_type": "godot_string",
+ "name": "godot_vector3_direction_to",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_to"]
]
},
{
- "name": "godot_string_to_upper",
- "return_type": "godot_string",
+ "name": "godot_vector3_new",
+ "return_type": "void",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["godot_vector3 *", "r_dest"],
+ ["const godot_real", "p_x"],
+ ["const godot_real", "p_y"],
+ ["const godot_real", "p_z"]
]
},
{
- "name": "godot_string_get_basename",
+ "name": "godot_vector3_as_string",
"return_type": "godot_string",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_get_extension",
- "return_type": "godot_string",
+ "name": "godot_vector3_min_axis",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_left",
- "return_type": "godot_string",
+ "name": "godot_vector3_max_axis",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_int", "p_pos"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_ord_at",
- "return_type": "wchar_t",
+ "name": "godot_vector3_length",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_int", "p_idx"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_plus_file",
- "return_type": "godot_string",
+ "name": "godot_vector3_length_squared",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_file"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_right",
- "return_type": "godot_string",
+ "name": "godot_vector3_is_normalized",
+ "return_type": "godot_bool",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_int", "p_pos"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_strip_edges",
- "return_type": "godot_string",
+ "name": "godot_vector3_normalized",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_bool", "p_left"],
- ["godot_bool", "p_right"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_strip_escapes",
- "return_type": "godot_string",
+ "name": "godot_vector3_inverse",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_erase",
- "return_type": "void",
+ "name": "godot_vector3_snapped",
+ "return_type": "godot_vector3",
"arguments": [
- ["godot_string *", "p_self"],
- ["godot_int", "p_pos"],
- ["godot_int", "p_chars"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_by"]
]
},
{
- "name": "godot_string_ascii",
- "return_type": "godot_char_string",
+ "name": "godot_vector3_rotated",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_axis"],
+ ["const godot_real", "p_phi"]
]
},
{
- "name": "godot_string_ascii_extended",
- "return_type": "godot_char_string",
+ "name": "godot_vector3_lerp",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"],
+ ["const godot_real", "p_t"]
]
},
{
- "name": "godot_string_utf8",
- "return_type": "godot_char_string",
+ "name": "godot_vector3_cubic_interpolate",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"],
+ ["const godot_vector3 *", "p_pre_a"],
+ ["const godot_vector3 *", "p_post_b"],
+ ["const godot_real", "p_t"]
]
},
{
- "name": "godot_string_parse_utf8",
- "return_type": "godot_bool",
+ "name": "godot_vector3_dot",
+ "return_type": "godot_real",
"arguments": [
- ["godot_string *", "p_self"],
- ["const char *", "p_utf8"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"]
]
},
{
- "name": "godot_string_parse_utf8_with_len",
- "return_type": "godot_bool",
+ "name": "godot_vector3_cross",
+ "return_type": "godot_vector3",
"arguments": [
- ["godot_string *", "p_self"],
- ["const char *", "p_utf8"],
- ["godot_int", "p_len"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"]
]
},
{
- "name": "godot_string_chars_to_utf8",
- "return_type": "godot_string",
+ "name": "godot_vector3_outer",
+ "return_type": "godot_basis",
"arguments": [
- ["const char *", "p_utf8"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"]
]
},
{
- "name": "godot_string_chars_to_utf8_with_len",
- "return_type": "godot_string",
+ "name": "godot_vector3_to_diagonal_matrix",
+ "return_type": "godot_basis",
"arguments": [
- ["const char *", "p_utf8"],
- ["godot_int", "p_len"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_hash",
- "return_type": "uint32_t",
+ "name": "godot_vector3_abs",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_hash64",
- "return_type": "uint64_t",
+ "name": "godot_vector3_floor",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_hash_chars",
- "return_type": "uint32_t",
+ "name": "godot_vector3_ceil",
+ "return_type": "godot_vector3",
"arguments": [
- ["const char *", "p_cstr"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_hash_chars_with_len",
- "return_type": "uint32_t",
+ "name": "godot_vector3_distance_to",
+ "return_type": "godot_real",
"arguments": [
- ["const char *", "p_cstr"],
- ["godot_int", "p_len"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"]
]
},
{
- "name": "godot_string_hash_utf8_chars",
- "return_type": "uint32_t",
+ "name": "godot_vector3_distance_squared_to",
+ "return_type": "godot_real",
"arguments": [
- ["const wchar_t *", "p_str"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"]
]
},
{
- "name": "godot_string_hash_utf8_chars_with_len",
- "return_type": "uint32_t",
+ "name": "godot_vector3_angle_to",
+ "return_type": "godot_real",
"arguments": [
- ["const wchar_t *", "p_str"],
- ["godot_int", "p_len"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_to"]
]
},
{
- "name": "godot_string_md5_buffer",
- "return_type": "godot_packed_byte_array",
+ "name": "godot_vector3_slide",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_n"]
]
},
{
- "name": "godot_string_md5_text",
- "return_type": "godot_string",
+ "name": "godot_vector3_bounce",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_n"]
]
},
{
- "name": "godot_string_sha256_buffer",
- "return_type": "godot_packed_byte_array",
+ "name": "godot_vector3_reflect",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_n"]
]
},
{
- "name": "godot_string_sha256_text",
- "return_type": "godot_string",
+ "name": "godot_vector3_operator_add",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"]
]
},
{
- "name": "godot_string_empty",
- "return_type": "godot_bool",
+ "name": "godot_vector3_operator_subtract",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"]
]
},
{
- "name": "godot_string_get_base_dir",
- "return_type": "godot_string",
+ "name": "godot_vector3_operator_multiply_vector",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"]
]
},
{
- "name": "godot_string_get_file",
- "return_type": "godot_string",
+ "name": "godot_vector3_operator_multiply_scalar",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_real", "p_b"]
]
},
{
- "name": "godot_string_humanize_size",
- "return_type": "godot_string",
+ "name": "godot_vector3_operator_divide_vector",
+ "return_type": "godot_vector3",
"arguments": [
- ["size_t", "p_size"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"]
]
},
{
- "name": "godot_string_is_abs_path",
- "return_type": "godot_bool",
+ "name": "godot_vector3_operator_divide_scalar",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_real", "p_b"]
]
},
{
- "name": "godot_string_is_rel_path",
+ "name": "godot_vector3_operator_equal",
"return_type": "godot_bool",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"]
]
},
{
- "name": "godot_string_is_resource_file",
+ "name": "godot_vector3_operator_less",
"return_type": "godot_bool",
"arguments": [
- ["const godot_string *", "p_self"]
- ]
- },
- {
- "name": "godot_string_path_to",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_path"]
- ]
- },
- {
- "name": "godot_string_path_to_file",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"],
- ["const godot_string *", "p_path"]
- ]
- },
- {
- "name": "godot_string_simplify_path",
- "return_type": "godot_string",
- "arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3 *", "p_b"]
]
},
{
- "name": "godot_string_c_escape",
- "return_type": "godot_string",
+ "name": "godot_vector3_operator_neg",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"]
]
},
{
- "name": "godot_string_c_escape_multiline",
- "return_type": "godot_string",
+ "name": "godot_vector3_set_axis",
+ "return_type": "void",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["godot_vector3 *", "p_self"],
+ ["const godot_vector3_axis", "p_axis"],
+ ["const godot_real", "p_val"]
]
},
{
- "name": "godot_string_c_unescape",
- "return_type": "godot_string",
+ "name": "godot_vector3_get_axis",
+ "return_type": "godot_real",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3 *", "p_self"],
+ ["const godot_vector3_axis", "p_axis"]
]
},
{
- "name": "godot_string_http_escape",
- "return_type": "godot_string",
+ "name": "godot_vector3i_new",
+ "return_type": "void",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["godot_vector3i *", "r_dest"],
+ ["const godot_int", "p_x"],
+ ["const godot_int", "p_y"],
+ ["const godot_int", "p_z"]
]
},
{
- "name": "godot_string_http_unescape",
+ "name": "godot_vector3i_as_string",
"return_type": "godot_string",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3i *", "p_self"]
]
},
{
- "name": "godot_string_json_escape",
- "return_type": "godot_string",
+ "name": "godot_vector3i_as_vector3",
+ "return_type": "godot_vector3",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3i *", "p_self"]
]
},
{
- "name": "godot_string_word_wrap",
- "return_type": "godot_string",
+ "name": "godot_vector3i_min_axis",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_int", "p_chars_per_line"]
+ ["const godot_vector3i *", "p_self"]
]
},
{
- "name": "godot_string_xml_escape",
- "return_type": "godot_string",
+ "name": "godot_vector3i_max_axis",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3i *", "p_self"]
]
},
{
- "name": "godot_string_xml_escape_with_quotes",
- "return_type": "godot_string",
+ "name": "godot_vector3i_abs",
+ "return_type": "godot_vector3i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3i *", "p_self"]
]
},
{
- "name": "godot_string_xml_unescape",
- "return_type": "godot_string",
+ "name": "godot_vector3i_sign",
+ "return_type": "godot_vector3i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3i *", "p_self"]
]
},
{
- "name": "godot_string_percent_decode",
- "return_type": "godot_string",
+ "name": "godot_vector3i_operator_add",
+ "return_type": "godot_vector3i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3i *", "p_self"],
+ ["const godot_vector3i *", "p_b"]
]
},
{
- "name": "godot_string_percent_encode",
- "return_type": "godot_string",
+ "name": "godot_vector3i_operator_subtract",
+ "return_type": "godot_vector3i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3i *", "p_self"],
+ ["const godot_vector3i *", "p_b"]
]
},
{
- "name": "godot_string_is_valid_float",
- "return_type": "godot_bool",
+ "name": "godot_vector3i_operator_multiply_vector",
+ "return_type": "godot_vector3i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3i *", "p_self"],
+ ["const godot_vector3i *", "p_b"]
]
},
{
- "name": "godot_string_is_valid_hex_number",
- "return_type": "godot_bool",
+ "name": "godot_vector3i_operator_multiply_scalar",
+ "return_type": "godot_vector3i",
"arguments": [
- ["const godot_string *", "p_self"],
- ["godot_bool", "p_with_prefix"]
+ ["const godot_vector3i *", "p_self"],
+ ["const godot_int", "p_b"]
]
},
{
- "name": "godot_string_is_valid_html_color",
- "return_type": "godot_bool",
+ "name": "godot_vector3i_operator_divide_vector",
+ "return_type": "godot_vector3i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3i *", "p_self"],
+ ["const godot_vector3i *", "p_b"]
]
},
{
- "name": "godot_string_is_valid_identifier",
- "return_type": "godot_bool",
+ "name": "godot_vector3i_operator_divide_scalar",
+ "return_type": "godot_vector3i",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3i *", "p_self"],
+ ["const godot_int", "p_b"]
]
},
{
- "name": "godot_string_is_valid_integer",
+ "name": "godot_vector3i_operator_equal",
"return_type": "godot_bool",
"arguments": [
- ["const godot_string *", "p_self"]
+ ["const godot_vector3i *", "p_self"],
+ ["const godot_vector3i *", "p_b"]
]
},
{
- "name": "godot_string_is_valid_ip_address",
+ "name": "godot_vector3i_operator_less",
"return_type": "godot_bool",
"arguments": [
- ["const godot_string *", "p_self"]
- ]
- },
- {
- "name": "godot_string_destroy",
- "return_type": "void",
- "arguments": [
- ["godot_string *", "p_self"]
+ ["const godot_vector3i *", "p_self"],
+ ["const godot_vector3i *", "p_b"]
]
},
{
- "name": "godot_string_name_new",
- "return_type": "void",
+ "name": "godot_vector3i_operator_neg",
+ "return_type": "godot_vector3i",
"arguments": [
- ["godot_string_name *", "r_dest"],
- ["const godot_string *", "p_name"]
+ ["const godot_vector3i *", "p_self"]
]
},
{
- "name": "godot_string_name_new_data",
+ "name": "godot_vector3i_set_axis",
"return_type": "void",
"arguments": [
- ["godot_string_name *", "r_dest"],
- ["const char *", "p_name"]
+ ["godot_vector3i *", "p_self"],
+ ["const godot_vector3_axis", "p_axis"],
+ ["const godot_int", "p_val"]
]
},
{
- "name": "godot_string_name_get_name",
- "return_type": "godot_string",
+ "name": "godot_vector3i_get_axis",
+ "return_type": "godot_int",
"arguments": [
- ["const godot_string_name *", "p_self"]
+ ["const godot_vector3i *", "p_self"],
+ ["const godot_vector3_axis", "p_axis"]
]
},
{
- "name": "godot_string_name_get_hash",
- "return_type": "uint32_t",
+ "name": "godot_global_get_singleton",
+ "return_type": "godot_object *",
"arguments": [
- ["const godot_string_name *", "p_self"]
+ ["char *", "p_name"]
]
},
{
- "name": "godot_string_name_get_data_unique_pointer",
- "return_type": "const void *",
+ "name": "godot_get_class_tag",
+ "return_type": "void *",
"arguments": [
- ["const godot_string_name *", "p_self"]
+ ["const godot_string_name *", "p_class"]
]
},
{
- "name": "godot_string_name_operator_equal",
- "return_type": "godot_bool",
+ "name": "godot_object_cast_to",
+ "return_type": "godot_object *",
"arguments": [
- ["const godot_string_name *", "p_self"],
- ["const godot_string_name *", "p_other"]
+ ["const godot_object *", "p_object"],
+ ["void *", "p_class_tag"]
]
},
{
- "name": "godot_string_name_operator_less",
- "return_type": "godot_bool",
+ "name": "godot_object_get_instance_id",
+ "return_type": "uint64_t",
"arguments": [
- ["const godot_string_name *", "p_self"],
- ["const godot_string_name *", "p_other"]
+ ["const godot_object *", "p_object"]
]
},
{
- "name": "godot_string_name_destroy",
- "return_type": "void",
+ "name": "godot_instance_from_id",
+ "return_type": "godot_object *",
"arguments": [
- ["godot_string_name *", "p_self"]
+ ["uint64_t", "p_instance_id"]
]
},
{
@@ -6823,13 +6817,6 @@
]
},
{
- "name": "godot_global_get_singleton",
- "return_type": "godot_object *",
- "arguments": [
- ["char *", "p_name"]
- ]
- },
- {
"name": "godot_method_bind_get_method",
"return_type": "godot_method_bind *",
"arguments": [
@@ -6935,132 +6922,10 @@
"name": "nativescript",
"type": "NATIVESCRIPT",
"version": {
- "major": 1,
+ "major": 4,
"minor": 0
},
- "next": {
- "type": "NATIVESCRIPT",
- "version": {
- "major": 1,
- "minor": 1
- },
- "next": null,
- "api": [
- {
- "name": "godot_nativescript_set_method_argument_information",
- "return_type": "void",
- "arguments": [
- ["void *", "p_gdnative_handle"],
- ["const char *", "p_name"],
- ["const char *", "p_function_name"],
- ["int", "p_num_args"],
- ["const godot_method_arg *", "p_args"]
- ]
- },
- {
- "name": "godot_nativescript_set_class_documentation",
- "return_type": "void",
- "arguments": [
- ["void *", "p_gdnative_handle"],
- ["const char *", "p_name"],
- ["godot_string", "p_documentation"]
- ]
- },
- {
- "name": "godot_nativescript_set_method_documentation",
- "return_type": "void",
- "arguments": [
- ["void *", "p_gdnative_handle"],
- ["const char *", "p_name"],
- ["const char *", "p_function_name"],
- ["godot_string", "p_documentation"]
- ]
- },
- {
- "name": "godot_nativescript_set_property_documentation",
- "return_type": "void",
- "arguments": [
- ["void *", "p_gdnative_handle"],
- ["const char *", "p_name"],
- ["const char *", "p_path"],
- ["godot_string", "p_documentation"]
- ]
- },
- {
- "name": "godot_nativescript_set_signal_documentation",
- "return_type": "void",
- "arguments": [
- ["void *", "p_gdnative_handle"],
- ["const char *", "p_name"],
- ["const char *", "p_signal_name"],
- ["godot_string", "p_documentation"]
- ]
- },
- {
- "name": "godot_nativescript_set_global_type_tag",
- "return_type": "void",
- "arguments": [
- ["int", "p_idx"],
- ["const char *", "p_name"],
- ["const void *", "p_type_tag"]
- ]
- },
- {
- "name": "godot_nativescript_get_global_type_tag",
- "return_type": "const void *",
- "arguments": [
- ["int", "p_idx"],
- ["const char *", "p_name"]
- ]
- },
- {
- "name": "godot_nativescript_set_type_tag",
- "return_type": "void",
- "arguments": [
- ["void *", "p_gdnative_handle"],
- ["const char *", "p_name"],
- ["const void *", "p_type_tag"]
- ]
- },
- {
- "name": "godot_nativescript_get_type_tag",
- "return_type": "const void *",
- "arguments": [
- ["const godot_object *", "p_object"]
- ]
- },
- {
- "name": "godot_nativescript_register_instance_binding_data_functions",
- "return_type": "int",
- "arguments": [
- ["godot_instance_binding_functions", "p_binding_functions"]
- ]
- },
- {
- "name": "godot_nativescript_unregister_instance_binding_data_functions",
- "return_type": "void",
- "arguments": [
- ["int", "p_idx"]
- ]
- },
- {
- "name": "godot_nativescript_get_instance_binding_data",
- "return_type": "void *",
- "arguments": [
- ["int", "p_idx"],
- ["godot_object *", "p_object"]
- ]
- },
- {
- "name": "godot_nativescript_profiling_add_data",
- "return_type": "void",
- "arguments": [
- ["const char *", "p_signature"],
- ["uint64_t", "p_line"]
- ]
- }
- ]
- },
+ "next": null,
"api": [
{
"name": "godot_nativescript_register_class",
@@ -7069,8 +6934,8 @@
["void *", "p_gdnative_handle"],
["const char *", "p_name"],
["const char *", "p_base"],
- ["godot_instance_create_func", "p_create_func"],
- ["godot_instance_destroy_func", "p_destroy_func"]
+ ["godot_nativescript_instance_create_func", "p_create_func"],
+ ["godot_nativescript_instance_destroy_func", "p_destroy_func"]
]
},
{
@@ -7080,8 +6945,8 @@
["void *", "p_gdnative_handle"],
["const char *", "p_name"],
["const char *", "p_base"],
- ["godot_instance_create_func", "p_create_func"],
- ["godot_instance_destroy_func", "p_destroy_func"]
+ ["godot_nativescript_instance_create_func", "p_create_func"],
+ ["godot_nativescript_instance_destroy_func", "p_destroy_func"]
]
},
{
@@ -7091,8 +6956,19 @@
["void *", "p_gdnative_handle"],
["const char *", "p_name"],
["const char *", "p_function_name"],
- ["godot_method_attributes", "p_attr"],
- ["godot_instance_method", "p_method"]
+ ["godot_nativescript_method_attributes", "p_attr"],
+ ["godot_nativescript_instance_method", "p_method"]
+ ]
+ },
+ {
+ "name": "godot_nativescript_set_method_argument_information",
+ "return_type": "void",
+ "arguments": [
+ ["void *", "p_gdnative_handle"],
+ ["const char *", "p_name"],
+ ["const char *", "p_function_name"],
+ ["int", "p_num_args"],
+ ["const godot_nativescript_method_argument *", "p_args"]
]
},
{
@@ -7102,9 +6978,9 @@
["void *", "p_gdnative_handle"],
["const char *", "p_name"],
["const char *", "p_path"],
- ["godot_property_attributes *", "p_attr"],
- ["godot_property_set_func", "p_set_func"],
- ["godot_property_get_func", "p_get_func"]
+ ["godot_nativescript_property_attributes *", "p_attr"],
+ ["godot_nativescript_property_set_func", "p_set_func"],
+ ["godot_nativescript_property_get_func", "p_get_func"]
]
},
{
@@ -7122,6 +6998,108 @@
"arguments": [
["godot_object *", "p_instance"]
]
+ },
+ {
+ "name": "godot_nativescript_set_class_documentation",
+ "return_type": "void",
+ "arguments": [
+ ["void *", "p_gdnative_handle"],
+ ["const char *", "p_name"],
+ ["godot_string", "p_documentation"]
+ ]
+ },
+ {
+ "name": "godot_nativescript_set_method_documentation",
+ "return_type": "void",
+ "arguments": [
+ ["void *", "p_gdnative_handle"],
+ ["const char *", "p_name"],
+ ["const char *", "p_function_name"],
+ ["godot_string", "p_documentation"]
+ ]
+ },
+ {
+ "name": "godot_nativescript_set_property_documentation",
+ "return_type": "void",
+ "arguments": [
+ ["void *", "p_gdnative_handle"],
+ ["const char *", "p_name"],
+ ["const char *", "p_path"],
+ ["godot_string", "p_documentation"]
+ ]
+ },
+ {
+ "name": "godot_nativescript_set_signal_documentation",
+ "return_type": "void",
+ "arguments": [
+ ["void *", "p_gdnative_handle"],
+ ["const char *", "p_name"],
+ ["const char *", "p_signal_name"],
+ ["godot_string", "p_documentation"]
+ ]
+ },
+ {
+ "name": "godot_nativescript_set_global_type_tag",
+ "return_type": "void",
+ "arguments": [
+ ["int", "p_idx"],
+ ["const char *", "p_name"],
+ ["const void *", "p_type_tag"]
+ ]
+ },
+ {
+ "name": "godot_nativescript_get_global_type_tag",
+ "return_type": "const void *",
+ "arguments": [
+ ["int", "p_idx"],
+ ["const char *", "p_name"]
+ ]
+ },
+ {
+ "name": "godot_nativescript_set_type_tag",
+ "return_type": "void",
+ "arguments": [
+ ["void *", "p_gdnative_handle"],
+ ["const char *", "p_name"],
+ ["const void *", "p_type_tag"]
+ ]
+ },
+ {
+ "name": "godot_nativescript_get_type_tag",
+ "return_type": "const void *",
+ "arguments": [
+ ["const godot_object *", "p_object"]
+ ]
+ },
+ {
+ "name": "godot_nativescript_register_instance_binding_data_functions",
+ "return_type": "int",
+ "arguments": [
+ ["godot_nativescript_instance_binding_functions", "p_binding_functions"]
+ ]
+ },
+ {
+ "name": "godot_nativescript_unregister_instance_binding_data_functions",
+ "return_type": "void",
+ "arguments": [
+ ["int", "p_idx"]
+ ]
+ },
+ {
+ "name": "godot_nativescript_get_instance_binding_data",
+ "return_type": "void *",
+ "arguments": [
+ ["int", "p_idx"],
+ ["godot_object *", "p_object"]
+ ]
+ },
+ {
+ "name": "godot_nativescript_profiling_add_data",
+ "return_type": "void",
+ "arguments": [
+ ["const char *", "p_signature"],
+ ["uint64_t", "p_line"]
+ ]
}
]
},
@@ -7315,42 +7293,10 @@
"name": "net",
"type": "NET",
"version": {
- "major": 3,
- "minor": 1
- },
- "next": {
- "type": "NET",
- "version": {
- "major": 3,
- "minor": 2
- },
- "next": null,
- "api": [
- {
- "name": "godot_net_set_webrtc_library",
- "return_type": "godot_error",
- "arguments": [
- ["const godot_net_webrtc_library *", "p_library"]
- ]
- },
- {
- "name": "godot_net_bind_webrtc_peer_connection",
- "return_type": "void",
- "arguments": [
- ["godot_object *", "p_obj"],
- ["const godot_net_webrtc_peer_connection *", "p_interface"]
- ]
- },
- {
- "name": "godot_net_bind_webrtc_data_channel",
- "return_type": "void",
- "arguments": [
- ["godot_object *", "p_obj"],
- ["const godot_net_webrtc_data_channel *", "p_interface"]
- ]
- }
- ]
+ "major": 4,
+ "minor": 0
},
+ "next": null,
"api": [
{
"name": "godot_net_bind_stream_peer",
@@ -7375,6 +7321,29 @@
["godot_object *", "p_obj"],
["const godot_net_multiplayer_peer *", "p_interface"]
]
+ },
+ {
+ "name": "godot_net_set_webrtc_library",
+ "return_type": "godot_error",
+ "arguments": [
+ ["const godot_net_webrtc_library *", "p_library"]
+ ]
+ },
+ {
+ "name": "godot_net_bind_webrtc_peer_connection",
+ "return_type": "void",
+ "arguments": [
+ ["godot_object *", "p_obj"],
+ ["const godot_net_webrtc_peer_connection *", "p_interface"]
+ ]
+ },
+ {
+ "name": "godot_net_bind_webrtc_data_channel",
+ "return_type": "void",
+ "arguments": [
+ ["godot_object *", "p_obj"],
+ ["const godot_net_webrtc_data_channel *", "p_interface"]
+ ]
}
]
}
diff --git a/modules/gdnative/gdnative_builders.py b/modules/gdnative/gdnative_builders.py
index 620935795f..a6f8afb85b 100644
--- a/modules/gdnative/gdnative_builders.py
+++ b/modules/gdnative/gdnative_builders.py
@@ -228,7 +228,16 @@ def _build_gdnative_api_struct_source(api):
"extern const godot_gdnative_core_api_struct api_struct = {",
"\tGDNATIVE_" + api["core"]["type"] + ",",
"\t{" + str(api["core"]["version"]["major"]) + ", " + str(api["core"]["version"]["minor"]) + "},",
- "\t(const godot_gdnative_api_struct *)&api_1_1,",
+ "\t"
+ + (
+ "nullptr, "
+ if not api["core"]["next"]
+ else (
+ "(const godot_gdnative_api_struct *)& api_{0}_{1},".format(
+ api["core"]["next"]["version"]["major"], api["core"]["next"]["version"]["minor"]
+ )
+ )
+ ),
"\t" + str(len(api["extensions"])) + ",",
"\tgdnative_extensions_pointers,",
]
diff --git a/modules/gdnative/include/nativescript/godot_nativescript.h b/modules/gdnative/include/nativescript/godot_nativescript.h
index d65b3f91f4..825033c99c 100644
--- a/modules/gdnative/include/nativescript/godot_nativescript.h
+++ b/modules/gdnative/include/nativescript/godot_nativescript.h
@@ -45,7 +45,7 @@ typedef enum {
GODOT_METHOD_RPC_MODE_REMOTESYNC,
GODOT_METHOD_RPC_MODE_MASTERSYNC,
GODOT_METHOD_RPC_MODE_PUPPETSYNC,
-} godot_method_rpc_mode;
+} godot_nativescript_method_rpc_mode;
typedef enum {
GODOT_PROPERTY_HINT_NONE, ///< no hint provided.
@@ -82,7 +82,7 @@ typedef enum {
GODOT_PROPERTY_HINT_PROPERTY_OF_INSTANCE, ///< a property of an instance
GODOT_PROPERTY_HINT_PROPERTY_OF_SCRIPT, ///< a property of a script & base
GODOT_PROPERTY_HINT_MAX,
-} godot_property_hint;
+} godot_nativescript_property_hint;
typedef enum {
@@ -106,71 +106,80 @@ typedef enum {
GODOT_PROPERTY_USAGE_DEFAULT = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_EDITOR | GODOT_PROPERTY_USAGE_NETWORK,
GODOT_PROPERTY_USAGE_DEFAULT_INTL = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_EDITOR | GODOT_PROPERTY_USAGE_NETWORK | GODOT_PROPERTY_USAGE_INTERNATIONALIZED,
GODOT_PROPERTY_USAGE_NOEDITOR = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_NETWORK,
-} godot_property_usage_flags;
+} godot_nativescript_property_usage_flags;
typedef struct {
- godot_method_rpc_mode rset_type;
+ godot_nativescript_method_rpc_mode rset_type;
godot_int type;
- godot_property_hint hint;
+ godot_nativescript_property_hint hint;
godot_string hint_string;
- godot_property_usage_flags usage;
+ godot_nativescript_property_usage_flags usage;
godot_variant default_value;
-} godot_property_attributes;
+} godot_nativescript_property_attributes;
typedef struct {
// instance pointer, method_data - return user data
GDCALLINGCONV void *(*create_func)(godot_object *, void *);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);
-} godot_instance_create_func;
+} godot_nativescript_instance_create_func;
typedef struct {
// instance pointer, method data, user data
GDCALLINGCONV void (*destroy_func)(godot_object *, void *, void *);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);
-} godot_instance_destroy_func;
+} godot_nativescript_instance_destroy_func;
-void GDAPI godot_nativescript_register_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func);
+void GDAPI godot_nativescript_register_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_nativescript_instance_create_func p_create_func, godot_nativescript_instance_destroy_func p_destroy_func);
-void GDAPI godot_nativescript_register_tool_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func);
+void GDAPI godot_nativescript_register_tool_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_nativescript_instance_create_func p_create_func, godot_nativescript_instance_destroy_func p_destroy_func);
typedef struct {
- godot_method_rpc_mode rpc_type;
-} godot_method_attributes;
+ godot_nativescript_method_rpc_mode rpc_type;
+} godot_nativescript_method_attributes;
+
+typedef struct {
+ godot_string name;
+
+ godot_variant_type type;
+ godot_nativescript_property_hint hint;
+ godot_string hint_string;
+} godot_nativescript_method_argument;
typedef struct {
// instance pointer, method data, user data, num args, args - return result as varaint
GDCALLINGCONV godot_variant (*method)(godot_object *, void *, void *, int, godot_variant **);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);
-} godot_instance_method;
+} godot_nativescript_instance_method;
-void GDAPI godot_nativescript_register_method(void *p_gdnative_handle, const char *p_name, const char *p_function_name, godot_method_attributes p_attr, godot_instance_method p_method);
+void GDAPI godot_nativescript_register_method(void *p_gdnative_handle, const char *p_name, const char *p_function_name, godot_nativescript_method_attributes p_attr, godot_nativescript_instance_method p_method);
+void GDAPI godot_nativescript_set_method_argument_information(void *p_gdnative_handle, const char *p_name, const char *p_function_name, int p_num_args, const godot_nativescript_method_argument *p_args);
typedef struct {
// instance pointer, method data, user data, value
GDCALLINGCONV void (*set_func)(godot_object *, void *, void *, godot_variant *);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);
-} godot_property_set_func;
+} godot_nativescript_property_set_func;
typedef struct {
// instance pointer, method data, user data, value
GDCALLINGCONV godot_variant (*get_func)(godot_object *, void *, void *);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);
-} godot_property_get_func;
+} godot_nativescript_property_get_func;
-void GDAPI godot_nativescript_register_property(void *p_gdnative_handle, const char *p_name, const char *p_path, godot_property_attributes *p_attr, godot_property_set_func p_set_func, godot_property_get_func p_get_func);
+void GDAPI godot_nativescript_register_property(void *p_gdnative_handle, const char *p_name, const char *p_path, godot_nativescript_property_attributes *p_attr, godot_nativescript_property_set_func p_set_func, godot_nativescript_property_get_func p_get_func);
typedef struct {
godot_string name;
godot_int type;
- godot_property_hint hint;
+ godot_nativescript_property_hint hint;
godot_string hint_string;
- godot_property_usage_flags usage;
+ godot_nativescript_property_usage_flags usage;
godot_variant default_value;
} godot_nativescript_signal_argument;
@@ -186,26 +195,6 @@ void GDAPI godot_nativescript_register_signal(void *p_gdnative_handle, const cha
void GDAPI *godot_nativescript_get_userdata(godot_object *p_instance);
-/*
- *
- *
- * NativeScript 1.1
- *
- *
- */
-
-// method registering with argument names
-
-typedef struct {
- godot_string name;
-
- godot_variant_type type;
- godot_property_hint hint;
- godot_string hint_string;
-} godot_method_arg;
-
-void GDAPI godot_nativescript_set_method_argument_information(void *p_gdnative_handle, const char *p_name, const char *p_function_name, int p_num_args, const godot_method_arg *p_args);
-
// documentation
void GDAPI godot_nativescript_set_class_documentation(void *p_gdnative_handle, const char *p_name, godot_string p_documentation);
@@ -230,9 +219,9 @@ typedef struct {
GDCALLINGCONV bool (*refcount_decremented_instance_binding)(void *, godot_object *);
void *data;
GDCALLINGCONV void (*free_func)(void *);
-} godot_instance_binding_functions;
+} godot_nativescript_instance_binding_functions;
-int GDAPI godot_nativescript_register_instance_binding_data_functions(godot_instance_binding_functions p_binding_functions);
+int GDAPI godot_nativescript_register_instance_binding_data_functions(godot_nativescript_instance_binding_functions p_binding_functions);
void GDAPI godot_nativescript_unregister_instance_binding_data_functions(int p_idx);
void GDAPI *godot_nativescript_get_instance_binding_data(int p_idx, godot_object *p_object);
diff --git a/modules/gdnative/nativescript/godot_nativescript.cpp b/modules/gdnative/nativescript/godot_nativescript.cpp
index 1aea8ad160..e47548f3e9 100644
--- a/modules/gdnative/nativescript/godot_nativescript.cpp
+++ b/modules/gdnative/nativescript/godot_nativescript.cpp
@@ -51,7 +51,7 @@ extern "C" void _native_script_hook() {
// Script API
-void GDAPI godot_nativescript_register_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func) {
+void GDAPI godot_nativescript_register_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_nativescript_instance_create_func p_create_func, godot_nativescript_instance_destroy_func p_destroy_func) {
String *s = (String *)p_gdnative_handle;
Map<StringName, NativeScriptDesc> *classes = &NSL->library_classes[*s];
@@ -83,7 +83,7 @@ void GDAPI godot_nativescript_register_class(void *p_gdnative_handle, const char
classes->insert(p_name, desc);
}
-void GDAPI godot_nativescript_register_tool_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func) {
+void GDAPI godot_nativescript_register_tool_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_nativescript_instance_create_func p_create_func, godot_nativescript_instance_destroy_func p_destroy_func) {
String *s = (String *)p_gdnative_handle;
Map<StringName, NativeScriptDesc> *classes = &NSL->library_classes[*s];
@@ -116,7 +116,7 @@ void GDAPI godot_nativescript_register_tool_class(void *p_gdnative_handle, const
classes->insert(p_name, desc);
}
-void GDAPI godot_nativescript_register_method(void *p_gdnative_handle, const char *p_name, const char *p_function_name, godot_method_attributes p_attr, godot_instance_method p_method) {
+void GDAPI godot_nativescript_register_method(void *p_gdnative_handle, const char *p_name, const char *p_function_name, godot_nativescript_method_attributes p_attr, godot_nativescript_instance_method p_method) {
String *s = (String *)p_gdnative_handle;
Map<StringName, NativeScriptDesc>::Element *E = NSL->library_classes[*s].find(p_name);
@@ -135,7 +135,7 @@ void GDAPI godot_nativescript_register_method(void *p_gdnative_handle, const cha
E->get().methods.insert(p_function_name, method);
}
-void GDAPI godot_nativescript_register_property(void *p_gdnative_handle, const char *p_name, const char *p_path, godot_property_attributes *p_attr, godot_property_set_func p_set_func, godot_property_get_func p_get_func) {
+void GDAPI godot_nativescript_register_property(void *p_gdnative_handle, const char *p_name, const char *p_path, godot_nativescript_property_attributes *p_attr, godot_nativescript_property_set_func p_set_func, godot_nativescript_property_get_func p_get_func) {
String *s = (String *)p_gdnative_handle;
Map<StringName, NativeScriptDesc>::Element *E = NSL->library_classes[*s].find(p_name);
@@ -221,7 +221,7 @@ void GDAPI *godot_nativescript_get_userdata(godot_object *p_instance) {
*
*/
-void GDAPI godot_nativescript_set_method_argument_information(void *p_gdnative_handle, const char *p_name, const char *p_function_name, int p_num_args, const godot_method_arg *p_args) {
+void GDAPI godot_nativescript_set_method_argument_information(void *p_gdnative_handle, const char *p_name, const char *p_function_name, int p_num_args, const godot_nativescript_method_argument *p_args) {
String *s = (String *)p_gdnative_handle;
Map<StringName, NativeScriptDesc>::Element *E = NSL->library_classes[*s].find(p_name);
@@ -235,7 +235,7 @@ void GDAPI godot_nativescript_set_method_argument_information(void *p_gdnative_h
List<PropertyInfo> args;
for (int i = 0; i < p_num_args; i++) {
- godot_method_arg arg = p_args[i];
+ godot_nativescript_method_argument arg = p_args[i];
String name = *(String *)&arg.name;
String hint_string = *(String *)&arg.hint_string;
@@ -329,7 +329,7 @@ const void GDAPI *godot_nativescript_get_type_tag(const godot_object *p_object)
return nullptr;
}
-int GDAPI godot_nativescript_register_instance_binding_data_functions(godot_instance_binding_functions p_binding_functions) {
+int GDAPI godot_nativescript_register_instance_binding_data_functions(godot_nativescript_instance_binding_functions p_binding_functions) {
return NativeScriptLanguage::get_singleton()->register_binding_functions(p_binding_functions);
}
diff --git a/modules/gdnative/nativescript/nativescript.cpp b/modules/gdnative/nativescript/nativescript.cpp
index f3dfd0b68e..06b9534fce 100644
--- a/modules/gdnative/nativescript/nativescript.cpp
+++ b/modules/gdnative/nativescript/nativescript.cpp
@@ -1498,7 +1498,7 @@ void NativeScriptLanguage::profiling_add_data(StringName p_signature, uint64_t p
#endif
}
-int NativeScriptLanguage::register_binding_functions(godot_instance_binding_functions p_binding_functions) {
+int NativeScriptLanguage::register_binding_functions(godot_nativescript_instance_binding_functions p_binding_functions) {
// find index
int idx = -1;
diff --git a/modules/gdnative/nativescript/nativescript.h b/modules/gdnative/nativescript/nativescript.h
index 1aca142889..fabf4bb87e 100644
--- a/modules/gdnative/nativescript/nativescript.h
+++ b/modules/gdnative/nativescript/nativescript.h
@@ -48,7 +48,7 @@
struct NativeScriptDesc {
struct Method {
- godot_instance_method method;
+ godot_nativescript_instance_method method;
MethodInfo info;
int rpc_mode;
uint16_t rpc_method_id;
@@ -56,8 +56,8 @@ struct NativeScriptDesc {
};
struct Property {
- godot_property_set_func setter;
- godot_property_get_func getter;
+ godot_nativescript_property_set_func setter;
+ godot_nativescript_property_get_func getter;
PropertyInfo info;
Variant default_value;
int rset_mode;
@@ -78,8 +78,8 @@ struct NativeScriptDesc {
StringName base;
StringName base_native_type;
NativeScriptDesc *base_data;
- godot_instance_create_func create_func;
- godot_instance_destroy_func destroy_func;
+ godot_nativescript_instance_create_func create_func;
+ godot_nativescript_instance_destroy_func destroy_func;
String documentation;
@@ -88,8 +88,8 @@ struct NativeScriptDesc {
bool is_tool;
inline NativeScriptDesc() {
- zeromem(&create_func, sizeof(godot_instance_create_func));
- zeromem(&destroy_func, sizeof(godot_instance_destroy_func));
+ zeromem(&create_func, sizeof(godot_nativescript_instance_create_func));
+ zeromem(&destroy_func, sizeof(godot_nativescript_instance_destroy_func));
}
};
@@ -267,7 +267,7 @@ private:
void call_libraries_cb(const StringName &name);
- Vector<Pair<bool, godot_instance_binding_functions>> binding_functions;
+ Vector<Pair<bool, godot_nativescript_instance_binding_functions>> binding_functions;
Set<Vector<void *> *> binding_instances;
Map<int, HashMap<StringName, const void *>> global_type_tags;
@@ -360,7 +360,7 @@ public:
virtual int profiling_get_accumulated_data(ProfilingInfo *p_info_arr, int p_info_max);
virtual int profiling_get_frame_data(ProfilingInfo *p_info_arr, int p_info_max);
- int register_binding_functions(godot_instance_binding_functions p_binding_functions);
+ int register_binding_functions(godot_nativescript_instance_binding_functions p_binding_functions);
void unregister_binding_functions(int p_idx);
void *get_instance_binding_data(int p_idx, Object *p_object);
diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp
index 50d8289fd1..3a5db3687b 100644
--- a/modules/gdscript/gdscript_editor.cpp
+++ b/modules/gdscript/gdscript_editor.cpp
@@ -3093,6 +3093,14 @@ static Error _lookup_symbol_from_base(const GDScriptParser::DataType &p_base, co
return OK;
}
}
+
+ for (int i = 0; i < base_type.class_type->subclasses.size(); i++) {
+ if (base_type.class_type->subclasses[i]->name == p_symbol) {
+ r_result.type = ScriptLanguage::LookupResult::RESULT_SCRIPT_LOCATION;
+ r_result.location = base_type.class_type->subclasses[i]->line;
+ return OK;
+ }
+ }
}
base_type = base_type.class_type->base_type;
}
diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp
index 0e498f6895..d2867cb77a 100644
--- a/modules/gdscript/gdscript_parser.cpp
+++ b/modules/gdscript/gdscript_parser.cpp
@@ -2821,6 +2821,8 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) {
#ifdef DEBUG_ENABLED
+ pending_newline = -1; // reset for the new block
+
NewLineNode *nl = alloc_node<NewLineNode>();
nl->line = tokenizer->get_token_line();
@@ -3179,6 +3181,15 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) {
IdentifierNode *id = alloc_node<IdentifierNode>();
id->name = tokenizer->get_token_identifier();
+ BlockNode *check_block = p_block;
+ while (check_block) {
+ if (check_block->variables.has(id->name)) {
+ _set_error("Variable \"" + String(id->name) + "\" already defined in the scope (at line " + itos(check_block->variables[id->name]->line) + ").");
+ return;
+ }
+ check_block = check_block->parent_block;
+ }
+
tokenizer->advance();
if (tokenizer->get_token() != GDScriptTokenizer::TK_OP_IN) {
@@ -7336,8 +7347,8 @@ GDScriptParser::DataType GDScriptParser::_reduce_function_call_type(const Operat
} else if (!_is_type_compatible(arg_types[i - arg_diff], par_type, true)) {
// Supertypes are acceptable for dynamic compliance
if (!_is_type_compatible(par_type, arg_types[i - arg_diff])) {
- _set_error("At \"" + callee_name + "()\" call, argument " + itos(i - arg_diff + 1) + ". Assigned type (" +
- par_type.to_string() + ") doesn't match the function argument's type (" +
+ _set_error("At \"" + callee_name + "()\" call, argument " + itos(i - arg_diff + 1) + ". The passed argument's type (" +
+ par_type.to_string() + ") doesn't match the function's expected argument type (" +
arg_types[i - arg_diff].to_string() + ").",
p_call->line);
return DataType();
diff --git a/modules/gdscript/language_server/gdscript_extend_parser.cpp b/modules/gdscript/language_server/gdscript_extend_parser.cpp
index f87e8687e5..330530be80 100644
--- a/modules/gdscript/language_server/gdscript_extend_parser.cpp
+++ b/modules/gdscript/language_server/gdscript_extend_parser.cpp
@@ -29,6 +29,7 @@
/*************************************************************************/
#include "gdscript_extend_parser.h"
+
#include "../gdscript.h"
#include "core/io/json.h"
#include "gdscript_language_protocol.h"
diff --git a/modules/gdscript/language_server/gdscript_language_protocol.cpp b/modules/gdscript/language_server/gdscript_language_protocol.cpp
index 35bf4287b8..2a67d2ff4f 100644
--- a/modules/gdscript/language_server/gdscript_language_protocol.cpp
+++ b/modules/gdscript/language_server/gdscript_language_protocol.cpp
@@ -29,6 +29,7 @@
/*************************************************************************/
#include "gdscript_language_protocol.h"
+
#include "core/io/json.h"
#include "core/os/copymem.h"
#include "core/project_settings.h"
@@ -161,7 +162,7 @@ void GDScriptLanguageProtocol::_bind_methods() {
ClassDB::bind_method(D_METHOD("initialized", "params"), &GDScriptLanguageProtocol::initialized);
ClassDB::bind_method(D_METHOD("on_client_connected"), &GDScriptLanguageProtocol::on_client_connected);
ClassDB::bind_method(D_METHOD("on_client_disconnected"), &GDScriptLanguageProtocol::on_client_disconnected);
- ClassDB::bind_method(D_METHOD("notify_client", "p_method", "p_params"), &GDScriptLanguageProtocol::notify_client, DEFVAL(Variant()), DEFVAL(-1));
+ ClassDB::bind_method(D_METHOD("notify_client", "method", "params"), &GDScriptLanguageProtocol::notify_client, DEFVAL(Variant()), DEFVAL(-1));
ClassDB::bind_method(D_METHOD("is_smart_resolve_enabled"), &GDScriptLanguageProtocol::is_smart_resolve_enabled);
ClassDB::bind_method(D_METHOD("get_text_document"), &GDScriptLanguageProtocol::get_text_document);
ClassDB::bind_method(D_METHOD("get_workspace"), &GDScriptLanguageProtocol::get_workspace);
@@ -187,8 +188,10 @@ Dictionary GDScriptLanguageProtocol::initialize(const Dictionary &p_params) {
Dictionary params;
params["path"] = workspace->root;
- Dictionary request = make_notification("gdscrip_client/changeWorkspace", params);
+ Dictionary request = make_notification("gdscript_client/changeWorkspace", params);
+ ERR_FAIL_COND_V_MSG(!clients.has(latest_client_id), ret.to_json(),
+ vformat("GDScriptLanguageProtocol: Can't initialize invalid peer '%d'.", latest_client_id));
Ref<LSPeer> peer = clients.get(latest_client_id);
if (peer != nullptr) {
String msg = JSON::print(request);
@@ -268,8 +271,11 @@ void GDScriptLanguageProtocol::stop() {
void GDScriptLanguageProtocol::notify_client(const String &p_method, const Variant &p_params, int p_client_id) {
if (p_client_id == -1) {
+ ERR_FAIL_COND_MSG(latest_client_id == -1,
+ "GDScript LSP: Can't notify client as none was connected.");
p_client_id = latest_client_id;
}
+ ERR_FAIL_COND(!clients.has(p_client_id));
Ref<LSPeer> peer = clients.get(p_client_id);
ERR_FAIL_COND(peer == nullptr);
@@ -290,13 +296,10 @@ bool GDScriptLanguageProtocol::is_goto_native_symbols_enabled() const {
GDScriptLanguageProtocol::GDScriptLanguageProtocol() {
server.instance();
singleton = this;
- _initialized = false;
workspace.instance();
text_document.instance();
set_scope("textDocument", text_document.ptr());
set_scope("completionItem", text_document.ptr());
set_scope("workspace", workspace.ptr());
workspace->root = ProjectSettings::get_singleton()->get_resource_path();
- latest_client_id = 0;
- next_client_id = 0;
}
diff --git a/modules/gdscript/language_server/gdscript_language_protocol.h b/modules/gdscript/language_server/gdscript_language_protocol.h
index d929fd255d..cf5242e8c5 100644
--- a/modules/gdscript/language_server/gdscript_language_protocol.h
+++ b/modules/gdscript/language_server/gdscript_language_protocol.h
@@ -70,8 +70,8 @@ private:
HashMap<int, Ref<LSPeer>> clients;
Ref<TCP_Server> server;
- int latest_client_id;
- int next_client_id;
+ int latest_client_id = 0;
+ int next_client_id = 0;
Ref<GDScriptTextDocument> text_document;
Ref<GDScriptWorkspace> workspace;
@@ -82,7 +82,7 @@ private:
String process_message(const String &p_text);
String format_output(const String &p_text);
- bool _initialized;
+ bool _initialized = false;
protected:
static void _bind_methods();
diff --git a/modules/gdscript/language_server/gdscript_language_server.cpp b/modules/gdscript/language_server/gdscript_language_server.cpp
index d53914814f..3387d262f8 100644
--- a/modules/gdscript/language_server/gdscript_language_server.cpp
+++ b/modules/gdscript/language_server/gdscript_language_server.cpp
@@ -29,6 +29,7 @@
/*************************************************************************/
#include "gdscript_language_server.h"
+
#include "core/os/file_access.h"
#include "core/os/os.h"
#include "editor/editor_log.h"
diff --git a/modules/gdscript/language_server/gdscript_text_document.cpp b/modules/gdscript/language_server/gdscript_text_document.cpp
index 778cb4d254..c6fe3169dc 100644
--- a/modules/gdscript/language_server/gdscript_text_document.cpp
+++ b/modules/gdscript/language_server/gdscript_text_document.cpp
@@ -29,6 +29,7 @@
/*************************************************************************/
#include "gdscript_text_document.h"
+
#include "../gdscript.h"
#include "core/os/os.h"
#include "editor/editor_settings.h"
diff --git a/modules/gdscript/language_server/gdscript_workspace.cpp b/modules/gdscript/language_server/gdscript_workspace.cpp
index 9285d88157..a203b9bfdb 100644
--- a/modules/gdscript/language_server/gdscript_workspace.cpp
+++ b/modules/gdscript/language_server/gdscript_workspace.cpp
@@ -29,6 +29,7 @@
/*************************************************************************/
#include "gdscript_workspace.h"
+
#include "../gdscript.h"
#include "../gdscript_parser.h"
#include "core/project_settings.h"
@@ -41,12 +42,12 @@
void GDScriptWorkspace::_bind_methods() {
ClassDB::bind_method(D_METHOD("symbol"), &GDScriptWorkspace::symbol);
- ClassDB::bind_method(D_METHOD("parse_script", "p_path", "p_content"), &GDScriptWorkspace::parse_script);
- ClassDB::bind_method(D_METHOD("parse_local_script", "p_path"), &GDScriptWorkspace::parse_local_script);
- ClassDB::bind_method(D_METHOD("get_file_path", "p_uri"), &GDScriptWorkspace::get_file_path);
- ClassDB::bind_method(D_METHOD("get_file_uri", "p_path"), &GDScriptWorkspace::get_file_uri);
- ClassDB::bind_method(D_METHOD("publish_diagnostics", "p_path"), &GDScriptWorkspace::publish_diagnostics);
- ClassDB::bind_method(D_METHOD("generate_script_api", "p_path"), &GDScriptWorkspace::generate_script_api);
+ ClassDB::bind_method(D_METHOD("parse_script", "path", "content"), &GDScriptWorkspace::parse_script);
+ ClassDB::bind_method(D_METHOD("parse_local_script", "path"), &GDScriptWorkspace::parse_local_script);
+ ClassDB::bind_method(D_METHOD("get_file_path", "uri"), &GDScriptWorkspace::get_file_path);
+ ClassDB::bind_method(D_METHOD("get_file_uri", "path"), &GDScriptWorkspace::get_file_uri);
+ ClassDB::bind_method(D_METHOD("publish_diagnostics", "path"), &GDScriptWorkspace::publish_diagnostics);
+ ClassDB::bind_method(D_METHOD("generate_script_api", "path"), &GDScriptWorkspace::generate_script_api);
}
void GDScriptWorkspace::remove_cache_parser(const String &p_path) {
diff --git a/modules/mono/build_scripts/godot_tools_build.py b/modules/mono/build_scripts/godot_tools_build.py
index 7391e8790d..3bbbf29d3b 100644
--- a/modules/mono/build_scripts/godot_tools_build.py
+++ b/modules/mono/build_scripts/godot_tools_build.py
@@ -15,7 +15,9 @@ def build_godot_tools(source, target, env):
from .solution_builder import build_solution
- build_solution(env, solution_path, build_config)
+ extra_msbuild_args = ["/p:GodotPlatform=" + env["platform"]]
+
+ build_solution(env, solution_path, build_config, extra_msbuild_args)
# No need to copy targets. The GodotTools csproj takes care of copying them.
diff --git a/modules/mono/build_scripts/mono_configure.py b/modules/mono/build_scripts/mono_configure.py
index 23f01b3cca..80e3b59325 100644
--- a/modules/mono/build_scripts/mono_configure.py
+++ b/modules/mono/build_scripts/mono_configure.py
@@ -191,17 +191,16 @@ def configure(env, env_mono):
env.Append(LIBS=["psapi"])
env.Append(LIBS=["version"])
else:
- mono_lib_name = find_name_in_dir_files(
- mono_lib_path, mono_lib_names, prefixes=["", "lib"], extensions=lib_suffixes
- )
+ mono_lib_file = find_file_in_dir(mono_lib_path, mono_lib_names, extensions=lib_suffixes)
- if not mono_lib_name:
+ if not mono_lib_file:
raise RuntimeError("Could not find mono library in: " + mono_lib_path)
if env.msvc:
- env.Append(LINKFLAGS=mono_lib_name + ".lib")
+ env.Append(LINKFLAGS=mono_lib_file)
else:
- env.Append(LIBS=[mono_lib_name])
+ mono_lib_file_path = os.path.join(mono_lib_path, mono_lib_file)
+ env.Append(LINKFLAGS=mono_lib_file_path)
mono_bin_path = os.path.join(mono_root, "bin")
diff --git a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Client.cs b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Client.cs
index d069651dd3..572c541412 100644
--- a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Client.cs
+++ b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Client.cs
@@ -19,9 +19,12 @@ namespace GodotTools.IdeMessaging
private readonly string identity;
private string MetaFilePath { get; }
+ private DateTime? metaFileModifiedTime;
private GodotIdeMetadata godotIdeMetadata;
private readonly FileSystemWatcher fsWatcher;
+ public string GodotEditorExecutablePath => godotIdeMetadata.EditorExecutablePath;
+
private readonly IMessageHandler messageHandler;
private Peer peer;
@@ -123,7 +126,7 @@ namespace GodotTools.IdeMessaging
MetaFilePath = Path.Combine(projectMetadataDir, GodotIdeMetadata.DefaultFileName);
// FileSystemWatcher requires an existing directory
- if (!File.Exists(projectMetadataDir))
+ if (!Directory.Exists(projectMetadataDir))
Directory.CreateDirectory(projectMetadataDir);
fsWatcher = new FileSystemWatcher(projectMetadataDir, GodotIdeMetadata.DefaultFileName);
@@ -142,6 +145,13 @@ namespace GodotTools.IdeMessaging
if (!File.Exists(MetaFilePath))
return;
+ var lastWriteTime = File.GetLastWriteTime(MetaFilePath);
+
+ if (lastWriteTime == metaFileModifiedTime)
+ return;
+
+ metaFileModifiedTime = lastWriteTime;
+
var metadata = ReadMetadataFile();
if (metadata != null && metadata != godotIdeMetadata)
@@ -173,6 +183,13 @@ namespace GodotTools.IdeMessaging
if (IsConnected || !File.Exists(MetaFilePath))
return;
+ var lastWriteTime = File.GetLastWriteTime(MetaFilePath);
+
+ if (lastWriteTime == metaFileModifiedTime)
+ return;
+
+ metaFileModifiedTime = lastWriteTime;
+
var metadata = ReadMetadataFile();
if (metadata != null)
@@ -185,7 +202,8 @@ namespace GodotTools.IdeMessaging
private GodotIdeMetadata? ReadMetadataFile()
{
- using (var reader = File.OpenText(MetaFilePath))
+ using (var fileStream = new FileStream(MetaFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
+ using (var reader = new StreamReader(fileStream))
{
string portStr = reader.ReadLine();
@@ -272,6 +290,7 @@ namespace GodotTools.IdeMessaging
// ReSharper disable once UnusedMember.Global
public async void Start()
{
+ fsWatcher.Created += OnMetaFileChanged;
fsWatcher.Changed += OnMetaFileChanged;
fsWatcher.Deleted += OnMetaFileDeleted;
fsWatcher.EnableRaisingEvents = true;
diff --git a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/GodotTools.IdeMessaging.csproj b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/GodotTools.IdeMessaging.csproj
index 67815959a6..dad6b9ae7a 100644
--- a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/GodotTools.IdeMessaging.csproj
+++ b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/GodotTools.IdeMessaging.csproj
@@ -4,7 +4,7 @@
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.2</LangVersion>
<PackageId>GodotTools.IdeMessaging</PackageId>
- <Version>1.1.0</Version>
+ <Version>1.1.1</Version>
<AssemblyVersion>$(Version)</AssemblyVersion>
<Authors>Godot Engine contributors</Authors>
<Company />
diff --git a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Peer.cs b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Peer.cs
index a4e86d6177..10d7e1898e 100644
--- a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Peer.cs
+++ b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Peer.cs
@@ -105,49 +105,45 @@ namespace GodotTools.IdeMessaging
try
{
- try
+ if (msg.Kind == MessageKind.Request)
{
- if (msg.Kind == MessageKind.Request)
- {
- var responseContent = await messageHandler.HandleRequest(this, msg.Id, msg.Content, Logger);
- await WriteMessage(new Message(MessageKind.Response, msg.Id, responseContent));
- }
- else if (msg.Kind == MessageKind.Response)
- {
- ResponseAwaiter responseAwaiter;
+ var responseContent = await messageHandler.HandleRequest(this, msg.Id, msg.Content, Logger);
+ await WriteMessage(new Message(MessageKind.Response, msg.Id, responseContent));
+ }
+ else if (msg.Kind == MessageKind.Response)
+ {
+ ResponseAwaiter responseAwaiter;
- using (await requestsSem.UseAsync())
+ using (await requestsSem.UseAsync())
+ {
+ if (!requestAwaiterQueues.TryGetValue(msg.Id, out var queue) || queue.Count <= 0)
{
- if (!requestAwaiterQueues.TryGetValue(msg.Id, out var queue) || queue.Count <= 0)
- {
- Logger.LogError($"Received unexpected response: {msg.Id}");
- return;
- }
-
- responseAwaiter = queue.Dequeue();
+ Logger.LogError($"Received unexpected response: {msg.Id}");
+ return;
}
- responseAwaiter.SetResult(msg.Content);
- }
- else
- {
- throw new IndexOutOfRangeException($"Invalid message kind {msg.Kind}");
+ responseAwaiter = queue.Dequeue();
}
+
+ responseAwaiter.SetResult(msg.Content);
}
- catch (Exception e)
+ else
{
- Logger.LogError($"Message handler for '{msg}' failed with exception", e);
+ throw new IndexOutOfRangeException($"Invalid message kind {msg.Kind}");
}
}
catch (Exception e)
{
- Logger.LogError($"Exception thrown from message handler. Message: {msg}", e);
+ Logger.LogError($"Message handler for '{msg}' failed with exception", e);
}
}
}
catch (Exception e)
{
- Logger.LogError("Unhandled exception in the peer loop", e);
+ if (!IsDisposed || !(e is SocketException || e.InnerException is SocketException))
+ {
+ Logger.LogError("Unhandled exception in the peer loop", e);
+ }
}
}
diff --git a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Requests/Requests.cs b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Requests/Requests.cs
index 1dd4f852e5..e93db9377b 100644
--- a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Requests/Requests.cs
+++ b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Requests/Requests.cs
@@ -67,6 +67,19 @@ namespace GodotTools.IdeMessaging.Requests
{
}
+ public sealed class StopPlayRequest : Request
+ {
+ public new const string Id = "StopPlay";
+
+ public StopPlayRequest() : base(Id)
+ {
+ }
+ }
+
+ public sealed class StopPlayResponse : Response
+ {
+ }
+
public sealed class DebugPlayRequest : Request
{
public string DebuggerHost { get; set; }
diff --git a/modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/GodotTools.OpenVisualStudio.csproj b/modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/GodotTools.OpenVisualStudio.csproj
new file mode 100644
index 0000000000..5b3ed0b1b7
--- /dev/null
+++ b/modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/GodotTools.OpenVisualStudio.csproj
@@ -0,0 +1,12 @@
+<Project Sdk="Microsoft.NET.Sdk">
+ <PropertyGroup>
+ <ProjectGuid>{EAFFF236-FA96-4A4D-BD23-0E51EF988277}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <TargetFramework>net472</TargetFramework>
+ <LangVersion>7.2</LangVersion>
+ </PropertyGroup>
+ <ItemGroup>
+ <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All" />
+ <PackageReference Include="EnvDTE" Version="8.0.2" />
+ </ItemGroup>
+</Project>
diff --git a/modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/Program.cs b/modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/Program.cs
new file mode 100644
index 0000000000..affb2a47e7
--- /dev/null
+++ b/modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/Program.cs
@@ -0,0 +1,270 @@
+using System;
+using System.IO;
+using System.Runtime.InteropServices;
+using System.Runtime.InteropServices.ComTypes;
+using System.Text.RegularExpressions;
+using EnvDTE;
+
+namespace GodotTools.OpenVisualStudio
+{
+ internal static class Program
+ {
+ [DllImport("ole32.dll")]
+ private static extern int GetRunningObjectTable(int reserved, out IRunningObjectTable pprot);
+
+ [DllImport("ole32.dll")]
+ private static extern void CreateBindCtx(int reserved, out IBindCtx ppbc);
+
+ [DllImport("user32.dll")]
+ private static extern bool SetForegroundWindow(IntPtr hWnd);
+
+ private static void ShowHelp()
+ {
+ Console.WriteLine("Opens the file(s) in a Visual Studio instance that is editing the specified solution.");
+ Console.WriteLine("If an existing instance for the solution is not found, a new one is created.");
+ Console.WriteLine();
+ Console.WriteLine("Usage:");
+ Console.WriteLine(@" GodotTools.OpenVisualStudio.exe solution [file[;line[;col]]...]");
+ Console.WriteLine();
+ Console.WriteLine("Lines and columns begin at one. Zero or lower will result in an error.");
+ Console.WriteLine("If a line is specified but a column is not, the line is selected in the text editor.");
+ }
+
+ // STAThread needed, otherwise CoRegisterMessageFilter may return CO_E_NOT_SUPPORTED.
+ [STAThread]
+ private static int Main(string[] args)
+ {
+ if (args.Length == 0 || args[0] == "--help" || args[0] == "-h")
+ {
+ ShowHelp();
+ return 0;
+ }
+
+ string solutionFile = NormalizePath(args[0]);
+
+ var dte = FindInstanceEditingSolution(solutionFile);
+
+ if (dte == null)
+ {
+ // Open a new instance
+
+ var visualStudioDteType = Type.GetTypeFromProgID("VisualStudio.DTE.16.0", throwOnError: true);
+ dte = (DTE)Activator.CreateInstance(visualStudioDteType);
+
+ dte.UserControl = true;
+
+ try
+ {
+ dte.Solution.Open(solutionFile);
+ }
+ catch (ArgumentException)
+ {
+ Console.Error.WriteLine("Solution.Open: Invalid path or file not found");
+ return 1;
+ }
+
+ dte.MainWindow.Visible = true;
+ }
+
+ MessageFilter.Register();
+
+ try
+ {
+ // Open files
+
+ for (int i = 1; i < args.Length; i++)
+ {
+ // Both the line number and the column begin at one
+
+ string[] fileArgumentParts = args[i].Split(';');
+
+ string filePath = NormalizePath(fileArgumentParts[0]);
+
+ try
+ {
+ dte.ItemOperations.OpenFile(filePath);
+ }
+ catch (ArgumentException)
+ {
+ Console.Error.WriteLine("ItemOperations.OpenFile: Invalid path or file not found");
+ return 1;
+ }
+
+ if (fileArgumentParts.Length > 1)
+ {
+ if (int.TryParse(fileArgumentParts[1], out int line))
+ {
+ var textSelection = (TextSelection)dte.ActiveDocument.Selection;
+
+ if (fileArgumentParts.Length > 2)
+ {
+ if (int.TryParse(fileArgumentParts[2], out int column))
+ {
+ textSelection.MoveToLineAndOffset(line, column);
+ }
+ else
+ {
+ Console.Error.WriteLine("The column part of the argument must be a valid integer");
+ return 1;
+ }
+ }
+ else
+ {
+ textSelection.GotoLine(line, Select: true);
+ }
+ }
+ else
+ {
+ Console.Error.WriteLine("The line part of the argument must be a valid integer");
+ return 1;
+ }
+ }
+ }
+ }
+ finally
+ {
+ var mainWindow = dte.MainWindow;
+ mainWindow.Activate();
+ SetForegroundWindow(new IntPtr(mainWindow.HWnd));
+
+ MessageFilter.Revoke();
+ }
+
+ return 0;
+ }
+
+ private static DTE FindInstanceEditingSolution(string solutionPath)
+ {
+ if (GetRunningObjectTable(0, out IRunningObjectTable pprot) != 0)
+ return null;
+
+ try
+ {
+ pprot.EnumRunning(out IEnumMoniker ppenumMoniker);
+ ppenumMoniker.Reset();
+
+ var moniker = new IMoniker[1];
+
+ while (ppenumMoniker.Next(1, moniker, IntPtr.Zero) == 0)
+ {
+ string ppszDisplayName;
+
+ CreateBindCtx(0, out IBindCtx ppbc);
+
+ try
+ {
+ moniker[0].GetDisplayName(ppbc, null, out ppszDisplayName);
+ }
+ finally
+ {
+ Marshal.ReleaseComObject(ppbc);
+ }
+
+ if (ppszDisplayName == null)
+ continue;
+
+ // The digits after the colon are the process ID
+ if (!Regex.IsMatch(ppszDisplayName, "!VisualStudio.DTE.16.0:[0-9]"))
+ continue;
+
+ if (pprot.GetObject(moniker[0], out object ppunkObject) == 0)
+ {
+ if (ppunkObject is DTE dte && dte.Solution.FullName.Length > 0)
+ {
+ if (NormalizePath(dte.Solution.FullName) == solutionPath)
+ return dte;
+ }
+ }
+ }
+ }
+ finally
+ {
+ Marshal.ReleaseComObject(pprot);
+ }
+
+ return null;
+ }
+
+ static string NormalizePath(string path)
+ {
+ return new Uri(Path.GetFullPath(path)).LocalPath
+ .TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar)
+ .ToUpperInvariant();
+ }
+
+ #region MessageFilter. See: http: //msdn.microsoft.com/en-us/library/ms228772.aspx
+
+ private class MessageFilter : IOleMessageFilter
+ {
+ // Class containing the IOleMessageFilter
+ // thread error-handling functions
+
+ private static IOleMessageFilter _oldFilter;
+
+ // Start the filter
+ public static void Register()
+ {
+ IOleMessageFilter newFilter = new MessageFilter();
+ int ret = CoRegisterMessageFilter(newFilter, out _oldFilter);
+ if (ret != 0)
+ Console.Error.WriteLine($"CoRegisterMessageFilter failed with error code: {ret}");
+ }
+
+ // Done with the filter, close it
+ public static void Revoke()
+ {
+ int ret = CoRegisterMessageFilter(_oldFilter, out _);
+ if (ret != 0)
+ Console.Error.WriteLine($"CoRegisterMessageFilter failed with error code: {ret}");
+ }
+
+ //
+ // IOleMessageFilter functions
+ // Handle incoming thread requests
+ int IOleMessageFilter.HandleInComingCall(int dwCallType, IntPtr hTaskCaller, int dwTickCount, IntPtr lpInterfaceInfo)
+ {
+ // Return the flag SERVERCALL_ISHANDLED
+ return 0;
+ }
+
+ // Thread call was rejected, so try again.
+ int IOleMessageFilter.RetryRejectedCall(IntPtr hTaskCallee, int dwTickCount, int dwRejectType)
+ {
+ if (dwRejectType == 2)
+ // flag = SERVERCALL_RETRYLATER
+ {
+ // Retry the thread call immediately if return >= 0 & < 100
+ return 99;
+ }
+
+ // Too busy; cancel call
+ return -1;
+ }
+
+ int IOleMessageFilter.MessagePending(IntPtr hTaskCallee, int dwTickCount, int dwPendingType)
+ {
+ // Return the flag PENDINGMSG_WAITDEFPROCESS
+ return 2;
+ }
+
+ // Implement the IOleMessageFilter interface
+ [DllImport("ole32.dll")]
+ private static extern int CoRegisterMessageFilter(IOleMessageFilter newFilter, out IOleMessageFilter oldFilter);
+ }
+
+ [ComImport(), Guid("00000016-0000-0000-C000-000000000046"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ private interface IOleMessageFilter
+ {
+ [PreserveSig]
+ int HandleInComingCall(int dwCallType, IntPtr hTaskCaller, int dwTickCount, IntPtr lpInterfaceInfo);
+
+ [PreserveSig]
+ int RetryRejectedCall(IntPtr hTaskCallee, int dwTickCount, int dwRejectType);
+
+ [PreserveSig]
+ int MessagePending(IntPtr hTaskCallee, int dwTickCount, int dwPendingType);
+ }
+
+ #endregion
+ }
+}
diff --git a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs
index fb2beb6995..679d5bb444 100644
--- a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs
+++ b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs
@@ -12,6 +12,11 @@ namespace GodotTools.ProjectEditor
private const string CoreApiProjectName = "GodotSharp";
private const string EditorApiProjectName = "GodotSharpEditor";
+ public const string CSharpProjectTypeGuid = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}";
+ public const string GodotProjectTypeGuid = "{8F3E2DF0-C35C-4265-82FC-BEA011F4A7ED}";
+
+ public static readonly string GodotDefaultProjectTypeGuids = $"{GodotProjectTypeGuid};{CSharpProjectTypeGuid}";
+
public static string GenGameProject(string dir, string name, IEnumerable<string> compileItems)
{
string path = Path.Combine(dir, name + ".csproj");
@@ -19,6 +24,7 @@ namespace GodotTools.ProjectEditor
ProjectPropertyGroupElement mainGroup;
var root = CreateLibraryProject(name, "Debug", out mainGroup);
+ mainGroup.SetProperty("ProjectTypeGuids", GodotDefaultProjectTypeGuids);
mainGroup.SetProperty("OutputPath", Path.Combine(".mono", "temp", "bin", "$(Configuration)"));
mainGroup.SetProperty("BaseIntermediateOutputPath", Path.Combine(".mono", "temp", "obj"));
mainGroup.SetProperty("IntermediateOutputPath", Path.Combine("$(BaseIntermediateOutputPath)", "$(Configuration)"));
diff --git a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectUtils.cs b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectUtils.cs
index 069a1edaa3..8774b4ee31 100644
--- a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectUtils.cs
+++ b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectUtils.cs
@@ -165,6 +165,21 @@ namespace GodotTools.ProjectEditor
return result.ToArray();
}
+ public static void EnsureHasProjectTypeGuids(MSBuildProject project)
+ {
+ var root = project.Root;
+
+ bool found = root.PropertyGroups.Any(pg =>
+ string.IsNullOrEmpty(pg.Condition) && pg.Properties.Any(p => p.Name == "ProjectTypeGuids"));
+
+ if (found)
+ return;
+
+ root.AddProperty("ProjectTypeGuids", ProjectGenerator.GodotDefaultProjectTypeGuids);
+
+ project.HasUnsavedChanges = true;
+ }
+
/// Simple function to make sure the Api assembly references are configured correctly
public static void FixApiHintPath(MSBuildProject project)
{
diff --git a/modules/mono/editor/GodotTools/GodotTools.sln b/modules/mono/editor/GodotTools/GodotTools.sln
index f6147eb5bb..ba5379e562 100644
--- a/modules/mono/editor/GodotTools/GodotTools.sln
+++ b/modules/mono/editor/GodotTools/GodotTools.sln
@@ -11,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GodotTools.BuildLogger", "G
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GodotTools.IdeMessaging", "GodotTools.IdeMessaging\GodotTools.IdeMessaging.csproj", "{92600954-25F0-4291-8E11-1FEE9FC4BE20}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GodotTools.OpenVisualStudio", "GodotTools.OpenVisualStudio\GodotTools.OpenVisualStudio.csproj", "{EAFFF236-FA96-4A4D-BD23-0E51EF988277}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -37,5 +39,9 @@ Global
{92600954-25F0-4291-8E11-1FEE9FC4BE20}.Debug|Any CPU.Build.0 = Debug|Any CPU
{92600954-25F0-4291-8E11-1FEE9FC4BE20}.Release|Any CPU.ActiveCfg = Release|Any CPU
{92600954-25F0-4291-8E11-1FEE9FC4BE20}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EAFFF236-FA96-4A4D-BD23-0E51EF988277}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EAFFF236-FA96-4A4D-BD23-0E51EF988277}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EAFFF236-FA96-4A4D-BD23-0E51EF988277}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EAFFF236-FA96-4A4D-BD23-0E51EF988277}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
diff --git a/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs b/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs
index c874025be0..403e25781d 100644
--- a/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs
+++ b/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs
@@ -6,6 +6,7 @@ using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
+using System.Linq;
using GodotTools.Ides;
using GodotTools.Ides.Rider;
using GodotTools.Internals;
@@ -238,7 +239,31 @@ namespace GodotTools
// Not an error. Tells the caller to fallback to the global external editor settings or the built-in editor.
return Error.Unavailable;
case ExternalEditorId.VisualStudio:
- throw new NotSupportedException();
+ {
+ string scriptPath = ProjectSettings.GlobalizePath(script.ResourcePath);
+
+ var args = new List<string>
+ {
+ GodotSharpDirs.ProjectSlnPath,
+ line >= 0 ? $"{scriptPath};{line + 1};{col + 1}" : scriptPath
+ };
+
+ string command = Path.Combine(GodotSharpDirs.DataEditorToolsDir, "GodotTools.OpenVisualStudio.exe");
+
+ try
+ {
+ if (Godot.OS.IsStdoutVerbose())
+ Console.WriteLine($"Running: \"{command}\" {string.Join(" ", args.Select(a => $"\"{a}\""))}");
+
+ OS.RunProcess(command, args);
+ }
+ catch (Exception e)
+ {
+ GD.PushError($"Error when trying to run code editor: VisualStudio. Exception message: '{e.Message}'");
+ }
+
+ break;
+ }
case ExternalEditorId.VisualStudioForMac:
goto case ExternalEditorId.MonoDevelop;
case ExternalEditorId.Rider:
@@ -458,6 +483,9 @@ namespace GodotTools
// Apply the other fixes only after configurations have been migrated
+ // Make sure the existing project has the ProjectTypeGuids property (for VisualStudio)
+ ProjectUtils.EnsureHasProjectTypeGuids(msbuildProject);
+
// Make sure the existing project has Api assembly references configured correctly
ProjectUtils.FixApiHintPath(msbuildProject);
@@ -501,7 +529,8 @@ namespace GodotTools
if (OS.IsWindows)
{
- settingsHintStr += $",MonoDevelop:{(int)ExternalEditorId.MonoDevelop}" +
+ settingsHintStr += $",Visual Studio:{(int)ExternalEditorId.VisualStudio}" +
+ $",MonoDevelop:{(int)ExternalEditorId.MonoDevelop}" +
$",Visual Studio Code:{(int)ExternalEditorId.VsCode}" +
$",JetBrains Rider:{(int)ExternalEditorId.Rider}";
}
diff --git a/modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj b/modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj
index ba527ca3b5..3f14629b11 100644
--- a/modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj
+++ b/modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj
@@ -33,5 +33,7 @@
<ProjectReference Include="..\GodotTools.IdeMessaging\GodotTools.IdeMessaging.csproj" />
<ProjectReference Include="..\GodotTools.ProjectEditor\GodotTools.ProjectEditor.csproj" />
<ProjectReference Include="..\GodotTools.Core\GodotTools.Core.csproj" />
+ <!-- Include it if this is an SCons build targeting Windows, or if it's not an SCons build but we're on Windows -->
+ <ProjectReference Include="..\GodotTools.OpenVisualStudio\GodotTools.OpenVisualStudio.csproj" Condition=" '$(GodotPlatform)' == 'windows' Or ( '$(GodotPlatform)' == '' And '$(OS)' == 'Windows_NT' ) " />
</ItemGroup>
</Project>
diff --git a/modules/mono/editor/GodotTools/GodotTools/Ides/MessagingServer.cs b/modules/mono/editor/GodotTools/GodotTools/Ides/MessagingServer.cs
index 32f264d100..98e8d13be0 100644
--- a/modules/mono/editor/GodotTools/GodotTools/Ides/MessagingServer.cs
+++ b/modules/mono/editor/GodotTools/GodotTools/Ides/MessagingServer.cs
@@ -307,6 +307,11 @@ namespace GodotTools.Ides
var request = JsonConvert.DeserializeObject<DebugPlayRequest>(content.Body);
return await HandleDebugPlay(request);
},
+ [StopPlayRequest.Id] = async (peer, content) =>
+ {
+ var request = JsonConvert.DeserializeObject<StopPlayRequest>(content.Body);
+ return await HandleStopPlay(request);
+ },
[ReloadScriptsRequest.Id] = async (peer, content) =>
{
_ = JsonConvert.DeserializeObject<ReloadScriptsRequest>(content.Body);
@@ -343,6 +348,12 @@ namespace GodotTools.Ides
return Task.FromResult<Response>(new DebugPlayResponse());
}
+ private static Task<Response> HandleStopPlay(StopPlayRequest request)
+ {
+ DispatchToMainThread(Internal.EditorRunStop);
+ return Task.FromResult<Response>(new StopPlayResponse());
+ }
+
private static Task<Response> HandleReloadScripts()
{
DispatchToMainThread(Internal.ScriptEditorDebugger_ReloadScripts);
diff --git a/modules/mono/utils/mono_reg_utils.cpp b/modules/mono/utils/mono_reg_utils.cpp
index 1b4fe68582..e0cf916a01 100644
--- a/modules/mono/utils/mono_reg_utils.cpp
+++ b/modules/mono/utils/mono_reg_utils.cpp
@@ -75,7 +75,6 @@ LONG _RegKeyQueryString(HKEY hKey, const String &p_value_name, String &r_value)
if (res == ERROR_MORE_DATA) {
// dwBufferSize now contains the actual size
- Vector<WCHAR> buffer;
buffer.resize(dwBufferSize);
res = RegQueryValueExW(hKey, p_value_name.c_str(), 0, nullptr, (LPBYTE)buffer.ptr(), &dwBufferSize);
}
diff --git a/modules/regex/SCsub b/modules/regex/SCsub
index 753650adcb..2afacc1d9c 100644
--- a/modules/regex/SCsub
+++ b/modules/regex/SCsub
@@ -7,7 +7,7 @@ env_regex = env_modules.Clone()
if env["builtin_pcre2"]:
thirdparty_dir = "#thirdparty/pcre2/src/"
- thirdparty_flags = ["PCRE2_STATIC", "HAVE_CONFIG_H"]
+ thirdparty_flags = ["PCRE2_STATIC", "HAVE_CONFIG_H", "SUPPORT_UNICODE"]
if env["builtin_pcre2_with_jit"]:
thirdparty_flags.append("SUPPORT_JIT")
diff --git a/modules/regex/doc_classes/RegEx.xml b/modules/regex/doc_classes/RegEx.xml
index 3130c53331..c00fa96b2e 100644
--- a/modules/regex/doc_classes/RegEx.xml
+++ b/modules/regex/doc_classes/RegEx.xml
@@ -32,8 +32,7 @@
[codeblock]
for result in regex.search_all("d01, d03, d0c, x3f and x42"):
print(result.get_string("digit"))
- # Would print 01 03 3f 42
- # Note that d0c would not match
+ # Would print 01 03 0 3f 42
[/codeblock]
[b]Note:[/b] Godot's regex implementation is based on the [url=https://www.pcre.org/]PCRE2[/url] library. You can view the full pattern reference [url=https://www.pcre.org/current/doc/html/pcre2pattern.html]here[/url].
[b]Tip:[/b] You can use [url=https://regexr.com/]Regexr[/url] to test regular expressions online.
diff --git a/modules/regex/doc_classes/RegExMatch.xml b/modules/regex/doc_classes/RegExMatch.xml
index 151e881b6f..a45de60aef 100644
--- a/modules/regex/doc_classes/RegExMatch.xml
+++ b/modules/regex/doc_classes/RegExMatch.xml
@@ -49,7 +49,7 @@
</methods>
<members>
<member name="names" type="Dictionary" setter="" getter="get_names" default="{}">
- A dictionary of named groups and its corresponding group number. Only groups with that were matched are included. If multiple groups have the same name, that name would refer to the first matching one.
+ A dictionary of named groups and its corresponding group number. Only groups that were matched are included. If multiple groups have the same name, that name would refer to the first matching one.
</member>
<member name="strings" type="Array" setter="" getter="get_strings" default="[ ]">
An [Array] of the match and its capturing groups.
diff --git a/modules/webrtc/doc_classes/WebRTCPeerConnection.xml b/modules/webrtc/doc_classes/WebRTCPeerConnection.xml
index 504b4705d8..2054276655 100644
--- a/modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+++ b/modules/webrtc/doc_classes/WebRTCPeerConnection.xml
@@ -120,7 +120,7 @@
</argument>
<description>
Sets the SDP description of the local peer. This should be called in response to [signal session_description_created].
- If [code]type[/code] is [code]answer[/code] the peer will start emitting [signal ice_candidate_created].
+ After calling this function the peer will start emitting [signal ice_candidate_created] (unless an [enum Error] different from [constant OK] is returned).
</description>
</method>
<method name="set_remote_description">
diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp
index 176fc3110a..a663a847c2 100644
--- a/platform/android/export/export.cpp
+++ b/platform/android/export/export.cpp
@@ -772,6 +772,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
bool screen_support_xlarge = p_preset->get("screen/support_xlarge");
int xr_mode_index = p_preset->get("xr_features/xr_mode");
+ bool focus_awareness = p_preset->get("xr_features/focus_awareness");
String plugins_names = get_plugins_names(get_enabled_plugins(p_preset));
@@ -928,6 +929,11 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
}
}
+ if (tname == "meta-data" && attrname == "value" && value == "oculus_focus_aware_value") {
+ // Update the focus awareness meta-data value
+ string_table.write[attr_value] = xr_mode_index == /* XRMode.OVR */ 1 && focus_awareness ? "true" : "false";
+ }
+
if (tname == "meta-data" && attrname == "value" && value == "plugins_value" && !plugins_names.empty()) {
// Update the meta-data 'android:value' attribute with the list of enabled plugins.
string_table.write[attr_value] = plugins_names;
@@ -1449,6 +1455,7 @@ public:
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "xr_features/xr_mode", PROPERTY_HINT_ENUM, "Regular,Oculus Mobile VR"), 0));
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "xr_features/degrees_of_freedom", PROPERTY_HINT_ENUM, "None,3DOF and 6DOF,6DOF"), 0));
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "xr_features/hand_tracking", PROPERTY_HINT_ENUM, "None,Optional,Required"), 0));
+ r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "xr_features/focus_awareness"), false));
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "one_click_deploy/clear_previous_install"), false));
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "custom_template/debug", PROPERTY_HINT_GLOBAL_FILE, "*.apk"), ""));
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "custom_template/release", PROPERTY_HINT_GLOBAL_FILE, "*.apk"), ""));
@@ -1848,6 +1855,31 @@ public:
err += "\n";
}
+ // Validate the Xr features are properly populated
+ int xr_mode_index = p_preset->get("xr_features/xr_mode");
+ int degrees_of_freedom = p_preset->get("xr_features/degrees_of_freedom");
+ int hand_tracking = p_preset->get("xr_features/hand_tracking");
+ bool focus_awareness = p_preset->get("xr_features/focus_awareness");
+ if (xr_mode_index != /* XRMode.OVR*/ 1) {
+ if (degrees_of_freedom > 0) {
+ valid = false;
+ err += TTR("\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\".");
+ err += "\n";
+ }
+
+ if (hand_tracking > 0) {
+ valid = false;
+ err += TTR("\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\".");
+ err += "\n";
+ }
+
+ if (focus_awareness) {
+ valid = false;
+ err += TTR("\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\".");
+ err += "\n";
+ }
+ }
+
r_error = err;
return valid;
}
diff --git a/platform/android/java/app/AndroidManifest.xml b/platform/android/java/app/AndroidManifest.xml
index f5b1d29f22..dbf1dc0f3c 100644
--- a/platform/android/java/app/AndroidManifest.xml
+++ b/platform/android/java/app/AndroidManifest.xml
@@ -45,6 +45,9 @@
android:resizeableActivity="false"
tools:ignore="UnusedAttribute" >
+ <!-- Focus awareness metadata populated at export time if the user enables it in the 'Xr Features' section. -->
+ <meta-data android:name="com.oculus.vr.focusaware" android:value="oculus_focus_aware_value" />
+
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
diff --git a/platform/javascript/display_server_javascript.cpp b/platform/javascript/display_server_javascript.cpp
index b95674efc3..0312efb377 100644
--- a/platform/javascript/display_server_javascript.cpp
+++ b/platform/javascript/display_server_javascript.cpp
@@ -143,8 +143,8 @@ static Ref<InputEventKey> setup_key_event(const EmscriptenKeyboardEvent *emscrip
ev.instance();
ev->set_echo(emscripten_event->repeat);
dom2godot_mod(emscripten_event, ev);
- ev->set_keycode(dom2godot_keycode(emscripten_event->keyCode));
- ev->set_physical_keycode(dom2godot_keycode(emscripten_event->keyCode));
+ ev->set_keycode(dom_code2godot_scancode(emscripten_event->code, emscripten_event->key, false));
+ ev->set_physical_keycode(dom_code2godot_scancode(emscripten_event->code, emscripten_event->key, true));
String unicode = String::utf8(emscripten_event->key);
// Check if empty or multi-character (e.g. `CapsLock`).
diff --git a/platform/javascript/dom_keys.inc b/platform/javascript/dom_keys.inc
index 882e943471..e3f2ce42b4 100644
--- a/platform/javascript/dom_keys.inc
+++ b/platform/javascript/dom_keys.inc
@@ -30,400 +30,203 @@
#include "core/os/keyboard.h"
-// https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#Constants_for_keyCode_value
-#define DOM_VK_CANCEL 0x03
-#define DOM_VK_HELP 0x06
-#define DOM_VK_BACK_SPACE 0x08
-#define DOM_VK_TAB 0x09
-#define DOM_VK_CLEAR 0x0C
-#define DOM_VK_RETURN 0x0D
-#define DOM_VK_ENTER 0x0E // "Reserved, but not used."
-#define DOM_VK_SHIFT 0x10
-#define DOM_VK_CONTROL 0x11
-#define DOM_VK_ALT 0x12
-#define DOM_VK_PAUSE 0x13
-#define DOM_VK_CAPS_LOCK 0x14
-#define DOM_VK_KANA 0x15
-#define DOM_VK_HANGUL 0x15
-#define DOM_VK_EISU 0x16
-#define DOM_VK_JUNJA 0x17
-#define DOM_VK_FINAL 0x18
-#define DOM_VK_HANJA 0x19
-#define DOM_VK_KANJI 0x19
-#define DOM_VK_ESCAPE 0x1B
-#define DOM_VK_CONVERT 0x1C
-#define DOM_VK_NONCONVERT 0x1D
-#define DOM_VK_ACCEPT 0x1E
-#define DOM_VK_MODECHANGE 0x1F
-#define DOM_VK_SPACE 0x20
-#define DOM_VK_PAGE_UP 0x21
-#define DOM_VK_PAGE_DOWN 0x22
-#define DOM_VK_END 0x23
-#define DOM_VK_HOME 0x24
-#define DOM_VK_LEFT 0x25
-#define DOM_VK_UP 0x26
-#define DOM_VK_RIGHT 0x27
-#define DOM_VK_DOWN 0x28
-#define DOM_VK_SELECT 0x29
-#define DOM_VK_PRINT 0x2A
-#define DOM_VK_EXECUTE 0x2B
-#define DOM_VK_PRINTSCREEN 0x2C
-#define DOM_VK_INSERT 0x2D
-#define DOM_VK_DELETE 0x2E
-#define DOM_VK_0 0x30
-#define DOM_VK_1 0x31
-#define DOM_VK_2 0x32
-#define DOM_VK_3 0x33
-#define DOM_VK_4 0x34
-#define DOM_VK_5 0x35
-#define DOM_VK_6 0x36
-#define DOM_VK_7 0x37
-#define DOM_VK_8 0x38
-#define DOM_VK_9 0x39
-#define DOM_VK_COLON 0x3A
-#define DOM_VK_SEMICOLON 0x3B
-#define DOM_VK_LESS_THAN 0x3C
-#define DOM_VK_EQUALS 0x3D
-#define DOM_VK_GREATER_THAN 0x3E
-#define DOM_VK_QUESTION_MARK 0x3F
-#define DOM_VK_AT 0x40
-#define DOM_VK_A 0x41
-#define DOM_VK_B 0x42
-#define DOM_VK_C 0x43
-#define DOM_VK_D 0x44
-#define DOM_VK_E 0x45
-#define DOM_VK_F 0x46
-#define DOM_VK_G 0x47
-#define DOM_VK_H 0x48
-#define DOM_VK_I 0x49
-#define DOM_VK_J 0x4A
-#define DOM_VK_K 0x4B
-#define DOM_VK_L 0x4C
-#define DOM_VK_M 0x4D
-#define DOM_VK_N 0x4E
-#define DOM_VK_O 0x4F
-#define DOM_VK_P 0x50
-#define DOM_VK_Q 0x51
-#define DOM_VK_R 0x52
-#define DOM_VK_S 0x53
-#define DOM_VK_T 0x54
-#define DOM_VK_U 0x55
-#define DOM_VK_V 0x56
-#define DOM_VK_W 0x57
-#define DOM_VK_X 0x58
-#define DOM_VK_Y 0x59
-#define DOM_VK_Z 0x5A
-#define DOM_VK_WIN 0x5B
-#define DOM_VK_CONTEXT_MENU 0x5D
-#define DOM_VK_SLEEP 0x5F
-#define DOM_VK_NUMPAD0 0x60
-#define DOM_VK_NUMPAD1 0x61
-#define DOM_VK_NUMPAD2 0x62
-#define DOM_VK_NUMPAD3 0x63
-#define DOM_VK_NUMPAD4 0x64
-#define DOM_VK_NUMPAD5 0x65
-#define DOM_VK_NUMPAD6 0x66
-#define DOM_VK_NUMPAD7 0x67
-#define DOM_VK_NUMPAD8 0x68
-#define DOM_VK_NUMPAD9 0x69
-#define DOM_VK_MULTIPLY 0x6A
-#define DOM_VK_ADD 0x6B
-#define DOM_VK_SEPARATOR 0x6C
-#define DOM_VK_SUBTRACT 0x6D
-#define DOM_VK_DECIMAL 0x6E
-#define DOM_VK_DIVIDE 0x6F
-#define DOM_VK_F1 0x70
-#define DOM_VK_F2 0x71
-#define DOM_VK_F3 0x72
-#define DOM_VK_F4 0x73
-#define DOM_VK_F5 0x74
-#define DOM_VK_F6 0x75
-#define DOM_VK_F7 0x76
-#define DOM_VK_F8 0x77
-#define DOM_VK_F9 0x78
-#define DOM_VK_F10 0x79
-#define DOM_VK_F11 0x7A
-#define DOM_VK_F12 0x7B
-#define DOM_VK_F13 0x7C
-#define DOM_VK_F14 0x7D
-#define DOM_VK_F15 0x7E
-#define DOM_VK_F16 0x7F
-#define DOM_VK_F17 0x80
-#define DOM_VK_F18 0x81
-#define DOM_VK_F19 0x82
-#define DOM_VK_F20 0x83
-#define DOM_VK_F21 0x84
-#define DOM_VK_F22 0x85
-#define DOM_VK_F23 0x86
-#define DOM_VK_F24 0x87
-#define DOM_VK_NUM_LOCK 0x90
-#define DOM_VK_SCROLL_LOCK 0x91
-#define DOM_VK_WIN_OEM_FJ_JISHO 0x92
-#define DOM_VK_WIN_OEM_FJ_MASSHOU 0x93
-#define DOM_VK_WIN_OEM_FJ_TOUROKU 0x94
-#define DOM_VK_WIN_OEM_FJ_LOYA 0x95
-#define DOM_VK_WIN_OEM_FJ_ROYA 0x96
-#define DOM_VK_CIRCUMFLEX 0xA0
-#define DOM_VK_EXCLAMATION 0xA1
-#define DOM_VK_DOUBLE_QUOTE 0xA2
-#define DOM_VK_HASH 0xA3
-#define DOM_VK_DOLLAR 0xA4
-#define DOM_VK_PERCENT 0xA5
-#define DOM_VK_AMPERSAND 0xA6
-#define DOM_VK_UNDERSCORE 0xA7
-#define DOM_VK_OPEN_PAREN 0xA8
-#define DOM_VK_CLOSE_PAREN 0xA9
-#define DOM_VK_ASTERISK 0xAA
-#define DOM_VK_PLUS 0xAB
-#define DOM_VK_PIPE 0xAC
-#define DOM_VK_HYPHEN_MINUS 0xAD
-#define DOM_VK_OPEN_CURLY_BRACKET 0xAE
-#define DOM_VK_CLOSE_CURLY_BRACKET 0xAF
-#define DOM_VK_TILDE 0xB0
-#define DOM_VK_VOLUME_MUTE 0xB5
-#define DOM_VK_VOLUME_DOWN 0xB6
-#define DOM_VK_VOLUME_UP 0xB7
-#define DOM_VK_COMMA 0xBC
-#define DOM_VK_PERIOD 0xBE
-#define DOM_VK_SLASH 0xBF
-#define DOM_VK_BACK_QUOTE 0xC0
-#define DOM_VK_OPEN_BRACKET 0xDB
-#define DOM_VK_BACK_SLASH 0xDC
-#define DOM_VK_CLOSE_BRACKET 0xDD
-#define DOM_VK_QUOTE 0xDE
-#define DOM_VK_META 0xE0
-#define DOM_VK_ALTGR 0xE1
-#define DOM_VK_WIN_ICO_HELP 0xE3
-#define DOM_VK_WIN_ICO_00 0xE4
-#define DOM_VK_WIN_ICO_CLEAR 0xE6
-#define DOM_VK_WIN_OEM_RESET 0xE9
-#define DOM_VK_WIN_OEM_JUMP 0xEA
-#define DOM_VK_WIN_OEM_PA1 0xEB
-#define DOM_VK_WIN_OEM_PA2 0xEC
-#define DOM_VK_WIN_OEM_PA3 0xED
-#define DOM_VK_WIN_OEM_WSCTRL 0xEE
-#define DOM_VK_WIN_OEM_CUSEL 0xEF
-#define DOM_VK_WIN_OEM_ATTN 0xF0
-#define DOM_VK_WIN_OEM_FINISH 0xF1
-#define DOM_VK_WIN_OEM_COPY 0xF2
-#define DOM_VK_WIN_OEM_AUTO 0xF3
-#define DOM_VK_WIN_OEM_ENLW 0xF4
-#define DOM_VK_WIN_OEM_BACKTAB 0xF5
-#define DOM_VK_ATTN 0xF6
-#define DOM_VK_CRSEL 0xF7
-#define DOM_VK_EXSEL 0xF8
-#define DOM_VK_EREOF 0xF9
-#define DOM_VK_PLAY 0xFA
-#define DOM_VK_ZOOM 0xFB
-#define DOM_VK_PA1 0xFD
-#define DOM_VK_WIN_OEM_CLEAR 0xFE
-
-int dom2godot_keycode(int dom_keycode) {
- if (DOM_VK_0 <= dom_keycode && dom_keycode <= DOM_VK_Z) {
- // ASCII intersection
- return dom_keycode;
- }
-
- if (DOM_VK_NUMPAD0 <= dom_keycode && dom_keycode <= DOM_VK_NUMPAD9) {
- // Numpad numbers
- return KEY_KP_0 + (dom_keycode - DOM_VK_NUMPAD0);
+// See https://w3c.github.io/uievents-code/#code-value-tables
+int dom_code2godot_scancode(EM_UTF8 const p_code[32], EM_UTF8 const p_key[32], bool p_physical) {
+#define DOM2GODOT(p_str, p_godot_code) \
+ if (memcmp((const void *)p_str, (void *)p_code, strlen(p_str) + 1) == 0) { \
+ return KEY_##p_godot_code; \
}
- if (DOM_VK_F1 <= dom_keycode && dom_keycode <= DOM_VK_F16) {
- // F1-F16
- return KEY_F1 + (dom_keycode - DOM_VK_F1);
+ // Numpad section.
+ DOM2GODOT("NumLock", NUMLOCK);
+ DOM2GODOT("Numpad0", KP_0);
+ DOM2GODOT("Numpad1", KP_1);
+ DOM2GODOT("Numpad2", KP_2);
+ DOM2GODOT("Numpad3", KP_3);
+ DOM2GODOT("Numpad4", KP_4);
+ DOM2GODOT("Numpad5", KP_5);
+ DOM2GODOT("Numpad6", KP_6);
+ DOM2GODOT("Numpad7", KP_7);
+ DOM2GODOT("Numpad8", KP_8);
+ DOM2GODOT("Numpad9", KP_9);
+ DOM2GODOT("NumpadAdd", KP_ADD);
+ DOM2GODOT("NumpadBackspace", BACKSPACE);
+ DOM2GODOT("NumpadClear", CLEAR);
+ DOM2GODOT("NumpadClearEntry", CLEAR);
+ //DOM2GODOT("NumpadComma", UNKNOWN);
+ DOM2GODOT("NumpadDecimal", KP_PERIOD);
+ DOM2GODOT("NumpadDivide", KP_DIVIDE);
+ DOM2GODOT("NumpadEnter", KP_ENTER);
+ DOM2GODOT("NumpadEqual", EQUAL);
+ //DOM2GODOT("NumpadHash", UNKNOWN);
+ //DOM2GODOT("NumpadMemoryAdd", UNKNOWN);
+ //DOM2GODOT("NumpadMemoryClear", UNKNOWN);
+ //DOM2GODOT("NumpadMemoryRecall", UNKNOWN);
+ //DOM2GODOT("NumpadMemoryStore", UNKNOWN);
+ //DOM2GODOT("NumpadMemorySubtract", UNKNOWN);
+ DOM2GODOT("NumpadMultiply", KP_MULTIPLY);
+ DOM2GODOT("NumpadParenLeft", PARENLEFT);
+ DOM2GODOT("NumpadParenRight", PARENRIGHT);
+ DOM2GODOT("NumpadStar", KP_MULTIPLY); // or ASTERISK ?
+ DOM2GODOT("NumpadSubtract", KP_SUBTRACT);
+
+ // Printable ASCII.
+ if (!p_physical) {
+ uint8_t b0 = (uint8_t)p_key[0];
+ uint8_t b1 = (uint8_t)p_key[1];
+ uint8_t b2 = (uint8_t)p_key[2];
+ if (b1 == 0 && b0 > 0x1F && b0 < 0x7F) { // ASCII.
+ if (b0 > 0x60 && b0 < 0x7B) { // Lowercase ASCII.
+ b0 -= 32;
+ }
+ return b0;
+ }
+
+#define _U_2BYTES_MASK 0xE0
+#define _U_2BYTES 0xC0
+ // Latin-1 codes.
+ if (b2 == 0 && (b0 & _U_2BYTES_MASK) == _U_2BYTES) { // 2-bytes utf8, only known latin.
+ uint32_t key = ((b0 & ~_U_2BYTES_MASK) << 6) | (b1 & 0x3F);
+ if (key >= 0xA0 && key <= 0xDF) {
+ return key;
+ }
+ if (key >= 0xE0 && key <= 0xFF) { // Lowercase known latin.
+ key -= 0x20;
+ return key;
+ }
+ }
+#undef _U_2BYTES_MASK
+#undef _U_2BYTES
}
- switch (dom_keycode) {
- //case DOM_VK_CANCEL: return KEY_UNKNOWN;
- case DOM_VK_HELP:
- return KEY_HELP;
- case DOM_VK_BACK_SPACE:
- return KEY_BACKSPACE;
- case DOM_VK_TAB:
- return KEY_TAB;
-
- case DOM_VK_CLEAR:
- case DOM_VK_WIN_OEM_CLEAR: // OEM duplicate
- return KEY_CLEAR;
-
- case DOM_VK_RETURN:
- case DOM_VK_ENTER: // unused according to MDN
- return KEY_ENTER;
-
- case DOM_VK_SHIFT:
- return KEY_SHIFT;
- case DOM_VK_CONTROL:
- return KEY_CONTROL;
-
- case DOM_VK_ALT:
- case DOM_VK_ALTGR:
- return KEY_ALT;
-
- case DOM_VK_PAUSE:
- return KEY_PAUSE;
- case DOM_VK_CAPS_LOCK:
- return KEY_CAPSLOCK;
-
- /*
- case DOM_VK_KANA: return KEY_UNKNOWN;
- case DOM_VK_HANGUL: return KEY_UNKNOWN;
- case DOM_VK_EISU: return KEY_UNKNOWN;
- case DOM_VK_JUNJA: return KEY_UNKNOWN;
- case DOM_VK_FINAL: return KEY_UNKNOWN;
- case DOM_VK_HANJA: return KEY_UNKNOWN;
- case DOM_VK_KANJI: return KEY_UNKNOWN;
- */
-
- case DOM_VK_ESCAPE:
- return KEY_ESCAPE;
- /*
- case DOM_VK_CONVERT: return KEY_UNKNOWN;
- case DOM_VK_NONCONVERT: return KEY_UNKNOWN;
- case DOM_VK_ACCEPT: return KEY_UNKNOWN;
- case DOM_VK_MODECHANGE: return KEY_UNKNOWN;
- */
-
- case DOM_VK_SPACE:
- return KEY_SPACE;
- case DOM_VK_PAGE_UP:
- return KEY_PAGEUP;
- case DOM_VK_PAGE_DOWN:
- return KEY_PAGEDOWN;
- case DOM_VK_END:
- return KEY_END;
- case DOM_VK_HOME:
- return KEY_HOME;
- case DOM_VK_LEFT:
- return KEY_LEFT;
- case DOM_VK_UP:
- return KEY_UP;
- case DOM_VK_RIGHT:
- return KEY_RIGHT;
- case DOM_VK_DOWN:
- return KEY_DOWN;
-
- //case DOM_VK_SELECT: return KEY_UNKNOWN;
-
- case DOM_VK_PRINTSCREEN:
- case DOM_VK_PRINT:
- return KEY_PRINT;
-
- //case DOM_VK_EXECUTE: return KEY_UNKNOWN;
- case DOM_VK_INSERT:
- return KEY_INSERT;
- case DOM_VK_DELETE:
- return KEY_DELETE;
-
- case DOM_VK_META:
- case DOM_VK_WIN:
- return KEY_META;
-
- case DOM_VK_CONTEXT_MENU:
- return KEY_MENU;
- case DOM_VK_SLEEP:
- return KEY_STANDBY;
-
- // Numpad keys
- case DOM_VK_MULTIPLY:
- return KEY_KP_MULTIPLY;
- case DOM_VK_ADD:
- return KEY_KP_ADD;
- case DOM_VK_SEPARATOR:
- return KEY_KP_PERIOD; // Good enough?
- case DOM_VK_SUBTRACT:
- return KEY_KP_SUBTRACT;
- case DOM_VK_DECIMAL:
- return KEY_KP_PERIOD;
- case DOM_VK_DIVIDE:
- return KEY_KP_DIVIDE;
-
- /*
- case DOM_VK_F17: return KEY_UNKNOWN;
- case DOM_VK_F18: return KEY_UNKNOWN;
- case DOM_VK_F19: return KEY_UNKNOWN;
- case DOM_VK_F20: return KEY_UNKNOWN;
- case DOM_VK_F21: return KEY_UNKNOWN;
- case DOM_VK_F22: return KEY_UNKNOWN;
- case DOM_VK_F23: return KEY_UNKNOWN;
- case DOM_VK_F24: return KEY_UNKNOWN;
- */
-
- case DOM_VK_NUM_LOCK:
- return KEY_NUMLOCK;
- case DOM_VK_SCROLL_LOCK:
- return KEY_SCROLLLOCK;
-
- /*
- case DOM_VK_WIN_OEM_FJ_JISHO: return KEY_UNKNOWN;
- case DOM_VK_WIN_OEM_FJ_MASSHOU: return KEY_UNKNOWN;
- case DOM_VK_WIN_OEM_FJ_TOUROKU: return KEY_UNKNOWN;
- case DOM_VK_WIN_OEM_FJ_LOYA: return KEY_UNKNOWN;
- case DOM_VK_WIN_OEM_FJ_ROYA: return KEY_UNKNOWN;
- */
-
- case DOM_VK_CIRCUMFLEX:
- return KEY_ASCIICIRCUM;
- case DOM_VK_EXCLAMATION:
- return KEY_EXCLAM;
- case DOM_VK_DOUBLE_QUOTE:
- return KEY_QUOTEDBL;
- case DOM_VK_HASH:
- return KEY_NUMBERSIGN;
- case DOM_VK_DOLLAR:
- return KEY_DOLLAR;
- case DOM_VK_PERCENT:
- return KEY_PERCENT;
- case DOM_VK_AMPERSAND:
- return KEY_AMPERSAND;
- case DOM_VK_UNDERSCORE:
- return KEY_UNDERSCORE;
- case DOM_VK_OPEN_PAREN:
- return KEY_PARENLEFT;
- case DOM_VK_CLOSE_PAREN:
- return KEY_PARENRIGHT;
- case DOM_VK_ASTERISK:
- return KEY_ASTERISK;
- case DOM_VK_PLUS:
- return KEY_PLUS;
- case DOM_VK_PIPE:
- return KEY_BAR;
- case DOM_VK_HYPHEN_MINUS:
- return KEY_MINUS;
- case DOM_VK_OPEN_CURLY_BRACKET:
- return KEY_BRACELEFT;
- case DOM_VK_CLOSE_CURLY_BRACKET:
- return KEY_BRACERIGHT;
- case DOM_VK_TILDE:
- return KEY_ASCIITILDE;
-
- case DOM_VK_VOLUME_MUTE:
- return KEY_VOLUMEMUTE;
- case DOM_VK_VOLUME_DOWN:
- return KEY_VOLUMEDOWN;
- case DOM_VK_VOLUME_UP:
- return KEY_VOLUMEUP;
-
- case DOM_VK_COMMA:
- return KEY_COMMA;
- case DOM_VK_PERIOD:
- return KEY_PERIOD;
- case DOM_VK_SLASH:
- return KEY_SLASH;
- case DOM_VK_BACK_QUOTE:
- return KEY_QUOTELEFT;
- case DOM_VK_OPEN_BRACKET:
- return KEY_BRACKETLEFT;
- case DOM_VK_BACK_SLASH:
- return KEY_BACKSLASH;
- case DOM_VK_CLOSE_BRACKET:
- return KEY_BRACKETRIGHT;
- case DOM_VK_QUOTE:
- return KEY_APOSTROPHE;
-
- // The rest is OEM/unusual.
-
- default:
- return KEY_UNKNOWN;
- };
+ // Alphanumeric section.
+ DOM2GODOT("Backquote", QUOTELEFT);
+ DOM2GODOT("Backslash", BACKSLASH);
+ DOM2GODOT("BracketLeft", BRACKETLEFT);
+ DOM2GODOT("BracketRight", BRACKETRIGHT);
+ DOM2GODOT("Comma", COMMA);
+ DOM2GODOT("Digit0", 0);
+ DOM2GODOT("Digit1", 1);
+ DOM2GODOT("Digit2", 2);
+ DOM2GODOT("Digit3", 3);
+ DOM2GODOT("Digit4", 4);
+ DOM2GODOT("Digit5", 5);
+ DOM2GODOT("Digit6", 6);
+ DOM2GODOT("Digit7", 7);
+ DOM2GODOT("Digit8", 8);
+ DOM2GODOT("Digit9", 9);
+ DOM2GODOT("Equal", EQUAL);
+ DOM2GODOT("IntlBackslash", BACKSLASH);
+ //DOM2GODOT("IntlRo", UNKNOWN);
+ DOM2GODOT("IntlYen", YEN);
+
+ DOM2GODOT("KeyA", A);
+ DOM2GODOT("KeyB", B);
+ DOM2GODOT("KeyC", C);
+ DOM2GODOT("KeyD", D);
+ DOM2GODOT("KeyE", E);
+ DOM2GODOT("KeyF", F);
+ DOM2GODOT("KeyG", G);
+ DOM2GODOT("KeyH", H);
+ DOM2GODOT("KeyI", I);
+ DOM2GODOT("KeyJ", J);
+ DOM2GODOT("KeyK", K);
+ DOM2GODOT("KeyL", L);
+ DOM2GODOT("KeyM", M);
+ DOM2GODOT("KeyN", N);
+ DOM2GODOT("KeyO", O);
+ DOM2GODOT("KeyP", P);
+ DOM2GODOT("KeyQ", Q);
+ DOM2GODOT("KeyR", R);
+ DOM2GODOT("KeyS", S);
+ DOM2GODOT("KeyT", T);
+ DOM2GODOT("KeyU", U);
+ DOM2GODOT("KeyV", V);
+ DOM2GODOT("KeyW", W);
+ DOM2GODOT("KeyX", X);
+ DOM2GODOT("KeyY", Y);
+ DOM2GODOT("KeyZ", Z);
+
+ DOM2GODOT("Minus", MINUS);
+ DOM2GODOT("Period", PERIOD);
+ DOM2GODOT("Quote", APOSTROPHE);
+ DOM2GODOT("Semicolon", SEMICOLON);
+ DOM2GODOT("Slash", SLASH);
+
+ // Functional keys in the Alphanumeric section.
+ DOM2GODOT("AltLeft", ALT);
+ DOM2GODOT("AltRight", ALT);
+ DOM2GODOT("Backspace", BACKSPACE);
+ DOM2GODOT("CapsLock", CAPSLOCK);
+ DOM2GODOT("ContextMenu", MENU);
+ DOM2GODOT("ControlLeft", CONTROL);
+ DOM2GODOT("ControlRight", CONTROL);
+ DOM2GODOT("Enter", ENTER);
+ DOM2GODOT("MetaLeft", SUPER_L);
+ DOM2GODOT("MetaRight", SUPER_R);
+ DOM2GODOT("ShiftLeft", SHIFT);
+ DOM2GODOT("ShiftRight", SHIFT);
+ DOM2GODOT("Space", SPACE);
+ DOM2GODOT("Tab", TAB);
+
+ // ControlPad section.
+ DOM2GODOT("Delete", DELETE);
+ DOM2GODOT("End", END);
+ DOM2GODOT("Help", HELP);
+ DOM2GODOT("Home", HOME);
+ DOM2GODOT("Insert", INSERT);
+ DOM2GODOT("PageDown", PAGEDOWN);
+ DOM2GODOT("PageUp", PAGEUP);
+
+ // ArrowPad section.
+ DOM2GODOT("ArrowDown", DOWN);
+ DOM2GODOT("ArrowLeft", LEFT);
+ DOM2GODOT("ArrowRight", RIGHT);
+ DOM2GODOT("ArrowUp", UP);
+
+ // Function section.
+ DOM2GODOT("Escape", ESCAPE);
+ DOM2GODOT("F1", F1);
+ DOM2GODOT("F2", F2);
+ DOM2GODOT("F3", F3);
+ DOM2GODOT("F4", F4);
+ DOM2GODOT("F5", F5);
+ DOM2GODOT("F6", F6);
+ DOM2GODOT("F7", F7);
+ DOM2GODOT("F8", F8);
+ DOM2GODOT("F9", F9);
+ DOM2GODOT("F10", F10);
+ DOM2GODOT("F11", F11);
+ DOM2GODOT("F12", F12);
+ //DOM2GODOT("Fn", UNKNOWN); // never actually fired, but included in the standard draft.
+ //DOM2GODOT("FnLock", UNKNOWN);
+ DOM2GODOT("PrintScreen", PRINT);
+ DOM2GODOT("ScrollLock", SCROLLLOCK);
+ DOM2GODOT("Pause", PAUSE);
+
+ // Media keys section.
+ DOM2GODOT("BrowserBack", BACK);
+ DOM2GODOT("BrowserFavorites", FAVORITES);
+ DOM2GODOT("BrowserForward", FORWARD);
+ DOM2GODOT("BrowserHome", OPENURL);
+ DOM2GODOT("BrowserRefresh", REFRESH);
+ DOM2GODOT("BrowserSearch", SEARCH);
+ DOM2GODOT("BrowserStop", STOP);
+ //DOM2GODOT("Eject", UNKNOWN);
+ DOM2GODOT("LaunchApp1", LAUNCH0);
+ DOM2GODOT("LaunchApp2", LAUNCH1);
+ DOM2GODOT("LaunchMail", LAUNCHMAIL);
+ DOM2GODOT("MediaPlayPause", MEDIAPLAY);
+ DOM2GODOT("MediaSelect", LAUNCHMEDIA);
+ DOM2GODOT("MediaStop", MEDIASTOP);
+ DOM2GODOT("MediaTrackNext", MEDIANEXT);
+ DOM2GODOT("MediaTrackPrevious", MEDIAPREVIOUS);
+ //DOM2GODOT("Power", UNKNOWN);
+ //DOM2GODOT("Sleep", UNKNOWN);
+ DOM2GODOT("AudioVolumeDown", VOLUMEDOWN);
+ DOM2GODOT("AudioVolumeMute", VOLUMEMUTE);
+ DOM2GODOT("AudioVolumeUp", VOLUMEUP);
+ //DOM2GODOT("WakeUp", UNKNOWN);
+ return KEY_UNKNOWN;
+#undef DOM2GODOT
}
diff --git a/platform/javascript/javascript_main.cpp b/platform/javascript/javascript_main.cpp
index 740a72fafa..fd61c46e63 100644
--- a/platform/javascript/javascript_main.cpp
+++ b/platform/javascript/javascript_main.cpp
@@ -80,6 +80,9 @@ extern "C" EMSCRIPTEN_KEEPALIVE void main_after_fs_sync(char *p_idbfs_err) {
Main::start();
os->get_main_loop()->init();
emscripten_resume_main_loop();
+ // Immediately run the first iteration.
+ // We are inside an animation frame, we want to immediately draw on the newly setup canvas.
+ main_loop_callback();
}
int main(int argc, char *argv[]) {
@@ -91,14 +94,15 @@ int main(int argc, char *argv[]) {
// Sync from persistent state into memory and then
// run the 'main_after_fs_sync' function.
/* clang-format off */
- EM_ASM(
+ EM_ASM({
FS.mkdir('/userfs');
FS.mount(IDBFS, {}, '/userfs');
FS.syncfs(true, function(err) {
- ccall('main_after_fs_sync', null, ['string'], [err ? err.message : ""])
+ requestAnimationFrame(function() {
+ ccall('main_after_fs_sync', null, ['string'], [err ? err.message : ""]);
+ });
});
-
- );
+ });
/* clang-format on */
return 0;
diff --git a/platform/linuxbsd/display_server_x11.cpp b/platform/linuxbsd/display_server_x11.cpp
index ef5ac66b34..a0954600a2 100644
--- a/platform/linuxbsd/display_server_x11.cpp
+++ b/platform/linuxbsd/display_server_x11.cpp
@@ -1846,37 +1846,106 @@ void DisplayServerX11::cursor_set_custom_image(const RES &p_cursor, CursorShape
}
}
-DisplayServerX11::LatinKeyboardVariant DisplayServerX11::get_latin_keyboard_variant() const {
- _THREAD_SAFE_METHOD_
-
- XkbDescRec *xkbdesc = XkbAllocKeyboard();
- ERR_FAIL_COND_V(!xkbdesc, LATIN_KEYBOARD_QWERTY);
+int DisplayServerX11::keyboard_get_layout_count() const {
+ int _group_count = 0;
+ XkbDescRec *kbd = XkbAllocKeyboard();
+ if (kbd) {
+ kbd->dpy = x11_display;
+ XkbGetControls(x11_display, XkbAllControlsMask, kbd);
+ XkbGetNames(x11_display, XkbSymbolsNameMask, kbd);
+
+ const Atom *groups = kbd->names->groups;
+ if (kbd->ctrls != NULL) {
+ _group_count = kbd->ctrls->num_groups;
+ } else {
+ while (_group_count < XkbNumKbdGroups && groups[_group_count] != None) {
+ _group_count++;
+ }
+ }
+ XkbFreeKeyboard(kbd, 0, true);
+ }
+ return _group_count;
+}
- XkbGetNames(x11_display, XkbSymbolsNameMask, xkbdesc);
- ERR_FAIL_COND_V(!xkbdesc->names, LATIN_KEYBOARD_QWERTY);
- ERR_FAIL_COND_V(!xkbdesc->names->symbols, LATIN_KEYBOARD_QWERTY);
+int DisplayServerX11::keyboard_get_current_layout() const {
+ XkbStateRec state;
+ XkbGetState(x11_display, XkbUseCoreKbd, &state);
+ return state.group;
+}
- char *layout = XGetAtomName(x11_display, xkbdesc->names->symbols);
- ERR_FAIL_COND_V(!layout, LATIN_KEYBOARD_QWERTY);
+void DisplayServerX11::keyboard_set_current_layout(int p_index) {
+ ERR_FAIL_INDEX(p_index, keyboard_get_layout_count());
+ XkbLockGroup(x11_display, XkbUseCoreKbd, p_index);
+}
- Vector<String> info = String(layout).split("+");
- ERR_FAIL_INDEX_V(1, info.size(), LATIN_KEYBOARD_QWERTY);
+String DisplayServerX11::keyboard_get_layout_language(int p_index) const {
+ String ret;
+ XkbDescRec *kbd = XkbAllocKeyboard();
+ if (kbd) {
+ kbd->dpy = x11_display;
+ XkbGetControls(x11_display, XkbAllControlsMask, kbd);
+ XkbGetNames(x11_display, XkbSymbolsNameMask, kbd);
+ XkbGetNames(x11_display, XkbGroupNamesMask, kbd);
+
+ int _group_count = 0;
+ const Atom *groups = kbd->names->groups;
+ if (kbd->ctrls != NULL) {
+ _group_count = kbd->ctrls->num_groups;
+ } else {
+ while (_group_count < XkbNumKbdGroups && groups[_group_count] != None) {
+ _group_count++;
+ }
+ }
- if (info[1].find("colemak") != -1) {
- return LATIN_KEYBOARD_COLEMAK;
- } else if (info[1].find("qwertz") != -1) {
- return LATIN_KEYBOARD_QWERTZ;
- } else if (info[1].find("azerty") != -1) {
- return LATIN_KEYBOARD_AZERTY;
- } else if (info[1].find("qzerty") != -1) {
- return LATIN_KEYBOARD_QZERTY;
- } else if (info[1].find("dvorak") != -1) {
- return LATIN_KEYBOARD_DVORAK;
- } else if (info[1].find("neo") != -1) {
- return LATIN_KEYBOARD_NEO;
+ Atom names = kbd->names->symbols;
+ if (names != None) {
+ char *name = XGetAtomName(x11_display, names);
+ Vector<String> info = String(name).split("+");
+ if (p_index >= 0 && p_index < _group_count) {
+ if (p_index + 1 < info.size()) {
+ ret = info[p_index + 1]; // Skip "pc" at the start and "inet"/"group" at the end of symbols.
+ } else {
+ ret = "en"; // No symbol for layout fallback to "en".
+ }
+ } else {
+ ERR_PRINT("Index " + itos(p_index) + "is out of bounds (" + itos(_group_count) + ").");
+ }
+ XFree(name);
+ }
+ XkbFreeKeyboard(kbd, 0, true);
}
+ return ret.substr(0, 2);
+}
+
+String DisplayServerX11::keyboard_get_layout_name(int p_index) const {
+ String ret;
+ XkbDescRec *kbd = XkbAllocKeyboard();
+ if (kbd) {
+ kbd->dpy = x11_display;
+ XkbGetControls(x11_display, XkbAllControlsMask, kbd);
+ XkbGetNames(x11_display, XkbSymbolsNameMask, kbd);
+ XkbGetNames(x11_display, XkbGroupNamesMask, kbd);
+
+ int _group_count = 0;
+ const Atom *groups = kbd->names->groups;
+ if (kbd->ctrls != NULL) {
+ _group_count = kbd->ctrls->num_groups;
+ } else {
+ while (_group_count < XkbNumKbdGroups && groups[_group_count] != None) {
+ _group_count++;
+ }
+ }
- return LATIN_KEYBOARD_QWERTY;
+ if (p_index >= 0 && p_index < _group_count) {
+ char *full_name = XGetAtomName(x11_display, groups[p_index]);
+ ret.parse_utf8(full_name);
+ XFree(full_name);
+ } else {
+ ERR_PRINT("Index " + itos(p_index) + "is out of bounds (" + itos(_group_count) + ").");
+ }
+ XkbFreeKeyboard(kbd, 0, true);
+ }
+ return ret;
}
DisplayServerX11::Property DisplayServerX11::_read_property(Display *p_display, Window p_window, Atom p_property) {
diff --git a/platform/linuxbsd/display_server_x11.h b/platform/linuxbsd/display_server_x11.h
index b5ea71f72a..f01b9a2323 100644
--- a/platform/linuxbsd/display_server_x11.h
+++ b/platform/linuxbsd/display_server_x11.h
@@ -327,7 +327,11 @@ public:
virtual CursorShape cursor_get_shape() const;
virtual void cursor_set_custom_image(const RES &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot);
- virtual LatinKeyboardVariant get_latin_keyboard_variant() const;
+ virtual int keyboard_get_layout_count() const;
+ virtual int keyboard_get_current_layout() const;
+ virtual void keyboard_set_current_layout(int p_index);
+ virtual String keyboard_get_layout_language(int p_index) const;
+ virtual String keyboard_get_layout_name(int p_index) const;
virtual void process_events();
diff --git a/platform/osx/display_server_osx.h b/platform/osx/display_server_osx.h
index 8133dfe2c4..fddb1d0ca6 100644
--- a/platform/osx/display_server_osx.h
+++ b/platform/osx/display_server_osx.h
@@ -281,7 +281,11 @@ public:
virtual bool get_swap_ok_cancel();
- virtual LatinKeyboardVariant get_latin_keyboard_variant() const;
+ virtual int keyboard_get_layout_count() const;
+ virtual int keyboard_get_current_layout() const;
+ virtual void keyboard_set_current_layout(int p_index);
+ virtual String keyboard_get_layout_language(int p_index) const;
+ virtual String keyboard_get_layout_name(int p_index) const;
virtual void process_events();
virtual void force_process_and_drop_events();
diff --git a/platform/osx/display_server_osx.mm b/platform/osx/display_server_osx.mm
index 9a1191490c..4a94e09c1c 100644
--- a/platform/osx/display_server_osx.mm
+++ b/platform/osx/display_server_osx.mm
@@ -2987,85 +2987,129 @@ void DisplayServerOSX::cursor_set_custom_image(const RES &p_cursor, CursorShape
}
}
+struct LayoutInfo {
+ String name;
+ String code;
+};
+
+static Vector<LayoutInfo> kbd_layouts;
+static int current_layout = 0;
static bool keyboard_layout_dirty = true;
static void keyboard_layout_changed(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef user_info) {
+ kbd_layouts.clear();
+ current_layout = 0;
keyboard_layout_dirty = true;
}
-// Returns string representation of keys, if they are printable.
-static NSString *createStringForKeys(const CGKeyCode *keyCode, int length) {
- TISInputSourceRef currentKeyboard = TISCopyCurrentKeyboardInputSource();
- if (!currentKeyboard)
- return nil;
+void _update_keyboard_layouts() {
+ @autoreleasepool {
+ TISInputSourceRef cur_source = TISCopyCurrentKeyboardInputSource();
+ NSString *cur_name = (NSString *)TISGetInputSourceProperty(cur_source, kTISPropertyLocalizedName);
+ CFRelease(cur_source);
- CFDataRef layoutData = (CFDataRef)TISGetInputSourceProperty(currentKeyboard, kTISPropertyUnicodeKeyLayoutData);
- if (!layoutData)
- return nil;
+ // Enum IME layouts
+ NSDictionary *filter_ime = @{ (NSString *)kTISPropertyInputSourceType : (NSString *)kTISTypeKeyboardInputMode };
+ NSArray *list_ime = (NSArray *)TISCreateInputSourceList((CFDictionaryRef)filter_ime, false);
+ for (NSUInteger i = 0; i < [list_ime count]; i++) {
+ LayoutInfo ly;
+ NSString *name = (NSString *)TISGetInputSourceProperty((TISInputSourceRef)[list_ime objectAtIndex:i], kTISPropertyLocalizedName);
+ ly.name.parse_utf8([name UTF8String]);
- const UCKeyboardLayout *keyboardLayout = (const UCKeyboardLayout *)CFDataGetBytePtr(layoutData);
+ NSArray *langs = (NSArray *)TISGetInputSourceProperty((TISInputSourceRef)[list_ime objectAtIndex:i], kTISPropertyInputSourceLanguages);
+ ly.code.parse_utf8([(NSString *)[langs objectAtIndex:0] UTF8String]);
+ kbd_layouts.push_back(ly);
- OSStatus err;
- CFMutableStringRef output = CFStringCreateMutable(NULL, 0);
+ if ([name isEqualToString:cur_name]) {
+ current_layout = kbd_layouts.size() - 1;
+ }
+ }
+ [list_ime release];
- for (int i = 0; i < length; ++i) {
- UInt32 keysDown = 0;
- UniChar chars[4];
- UniCharCount realLength;
+ // Enum plain keyboard layouts
+ NSDictionary *filter_kbd = @{ (NSString *)kTISPropertyInputSourceType : (NSString *)kTISTypeKeyboardLayout };
+ NSArray *list_kbd = (NSArray *)TISCreateInputSourceList((CFDictionaryRef)filter_kbd, false);
+ for (NSUInteger i = 0; i < [list_kbd count]; i++) {
+ LayoutInfo ly;
+ NSString *name = (NSString *)TISGetInputSourceProperty((TISInputSourceRef)[list_kbd objectAtIndex:i], kTISPropertyLocalizedName);
+ ly.name.parse_utf8([name UTF8String]);
- err = UCKeyTranslate(keyboardLayout,
- keyCode[i],
- kUCKeyActionDisplay,
- 0,
- LMGetKbdType(),
- kUCKeyTranslateNoDeadKeysBit,
- &keysDown,
- sizeof(chars) / sizeof(chars[0]),
- &realLength,
- chars);
+ NSArray *langs = (NSArray *)TISGetInputSourceProperty((TISInputSourceRef)[list_kbd objectAtIndex:i], kTISPropertyInputSourceLanguages);
+ ly.code.parse_utf8([(NSString *)[langs objectAtIndex:0] UTF8String]);
+ kbd_layouts.push_back(ly);
- if (err != noErr) {
- CFRelease(output);
- return nil;
+ if ([name isEqualToString:cur_name]) {
+ current_layout = kbd_layouts.size() - 1;
+ }
}
-
- CFStringAppendCharacters(output, chars, 1);
+ [list_kbd release];
}
- return (NSString *)output;
+ keyboard_layout_dirty = false;
}
-DisplayServerOSX::LatinKeyboardVariant DisplayServerOSX::get_latin_keyboard_variant() const {
- _THREAD_SAFE_METHOD_
-
- static LatinKeyboardVariant layout = LATIN_KEYBOARD_QWERTY;
+int DisplayServerOSX::keyboard_get_layout_count() const {
+ if (keyboard_layout_dirty) {
+ _update_keyboard_layouts();
+ }
+ return kbd_layouts.size();
+}
+void DisplayServerOSX::keyboard_set_current_layout(int p_index) {
if (keyboard_layout_dirty) {
- layout = LATIN_KEYBOARD_QWERTY;
+ _update_keyboard_layouts();
+ }
+
+ ERR_FAIL_INDEX(p_index, kbd_layouts.size());
- CGKeyCode keys[] = { kVK_ANSI_Q, kVK_ANSI_W, kVK_ANSI_E, kVK_ANSI_R, kVK_ANSI_T, kVK_ANSI_Y };
- NSString *test = createStringForKeys(keys, 6);
+ NSString *cur_name = [NSString stringWithUTF8String:kbd_layouts[p_index].name.utf8().get_data()];
- if ([test isEqualToString:@"qwertz"]) {
- layout = LATIN_KEYBOARD_QWERTZ;
- } else if ([test isEqualToString:@"azerty"]) {
- layout = LATIN_KEYBOARD_AZERTY;
- } else if ([test isEqualToString:@"qzerty"]) {
- layout = LATIN_KEYBOARD_QZERTY;
- } else if ([test isEqualToString:@"',.pyf"]) {
- layout = LATIN_KEYBOARD_DVORAK;
- } else if ([test isEqualToString:@"xvlcwk"]) {
- layout = LATIN_KEYBOARD_NEO;
- } else if ([test isEqualToString:@"qwfpgj"]) {
- layout = LATIN_KEYBOARD_COLEMAK;
+ NSDictionary *filter_kbd = @{ (NSString *)kTISPropertyInputSourceType : (NSString *)kTISTypeKeyboardLayout };
+ NSArray *list_kbd = (NSArray *)TISCreateInputSourceList((CFDictionaryRef)filter_kbd, false);
+ for (NSUInteger i = 0; i < [list_kbd count]; i++) {
+ NSString *name = (NSString *)TISGetInputSourceProperty((TISInputSourceRef)[list_kbd objectAtIndex:i], kTISPropertyLocalizedName);
+ if ([name isEqualToString:cur_name]) {
+ TISSelectInputSource((TISInputSourceRef)[list_kbd objectAtIndex:i]);
+ break;
}
+ }
+ [list_kbd release];
- [test release];
+ NSDictionary *filter_ime = @{ (NSString *)kTISPropertyInputSourceType : (NSString *)kTISTypeKeyboardInputMode };
+ NSArray *list_ime = (NSArray *)TISCreateInputSourceList((CFDictionaryRef)filter_ime, false);
+ for (NSUInteger i = 0; i < [list_ime count]; i++) {
+ NSString *name = (NSString *)TISGetInputSourceProperty((TISInputSourceRef)[list_ime objectAtIndex:i], kTISPropertyLocalizedName);
+ if ([name isEqualToString:cur_name]) {
+ TISSelectInputSource((TISInputSourceRef)[list_ime objectAtIndex:i]);
+ break;
+ }
+ }
+ [list_ime release];
+}
+
+int DisplayServerOSX::keyboard_get_current_layout() const {
+ if (keyboard_layout_dirty) {
+ _update_keyboard_layouts();
+ }
- keyboard_layout_dirty = false;
- return layout;
+ return current_layout;
+}
+
+String DisplayServerOSX::keyboard_get_layout_language(int p_index) const {
+ if (keyboard_layout_dirty) {
+ _update_keyboard_layouts();
+ }
+
+ ERR_FAIL_INDEX_V(p_index, kbd_layouts.size(), "");
+ return kbd_layouts[p_index].code;
+}
+
+String DisplayServerOSX::keyboard_get_layout_name(int p_index) const {
+ if (keyboard_layout_dirty) {
+ _update_keyboard_layouts();
}
- return layout;
+ ERR_FAIL_INDEX_V(p_index, kbd_layouts.size(), "");
+ return kbd_layouts[p_index].name;
}
void DisplayServerOSX::_push_input(const Ref<InputEvent> &p_event) {
diff --git a/platform/osx/export/export.cpp b/platform/osx/export/export.cpp
index 784fba75ec..c9b01ebbb4 100644
--- a/platform/osx/export/export.cpp
+++ b/platform/osx/export/export.cpp
@@ -55,6 +55,7 @@ class EditorExportPlatformOSX : public EditorExportPlatform {
void _fix_plist(const Ref<EditorExportPreset> &p_preset, Vector<uint8_t> &plist, const String &p_binary);
void _make_icon(const Ref<Image> &p_icon, Vector<uint8_t> &p_data);
+ Error _notarize(const Ref<EditorExportPreset> &p_preset, const String &p_path);
Error _code_sign(const Ref<EditorExportPreset> &p_preset, const String &p_path);
Error _create_dmg(const String &p_dmg_path, const String &p_pkg_name, const String &p_app_path_name);
void _zip_folder_recursive(zipFile &p_zip, const String &p_root_path, const String &p_folder, const String &p_pkg_name);
@@ -66,6 +67,28 @@ class EditorExportPlatformOSX : public EditorExportPlatform {
bool use_codesign() const { return false; }
bool use_dmg() const { return false; }
#endif
+ bool is_package_name_valid(const String &p_package, String *r_error = nullptr) const {
+ String pname = p_package;
+
+ if (pname.length() == 0) {
+ if (r_error) {
+ *r_error = TTR("Identifier is missing.");
+ }
+ return false;
+ }
+
+ for (int i = 0; i < pname.length(); i++) {
+ CharType c = pname[i];
+ if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '-' || c == '.')) {
+ if (r_error) {
+ *r_error = vformat(TTR("The character '%s' is not allowed in Identifier."), String::chr(c));
+ }
+ return false;
+ }
+ }
+
+ return true;
+ }
protected:
virtual void get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features);
@@ -138,6 +161,11 @@ void EditorExportPlatformOSX::get_export_options(List<ExportOption> *r_options)
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "codesign/hardened_runtime"), true));
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/entitlements", PROPERTY_HINT_GLOBAL_FILE, "*.plist"), ""));
r_options->push_back(ExportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "codesign/custom_options"), PackedStringArray()));
+
+ r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "notarization/enable"), false));
+ r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "notarization/apple_id_name", PROPERTY_HINT_PLACEHOLDER_TEXT, "Apple ID email"), ""));
+ r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "notarization/apple_id_password", PROPERTY_HINT_PLACEHOLDER_TEXT, "Enable two-factor authentication and provide app-specific password"), ""));
+ r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "notarization/apple_team_id", PROPERTY_HINT_PLACEHOLDER_TEXT, "Provide team ID if your Apple ID belongs to multiple teams"), ""));
#endif
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "texture_format/s3tc"), true));
@@ -363,6 +391,52 @@ void EditorExportPlatformOSX::_fix_plist(const Ref<EditorExportPreset> &p_preset
- and then wrap it up in a DMG
**/
+Error EditorExportPlatformOSX::_notarize(const Ref<EditorExportPreset> &p_preset, const String &p_path) {
+#ifdef OSX_ENABLED
+ List<String> args;
+
+ args.push_back("altool");
+ args.push_back("--notarize-app");
+
+ args.push_back("--primary-bundle-id");
+ args.push_back(p_preset->get("application/identifier"));
+
+ args.push_back("--username");
+ args.push_back(p_preset->get("notarization/apple_id_name"));
+
+ args.push_back("--password");
+ args.push_back(p_preset->get("notarization/apple_id_password"));
+
+ args.push_back("--type");
+ args.push_back("osx");
+
+ if (p_preset->get("notarization/apple_team_id")) {
+ args.push_back("--asc-provider");
+ args.push_back(p_preset->get("notarization/apple_team_id"));
+ }
+
+ args.push_back("--file");
+ args.push_back(p_path);
+
+ String str;
+ Error err = OS::get_singleton()->execute("xcrun", args, true, nullptr, &str, nullptr, true);
+ ERR_FAIL_COND_V(err != OK, err);
+
+ print_line("altool (" + p_path + "):\n" + str);
+ if (str.find("RequestUUID") == -1) {
+ EditorNode::add_io_error("altool: " + str);
+ return FAILED;
+ } else {
+ print_line("Note: The notarization process generally takes less than an hour. When the process is completed, you'll receive an email.");
+ print_line(" You can check progress manually by opening a Terminal and running the following command:");
+ print_line(" \"xcrun altool --notarization-history 0 -u <your email> -p <app-specific pwd>\"");
+ }
+
+#endif
+
+ return OK;
+}
+
Error EditorExportPlatformOSX::_code_sign(const Ref<EditorExportPreset> &p_preset, const String &p_path) {
#ifdef OSX_ENABLED
List<String> args;
@@ -399,7 +473,7 @@ Error EditorExportPlatformOSX::_code_sign(const Ref<EditorExportPreset> &p_prese
Error err = OS::get_singleton()->execute("codesign", args, true, nullptr, &str, nullptr, true);
ERR_FAIL_COND_V(err != OK, err);
- print_line("codesign (" + p_path + "): " + str);
+ print_line("codesign (" + p_path + "):\n" + str);
if (str.find("no identity found") != -1) {
EditorNode::add_io_error("codesign: no identity found");
return FAILED;
@@ -714,6 +788,14 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
}
}
+ bool noto_enabled = p_preset->get("notarization/enable");
+ if (err == OK && noto_enabled) {
+ if (ep.step("Sending archive for notarization", 4)) {
+ return ERR_SKIP;
+ }
+ err = _notarize(p_preset, p_path);
+ }
+
// Clean up temporary .app dir.
OS::get_singleton()->move_to_trash(tmp_app_path_name);
}
@@ -803,6 +885,41 @@ bool EditorExportPlatformOSX::can_export(const Ref<EditorExportPreset> &p_preset
valid = dvalid || rvalid;
r_missing_templates = !valid;
+ String identifier = p_preset->get("application/identifier");
+ String pn_err;
+ if (!is_package_name_valid(identifier, &pn_err)) {
+ err += TTR("Invalid bundle identifier:") + " " + pn_err + "\n";
+ valid = false;
+ }
+
+ bool sign_enabled = p_preset->get("codesign/enable");
+ if (sign_enabled) {
+ if (p_preset->get("codesign/identity") == "") {
+ err += TTR("Codesign: identity not specified.") + "\n";
+ valid = false;
+ }
+ }
+ bool noto_enabled = p_preset->get("notarization/enable");
+ if (noto_enabled) {
+ if (!sign_enabled) {
+ err += TTR("Notarization: code signing required.") + "\n";
+ valid = false;
+ }
+ bool hr_enabled = p_preset->get("codesign/hardened_runtime");
+ if (!hr_enabled) {
+ err += TTR("Notarization: hardened runtime required.") + "\n";
+ valid = false;
+ }
+ if (p_preset->get("notarization/apple_id_name") == "") {
+ err += TTR("Notarization: Apple ID name not specified.") + "\n";
+ valid = false;
+ }
+ if (p_preset->get("notarization/apple_id_password") == "") {
+ err += TTR("Notarization: Apple ID password not specified.") + "\n";
+ valid = false;
+ }
+ }
+
if (!err.empty()) {
r_error = err;
}
diff --git a/platform/uwp/export/export.cpp b/platform/uwp/export/export.cpp
index db42908f89..cb4716bd65 100644
--- a/platform/uwp/export/export.cpp
+++ b/platform/uwp/export/export.cpp
@@ -743,23 +743,7 @@ class EditorExportPlatformUWP : public EditorExportPlatform {
// TODO: Add resource creation or image rescaling to enable other scales:
// 1.25, 1.5, 2.0
- real_t scales[] = { 1.0 };
- bool valid_w = false;
- bool valid_h = false;
-
- for (int i = 0; i < 1; i++) {
- int w = ceil(p_width * scales[i]);
- int h = ceil(p_height * scales[i]);
-
- if (w == p_image->get_width()) {
- valid_w = true;
- }
- if (h == p_image->get_height()) {
- valid_h = true;
- }
- }
-
- return valid_w && valid_h;
+ return p_width == p_image->get_width() && p_height == p_image->get_height();
}
Vector<uint8_t> _fix_manifest(const Ref<EditorExportPreset> &p_preset, const Vector<uint8_t> &p_template, bool p_give_internet) const {
diff --git a/platform/uwp/os_uwp.cpp b/platform/uwp/os_uwp.cpp
index 7bd67d3726..ee25754704 100644
--- a/platform/uwp/os_uwp.cpp
+++ b/platform/uwp/os_uwp.cpp
@@ -535,11 +535,28 @@ void OS_UWP::delay_usec(uint32_t p_usec) const {
uint64_t OS_UWP::get_ticks_usec() const {
uint64_t ticks;
- uint64_t time;
+
// This is the number of clock ticks since start
QueryPerformanceCounter((LARGE_INTEGER *)&ticks);
+
// Divide by frequency to get the time in seconds
- time = ticks * 1000000L / ticks_per_second;
+ // original calculation shown below is subject to overflow
+ // with high ticks_per_second and a number of days since the last reboot.
+ // time = ticks * 1000000L / ticks_per_second;
+
+ // we can prevent this by either using 128 bit math
+ // or separating into a calculation for seconds, and the fraction
+ uint64_t seconds = ticks / ticks_per_second;
+
+ // compiler will optimize these two into one divide
+ uint64_t leftover = ticks % ticks_per_second;
+
+ // remainder
+ uint64_t time = (leftover * 1000000L) / ticks_per_second;
+
+ // seconds
+ time += seconds * 1000000L;
+
// Subtract the time at game start to get
// the time since the game started
time -= ticks_start;
diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp
index 9d8344fa7e..0b7130db74 100644
--- a/platform/windows/display_server_windows.cpp
+++ b/platform/windows/display_server_windows.cpp
@@ -1372,70 +1372,99 @@ void DisplayServerWindows::enable_for_stealing_focus(OS::ProcessID pid) {
AllowSetForegroundWindow(pid);
}
-DisplayServer::LatinKeyboardVariant DisplayServerWindows::get_latin_keyboard_variant() const {
- _THREAD_SAFE_METHOD_
+int DisplayServerWindows::keyboard_get_layout_count() const {
+ return GetKeyboardLayoutList(0, NULL);
+}
- unsigned long azerty[] = {
- 0x00020401, // Arabic (102) AZERTY
- 0x0001080c, // Belgian (Comma)
- 0x0000080c, // Belgian French
- 0x0000040c, // French
- 0 // <--- STOP MARK
- };
- unsigned long qwertz[] = {
- 0x0000041a, // Croation
- 0x00000405, // Czech
- 0x00000407, // German
- 0x00010407, // German (IBM)
- 0x0000040e, // Hungarian
- 0x0000046e, // Luxembourgish
- 0x00010415, // Polish (214)
- 0x00000418, // Romanian (Legacy)
- 0x0000081a, // Serbian (Latin)
- 0x0000041b, // Slovak
- 0x00000424, // Slovenian
- 0x0001042e, // Sorbian Extended
- 0x0002042e, // Sorbian Standard
- 0x0000042e, // Sorbian Standard (Legacy)
- 0x0000100c, // Swiss French
- 0x00000807, // Swiss German
- 0 // <--- STOP MARK
- };
- unsigned long dvorak[] = {
- 0x00010409, // US-Dvorak
- 0x00030409, // US-Dvorak for left hand
- 0x00040409, // US-Dvorak for right hand
- 0 // <--- STOP MARK
- };
+int DisplayServerWindows::keyboard_get_current_layout() const {
+ HKL cur_layout = GetKeyboardLayout(0);
+
+ int layout_count = GetKeyboardLayoutList(0, NULL);
+ HKL *layouts = (HKL *)memalloc(layout_count * sizeof(HKL));
+ GetKeyboardLayoutList(layout_count, layouts);
+
+ for (int i = 0; i < layout_count; i++) {
+ if (cur_layout == layouts[i]) {
+ memfree(layouts);
+ return i;
+ }
+ }
+ memfree(layouts);
+ return -1;
+}
+
+void DisplayServerWindows::keyboard_set_current_layout(int p_index) {
+ int layout_count = GetKeyboardLayoutList(0, NULL);
+
+ ERR_FAIL_INDEX(p_index, layout_count);
+
+ HKL *layouts = (HKL *)memalloc(layout_count * sizeof(HKL));
+ GetKeyboardLayoutList(layout_count, layouts);
+ ActivateKeyboardLayout(layouts[p_index], KLF_SETFORPROCESS);
+ memfree(layouts);
+}
+
+String DisplayServerWindows::keyboard_get_layout_language(int p_index) const {
+ int layout_count = GetKeyboardLayoutList(0, NULL);
- char name[KL_NAMELENGTH + 1];
- name[0] = 0;
- GetKeyboardLayoutNameA(name);
+ ERR_FAIL_INDEX_V(p_index, layout_count, "");
- unsigned long hex = strtoul(name, nullptr, 16);
+ HKL *layouts = (HKL *)memalloc(layout_count * sizeof(HKL));
+ GetKeyboardLayoutList(layout_count, layouts);
- int i = 0;
- while (azerty[i] != 0) {
- if (azerty[i] == hex)
- return LATIN_KEYBOARD_AZERTY;
- i++;
+ wchar_t buf[LOCALE_NAME_MAX_LENGTH];
+ memset(buf, 0, LOCALE_NAME_MAX_LENGTH * sizeof(wchar_t));
+ LCIDToLocaleName(MAKELCID(LOWORD(layouts[p_index]), SORT_DEFAULT), buf, LOCALE_NAME_MAX_LENGTH, 0);
+
+ memfree(layouts);
+
+ return String(buf).substr(0, 2);
+}
+
+String _get_full_layout_name_from_registry(HKL p_layout) {
+ String id = "SYSTEM\\CurrentControlSet\\Control\\Keyboard Layouts\\" + String::num_int64((int64_t)p_layout, 16, false).lpad(8, "0");
+ String ret;
+
+ HKEY hkey;
+ wchar_t layout_text[1024];
+ memset(layout_text, 0, 1024 * sizeof(wchar_t));
+
+ if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, (LPCWSTR)id.c_str(), 0, KEY_QUERY_VALUE, &hkey) != ERROR_SUCCESS) {
+ return ret;
}
- i = 0;
- while (qwertz[i] != 0) {
- if (qwertz[i] == hex)
- return LATIN_KEYBOARD_QWERTZ;
- i++;
+ DWORD buffer = 1024;
+ DWORD vtype = REG_SZ;
+ if (RegQueryValueExW(hkey, L"Layout Text", NULL, &vtype, (LPBYTE)layout_text, &buffer) == ERROR_SUCCESS) {
+ ret = String(layout_text);
}
+ RegCloseKey(hkey);
+ return ret;
+}
+
+String DisplayServerWindows::keyboard_get_layout_name(int p_index) const {
+ int layout_count = GetKeyboardLayoutList(0, NULL);
+
+ ERR_FAIL_INDEX_V(p_index, layout_count, "");
+
+ HKL *layouts = (HKL *)memalloc(layout_count * sizeof(HKL));
+ GetKeyboardLayoutList(layout_count, layouts);
- i = 0;
- while (dvorak[i] != 0) {
- if (dvorak[i] == hex)
- return LATIN_KEYBOARD_DVORAK;
- i++;
+ String ret = _get_full_layout_name_from_registry(layouts[p_index]); // Try reading full name from Windows registry, fallback to locale name if failed (e.g. on Wine).
+ if (ret == String()) {
+ wchar_t buf[LOCALE_NAME_MAX_LENGTH];
+ memset(buf, 0, LOCALE_NAME_MAX_LENGTH * sizeof(wchar_t));
+ LCIDToLocaleName(MAKELCID(LOWORD(layouts[p_index]), SORT_DEFAULT), buf, LOCALE_NAME_MAX_LENGTH, 0);
+
+ wchar_t name[1024];
+ memset(name, 0, 1024 * sizeof(wchar_t));
+ GetLocaleInfoEx(buf, LOCALE_SLOCALIZEDDISPLAYNAME, (LPWSTR)&name, 1024);
+
+ ret = String(name);
}
+ memfree(layouts);
- return LATIN_KEYBOARD_QWERTY;
+ return ret;
}
void DisplayServerWindows::process_events() {
diff --git a/platform/windows/display_server_windows.h b/platform/windows/display_server_windows.h
index caf8598dc2..995ced0809 100644
--- a/platform/windows/display_server_windows.h
+++ b/platform/windows/display_server_windows.h
@@ -523,7 +523,11 @@ public:
virtual void enable_for_stealing_focus(OS::ProcessID pid);
- virtual LatinKeyboardVariant get_latin_keyboard_variant() const;
+ virtual int keyboard_get_layout_count() const;
+ virtual int keyboard_get_current_layout() const;
+ virtual void keyboard_set_current_layout(int p_index);
+ virtual String keyboard_get_layout_language(int p_index) const;
+ virtual String keyboard_get_layout_name(int p_index) const;
virtual void process_events();
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index 0dab0c601a..9c1b8f2949 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -343,55 +343,21 @@ OS::TimeZoneInfo OS_Windows::get_time_zone_info() const {
return ret;
}
-uint64_t OS_Windows::get_unix_time() const {
- FILETIME ft;
- SYSTEMTIME st;
- GetSystemTime(&st);
- SystemTimeToFileTime(&st, &ft);
-
- SYSTEMTIME ep;
- ep.wYear = 1970;
- ep.wMonth = 1;
- ep.wDayOfWeek = 4;
- ep.wDay = 1;
- ep.wHour = 0;
- ep.wMinute = 0;
- ep.wSecond = 0;
- ep.wMilliseconds = 0;
- FILETIME fep;
- SystemTimeToFileTime(&ep, &fep);
-
- // Type punning through unions (rather than pointer cast) as per:
- // https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-filetime#remarks
- ULARGE_INTEGER ft_punning;
- ft_punning.LowPart = ft.dwLowDateTime;
- ft_punning.HighPart = ft.dwHighDateTime;
-
- ULARGE_INTEGER fep_punning;
- fep_punning.LowPart = fep.dwLowDateTime;
- fep_punning.HighPart = fep.dwHighDateTime;
-
- return (ft_punning.QuadPart - fep_punning.QuadPart) / 10000000;
-};
-
-uint64_t OS_Windows::get_system_time_secs() const {
- return get_system_time_msecs() / 1000;
-}
-
-uint64_t OS_Windows::get_system_time_msecs() const {
- const uint64_t WINDOWS_TICK = 10000;
- const uint64_t MSEC_TO_UNIX_EPOCH = 11644473600000LL;
+double OS_Windows::get_unix_time() const {
+ // 1 Windows tick is 100ns
+ const uint64_t WINDOWS_TICKS_PER_SECOND = 10000000;
+ const uint64_t TICKS_TO_UNIX_EPOCH = 116444736000000000LL;
SYSTEMTIME st;
GetSystemTime(&st);
FILETIME ft;
SystemTimeToFileTime(&st, &ft);
- uint64_t ret;
- ret = ft.dwHighDateTime;
- ret <<= 32;
- ret |= ft.dwLowDateTime;
+ uint64_t ticks_time;
+ ticks_time = ft.dwHighDateTime;
+ ticks_time <<= 32;
+ ticks_time |= ft.dwLowDateTime;
- return (uint64_t)(ret / WINDOWS_TICK - MSEC_TO_UNIX_EPOCH);
+ return (double)(ticks_time - TICKS_TO_UNIX_EPOCH) / WINDOWS_TICKS_PER_SECOND;
}
void OS_Windows::delay_usec(uint32_t p_usec) const {
@@ -403,12 +369,29 @@ void OS_Windows::delay_usec(uint32_t p_usec) const {
uint64_t OS_Windows::get_ticks_usec() const {
uint64_t ticks;
- uint64_t time;
+
// This is the number of clock ticks since start
if (!QueryPerformanceCounter((LARGE_INTEGER *)&ticks))
ticks = (UINT64)timeGetTime();
+
// Divide by frequency to get the time in seconds
- time = ticks * 1000000L / ticks_per_second;
+ // original calculation shown below is subject to overflow
+ // with high ticks_per_second and a number of days since the last reboot.
+ // time = ticks * 1000000L / ticks_per_second;
+
+ // we can prevent this by either using 128 bit math
+ // or separating into a calculation for seconds, and the fraction
+ uint64_t seconds = ticks / ticks_per_second;
+
+ // compiler will optimize these two into one divide
+ uint64_t leftover = ticks % ticks_per_second;
+
+ // remainder
+ uint64_t time = (leftover * 1000000L) / ticks_per_second;
+
+ // seconds
+ time += seconds * 1000000L;
+
// Subtract the time at game start to get
// the time since the game started
time -= ticks_start;
diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h
index 11e3533bfd..910a83539a 100644
--- a/platform/windows/os_windows.h
+++ b/platform/windows/os_windows.h
@@ -129,9 +129,7 @@ public:
virtual Date get_date(bool utc) const;
virtual Time get_time(bool utc) const;
virtual TimeZoneInfo get_time_zone_info() const;
- virtual uint64_t get_unix_time() const;
- virtual uint64_t get_system_time_secs() const;
- virtual uint64_t get_system_time_msecs() const;
+ virtual double get_unix_time() const;
virtual Error set_cwd(const String &p_cwd);
diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp
index 8f69676da4..68e99445d8 100644
--- a/scene/2d/camera_2d.cpp
+++ b/scene/2d/camera_2d.cpp
@@ -343,7 +343,9 @@ void Camera2D::_notification(int p_what) {
void Camera2D::set_offset(const Vector2 &p_offset) {
offset = p_offset;
+ Point2 old_smoothed_camera_pos = smoothed_camera_pos;
_update_scroll();
+ smoothed_camera_pos = old_smoothed_camera_pos;
}
Vector2 Camera2D::get_offset() const {
@@ -361,7 +363,9 @@ Camera2D::AnchorMode Camera2D::get_anchor_mode() const {
void Camera2D::set_rotating(bool p_rotating) {
rotating = p_rotating;
+ Point2 old_smoothed_camera_pos = smoothed_camera_pos;
_update_scroll();
+ smoothed_camera_pos = old_smoothed_camera_pos;
}
bool Camera2D::is_rotating() const {
@@ -522,7 +526,9 @@ bool Camera2D::is_v_drag_enabled() const {
void Camera2D::set_v_offset(float p_offset) {
v_ofs = p_offset;
v_offset_changed = true;
+ Point2 old_smoothed_camera_pos = smoothed_camera_pos;
_update_scroll();
+ smoothed_camera_pos = old_smoothed_camera_pos;
}
float Camera2D::get_v_offset() const {
@@ -532,7 +538,9 @@ float Camera2D::get_v_offset() const {
void Camera2D::set_h_offset(float p_offset) {
h_ofs = p_offset;
h_offset_changed = true;
+ Point2 old_smoothed_camera_pos = smoothed_camera_pos;
_update_scroll();
+ smoothed_camera_pos = old_smoothed_camera_pos;
}
float Camera2D::get_h_offset() const {
diff --git a/scene/2d/joints_2d.cpp b/scene/2d/joints_2d.cpp
index 0d126b949d..8df72d7aac 100644
--- a/scene/2d/joints_2d.cpp
+++ b/scene/2d/joints_2d.cpp
@@ -309,10 +309,10 @@ RID DampedSpringJoint2D::_configure_joint(PhysicsBody2D *body_a, PhysicsBody2D *
RID dsj = PhysicsServer2D::get_singleton()->damped_spring_joint_create(anchor_A, anchor_B, body_a->get_rid(), body_b->get_rid());
if (rest_length) {
- PhysicsServer2D::get_singleton()->damped_string_joint_set_param(dsj, PhysicsServer2D::DAMPED_STRING_REST_LENGTH, rest_length);
+ PhysicsServer2D::get_singleton()->damped_spring_joint_set_param(dsj, PhysicsServer2D::DAMPED_SPRING_REST_LENGTH, rest_length);
}
- PhysicsServer2D::get_singleton()->damped_string_joint_set_param(dsj, PhysicsServer2D::DAMPED_STRING_STIFFNESS, stiffness);
- PhysicsServer2D::get_singleton()->damped_string_joint_set_param(dsj, PhysicsServer2D::DAMPED_STRING_DAMPING, damping);
+ PhysicsServer2D::get_singleton()->damped_spring_joint_set_param(dsj, PhysicsServer2D::DAMPED_SPRING_STIFFNESS, stiffness);
+ PhysicsServer2D::get_singleton()->damped_spring_joint_set_param(dsj, PhysicsServer2D::DAMPED_SPRING_DAMPING, damping);
return dsj;
}
@@ -330,7 +330,7 @@ void DampedSpringJoint2D::set_rest_length(real_t p_rest_length) {
rest_length = p_rest_length;
update();
if (get_joint().is_valid()) {
- PhysicsServer2D::get_singleton()->damped_string_joint_set_param(get_joint(), PhysicsServer2D::DAMPED_STRING_REST_LENGTH, p_rest_length ? p_rest_length : length);
+ PhysicsServer2D::get_singleton()->damped_spring_joint_set_param(get_joint(), PhysicsServer2D::DAMPED_SPRING_REST_LENGTH, p_rest_length ? p_rest_length : length);
}
}
@@ -342,7 +342,7 @@ void DampedSpringJoint2D::set_stiffness(real_t p_stiffness) {
stiffness = p_stiffness;
update();
if (get_joint().is_valid()) {
- PhysicsServer2D::get_singleton()->damped_string_joint_set_param(get_joint(), PhysicsServer2D::DAMPED_STRING_STIFFNESS, p_stiffness);
+ PhysicsServer2D::get_singleton()->damped_spring_joint_set_param(get_joint(), PhysicsServer2D::DAMPED_SPRING_STIFFNESS, p_stiffness);
}
}
@@ -354,7 +354,7 @@ void DampedSpringJoint2D::set_damping(real_t p_damping) {
damping = p_damping;
update();
if (get_joint().is_valid()) {
- PhysicsServer2D::get_singleton()->damped_string_joint_set_param(get_joint(), PhysicsServer2D::DAMPED_STRING_DAMPING, p_damping);
+ PhysicsServer2D::get_singleton()->damped_spring_joint_set_param(get_joint(), PhysicsServer2D::DAMPED_SPRING_DAMPING, p_damping);
}
}
diff --git a/scene/2d/path_2d.cpp b/scene/2d/path_2d.cpp
index 00e9af3bb7..f2f549e851 100644
--- a/scene/2d/path_2d.cpp
+++ b/scene/2d/path_2d.cpp
@@ -149,11 +149,7 @@ void Path2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_curve", "curve"), &Path2D::set_curve);
ClassDB::bind_method(D_METHOD("get_curve"), &Path2D::get_curve);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve2D"), "set_curve", "get_curve");
-}
-
-Path2D::Path2D() {
- set_curve(Ref<Curve2D>(memnew(Curve2D))); //create one by default
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve2D", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT), "set_curve", "get_curve");
}
/////////////////////////////////////////////////////////////////////////////////
diff --git a/scene/2d/path_2d.h b/scene/2d/path_2d.h
index 288ef698e7..38fcca0323 100644
--- a/scene/2d/path_2d.h
+++ b/scene/2d/path_2d.h
@@ -55,7 +55,7 @@ public:
void set_curve(const Ref<Curve2D> &p_curve);
Ref<Curve2D> get_curve() const;
- Path2D();
+ Path2D() {}
};
class PathFollow2D : public Node2D {
diff --git a/scene/2d/physics_body_2d.cpp b/scene/2d/physics_body_2d.cpp
index ae448129bc..84560b843b 100644
--- a/scene/2d/physics_body_2d.cpp
+++ b/scene/2d/physics_body_2d.cpp
@@ -997,6 +997,7 @@ bool KinematicBody2D::move_and_collide(const Vector2 &p_motion, bool p_infinite_
Vector2 KinematicBody2D::move_and_slide(const Vector2 &p_linear_velocity, const Vector2 &p_up_direction, bool p_stop_on_slope, int p_max_slides, float p_floor_max_angle, bool p_infinite_inertia) {
Vector2 body_velocity = p_linear_velocity;
Vector2 body_velocity_normal = body_velocity.normalized();
+ Vector2 up_direction = p_up_direction.normalized();
Vector2 current_floor_velocity = floor_velocity;
if (on_floor && on_floor_body.is_valid()) {
@@ -1043,11 +1044,11 @@ Vector2 KinematicBody2D::move_and_slide(const Vector2 &p_linear_velocity, const
colliders.push_back(collision);
motion = collision.remainder;
- if (p_up_direction == Vector2()) {
+ if (up_direction == Vector2()) {
//all is a wall
on_wall = true;
} else {
- if (Math::acos(collision.normal.dot(p_up_direction)) <= p_floor_max_angle + FLOOR_ANGLE_THRESHOLD) { //floor
+ if (Math::acos(collision.normal.dot(up_direction)) <= p_floor_max_angle + FLOOR_ANGLE_THRESHOLD) { //floor
on_floor = true;
floor_normal = collision.normal;
@@ -1055,14 +1056,14 @@ Vector2 KinematicBody2D::move_and_slide(const Vector2 &p_linear_velocity, const
floor_velocity = collision.collider_vel;
if (p_stop_on_slope) {
- if ((body_velocity_normal + p_up_direction).length() < 0.01 && collision.travel.length() < 1) {
+ if ((body_velocity_normal + up_direction).length() < 0.01 && collision.travel.length() < 1) {
Transform2D gt = get_global_transform();
- gt.elements[2] -= collision.travel.slide(p_up_direction);
+ gt.elements[2] -= collision.travel.slide(up_direction);
set_global_transform(gt);
return Vector2();
}
}
- } else if (Math::acos(collision.normal.dot(-p_up_direction)) <= p_floor_max_angle + FLOOR_ANGLE_THRESHOLD) { //ceiling
+ } else if (Math::acos(collision.normal.dot(-up_direction)) <= p_floor_max_angle + FLOOR_ANGLE_THRESHOLD) { //ceiling
on_ceiling = true;
} else {
on_wall = true;
@@ -1085,9 +1086,10 @@ Vector2 KinematicBody2D::move_and_slide(const Vector2 &p_linear_velocity, const
}
Vector2 KinematicBody2D::move_and_slide_with_snap(const Vector2 &p_linear_velocity, const Vector2 &p_snap, const Vector2 &p_up_direction, bool p_stop_on_slope, int p_max_slides, float p_floor_max_angle, bool p_infinite_inertia) {
+ Vector2 up_direction = p_up_direction.normalized();
bool was_on_floor = on_floor;
- Vector2 ret = move_and_slide(p_linear_velocity, p_up_direction, p_stop_on_slope, p_max_slides, p_floor_max_angle, p_infinite_inertia);
+ Vector2 ret = move_and_slide(p_linear_velocity, up_direction, p_stop_on_slope, p_max_slides, p_floor_max_angle, p_infinite_inertia);
if (!was_on_floor || p_snap == Vector2()) {
return ret;
}
@@ -1097,8 +1099,8 @@ Vector2 KinematicBody2D::move_and_slide_with_snap(const Vector2 &p_linear_veloci
if (move_and_collide(p_snap, p_infinite_inertia, col, false, true)) {
bool apply = true;
- if (p_up_direction != Vector2()) {
- if (Math::acos(p_up_direction.normalized().dot(col.normal)) < p_floor_max_angle) {
+ if (up_direction != Vector2()) {
+ if (Math::acos(col.normal.dot(up_direction)) <= p_floor_max_angle + FLOOR_ANGLE_THRESHOLD) {
on_floor = true;
floor_normal = col.normal;
on_floor_body = col.collider_rid;
@@ -1106,7 +1108,7 @@ Vector2 KinematicBody2D::move_and_slide_with_snap(const Vector2 &p_linear_veloci
if (p_stop_on_slope) {
// move and collide may stray the object a bit because of pre un-stucking,
// so only ensure that motion happens on floor direction in this case.
- col.travel = p_up_direction * p_up_direction.dot(col.travel);
+ col.travel = up_direction * up_direction.dot(col.travel);
}
} else {
diff --git a/scene/3d/path_3d.cpp b/scene/3d/path_3d.cpp
index dcfdf8efcf..40d988ff9f 100644
--- a/scene/3d/path_3d.cpp
+++ b/scene/3d/path_3d.cpp
@@ -77,15 +77,11 @@ void Path3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_curve", "curve"), &Path3D::set_curve);
ClassDB::bind_method(D_METHOD("get_curve"), &Path3D::get_curve);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve3D"), "set_curve", "get_curve");
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve3D", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT), "set_curve", "get_curve");
ADD_SIGNAL(MethodInfo("curve_changed"));
}
-Path3D::Path3D() {
- set_curve(Ref<Curve3D>(memnew(Curve3D))); //create one by default
-}
-
//////////////
void PathFollow3D::_update_transform() {
diff --git a/scene/3d/path_3d.h b/scene/3d/path_3d.h
index 5a33016bc6..7f227a8a6f 100644
--- a/scene/3d/path_3d.h
+++ b/scene/3d/path_3d.h
@@ -49,7 +49,7 @@ public:
void set_curve(const Ref<Curve3D> &p_curve);
Ref<Curve3D> get_curve() const;
- Path3D();
+ Path3D() {}
};
class PathFollow3D : public Node3D {
diff --git a/scene/3d/physics_body_3d.cpp b/scene/3d/physics_body_3d.cpp
index de8f1eea2e..6320af21eb 100644
--- a/scene/3d/physics_body_3d.cpp
+++ b/scene/3d/physics_body_3d.cpp
@@ -945,6 +945,7 @@ bool KinematicBody3D::move_and_collide(const Vector3 &p_motion, bool p_infinite_
Vector3 KinematicBody3D::move_and_slide(const Vector3 &p_linear_velocity, const Vector3 &p_up_direction, bool p_stop_on_slope, int p_max_slides, float p_floor_max_angle, bool p_infinite_inertia) {
Vector3 body_velocity = p_linear_velocity;
Vector3 body_velocity_normal = body_velocity.normalized();
+ Vector3 up_direction = p_up_direction.normalized();
for (int i = 0; i < 3; i++) {
if (locked_axis & (1 << i)) {
@@ -988,11 +989,11 @@ Vector3 KinematicBody3D::move_and_slide(const Vector3 &p_linear_velocity, const
colliders.push_back(collision);
motion = collision.remainder;
- if (p_up_direction == Vector3()) {
+ if (up_direction == Vector3()) {
//all is a wall
on_wall = true;
} else {
- if (Math::acos(collision.normal.dot(p_up_direction)) <= p_floor_max_angle + FLOOR_ANGLE_THRESHOLD) { //floor
+ if (Math::acos(collision.normal.dot(up_direction)) <= p_floor_max_angle + FLOOR_ANGLE_THRESHOLD) { //floor
on_floor = true;
floor_normal = collision.normal;
@@ -1000,14 +1001,14 @@ Vector3 KinematicBody3D::move_and_slide(const Vector3 &p_linear_velocity, const
floor_velocity = collision.collider_vel;
if (p_stop_on_slope) {
- if ((body_velocity_normal + p_up_direction).length() < 0.01 && collision.travel.length() < 1) {
+ if ((body_velocity_normal + up_direction).length() < 0.01 && collision.travel.length() < 1) {
Transform gt = get_global_transform();
- gt.origin -= collision.travel.slide(p_up_direction);
+ gt.origin -= collision.travel.slide(up_direction);
set_global_transform(gt);
return Vector3();
}
}
- } else if (Math::acos(collision.normal.dot(-p_up_direction)) <= p_floor_max_angle + FLOOR_ANGLE_THRESHOLD) { //ceiling
+ } else if (Math::acos(collision.normal.dot(-up_direction)) <= p_floor_max_angle + FLOOR_ANGLE_THRESHOLD) { //ceiling
on_ceiling = true;
} else {
on_wall = true;
@@ -1036,9 +1037,10 @@ Vector3 KinematicBody3D::move_and_slide(const Vector3 &p_linear_velocity, const
}
Vector3 KinematicBody3D::move_and_slide_with_snap(const Vector3 &p_linear_velocity, const Vector3 &p_snap, const Vector3 &p_up_direction, bool p_stop_on_slope, int p_max_slides, float p_floor_max_angle, bool p_infinite_inertia) {
+ Vector3 up_direction = p_up_direction.normalized();
bool was_on_floor = on_floor;
- Vector3 ret = move_and_slide(p_linear_velocity, p_up_direction, p_stop_on_slope, p_max_slides, p_floor_max_angle, p_infinite_inertia);
+ Vector3 ret = move_and_slide(p_linear_velocity, up_direction, p_stop_on_slope, p_max_slides, p_floor_max_angle, p_infinite_inertia);
if (!was_on_floor || p_snap == Vector3()) {
return ret;
}
@@ -1048,8 +1050,8 @@ Vector3 KinematicBody3D::move_and_slide_with_snap(const Vector3 &p_linear_veloci
if (move_and_collide(p_snap, p_infinite_inertia, col, false, true)) {
bool apply = true;
- if (p_up_direction != Vector3()) {
- if (Math::acos(p_up_direction.normalized().dot(col.normal)) < p_floor_max_angle) {
+ if (up_direction != Vector3()) {
+ if (Math::acos(col.normal.dot(up_direction)) <= p_floor_max_angle + FLOOR_ANGLE_THRESHOLD) {
on_floor = true;
floor_normal = col.normal;
on_floor_body = col.collider_rid;
@@ -1057,7 +1059,7 @@ Vector3 KinematicBody3D::move_and_slide_with_snap(const Vector3 &p_linear_veloci
if (p_stop_on_slope) {
// move and collide may stray the object a bit because of pre un-stucking,
// so only ensure that motion happens on floor direction in this case.
- col.travel = col.travel.project(p_up_direction);
+ col.travel = col.travel.project(up_direction);
}
} else {
apply = false; //snapped with floor direction, but did not snap to a floor, do not snap.
diff --git a/scene/3d/skeleton_3d.cpp b/scene/3d/skeleton_3d.cpp
index a09424fa17..6723ca04b9 100644
--- a/scene/3d/skeleton_3d.cpp
+++ b/scene/3d/skeleton_3d.cpp
@@ -67,6 +67,8 @@ SkinReference::~SkinReference() {
RS::get_singleton()->free(skeleton);
}
+///////////////////////////////////////
+
bool Skeleton3D::_set(const StringName &p_path, const Variant &p_value) {
String path = p_path;
@@ -853,6 +855,15 @@ Ref<SkinReference> Skeleton3D::register_skin(const Ref<Skin> &p_skin) {
return skin_ref;
}
+// helper functions
+Transform Skeleton3D::bone_transform_to_world_transform(Transform p_bone_transform) {
+ return get_global_transform() * p_bone_transform;
+}
+
+Transform Skeleton3D::world_transform_to_bone_transform(Transform p_world_transform) {
+ return get_global_transform().affine_inverse() * p_world_transform;
+}
+
void Skeleton3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_bone_process_orders"), &Skeleton3D::get_bone_process_orders);
ClassDB::bind_method(D_METHOD("add_bone", "name"), &Skeleton3D::add_bone);
@@ -892,6 +903,9 @@ void Skeleton3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_bone_custom_pose", "bone_idx"), &Skeleton3D::get_bone_custom_pose);
ClassDB::bind_method(D_METHOD("set_bone_custom_pose", "bone_idx", "custom_pose"), &Skeleton3D::set_bone_custom_pose);
+ ClassDB::bind_method(D_METHOD("bone_transform_to_world_transform", "bone_transform"), &Skeleton3D::bone_transform_to_world_transform);
+ ClassDB::bind_method(D_METHOD("world_transform_to_bone_transform", "world_transform"), &Skeleton3D::world_transform_to_bone_transform);
+
#ifndef _3D_DISABLED
ClassDB::bind_method(D_METHOD("set_animate_physical_bones"), &Skeleton3D::set_animate_physical_bones);
diff --git a/scene/3d/skeleton_3d.h b/scene/3d/skeleton_3d.h
index 66706a9450..a21891a32e 100644
--- a/scene/3d/skeleton_3d.h
+++ b/scene/3d/skeleton_3d.h
@@ -71,10 +71,6 @@ class Skeleton3D : public Node3D {
private:
friend class SkinReference;
- Set<SkinReference *> skin_bindings;
-
- void _skin_changed();
-
struct Bone {
String name;
@@ -116,6 +112,10 @@ private:
}
};
+ Set<SkinReference *> skin_bindings;
+
+ void _skin_changed();
+
bool animate_physical_bones;
Vector<Bone> bones;
Vector<int> process_order;
@@ -200,6 +200,10 @@ public:
Ref<SkinReference> register_skin(const Ref<Skin> &p_skin);
+ // Helper functions
+ Transform bone_transform_to_world_transform(Transform p_transform);
+ Transform world_transform_to_bone_transform(Transform p_transform);
+
#ifndef _3D_DISABLED
// Physical bone API
@@ -213,7 +217,7 @@ public:
PhysicalBone3D *get_physical_bone_parent(int p_bone);
private:
- /// This is a slow API os it's cached
+ /// This is a slow API, so it's cached
PhysicalBone3D *_get_physical_bone_parent(int p_bone);
void _rebuild_physical_bones_cache();
diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp
index 4e56f1acf0..319d0171b3 100644
--- a/scene/animation/animation_player.cpp
+++ b/scene/animation/animation_player.cpp
@@ -396,7 +396,7 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float
Animation::UpdateMode update_mode = a->value_track_get_update_mode(i);
if (update_mode == Animation::UPDATE_CAPTURE) {
- if (p_started) {
+ if (p_started || pa->capture == Variant()) {
pa->capture = pa->object->get_indexed(pa->subpath);
}
diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp
index be6b542ae1..630f3c8ff6 100644
--- a/scene/gui/file_dialog.cpp
+++ b/scene/gui/file_dialog.cpp
@@ -402,7 +402,9 @@ void FileDialog::update_file_list() {
TreeItem *root = tree->create_item();
Ref<Texture2D> folder = vbox->get_theme_icon("folder", "FileDialog");
+ Ref<Texture2D> file_icon = vbox->get_theme_icon("file", "FileDialog");
const Color folder_color = vbox->get_theme_color("folder_icon_modulate", "FileDialog");
+ const Color file_color = vbox->get_theme_color("file_icon_modulate", "FileDialog");
List<String> files;
List<String> dirs;
@@ -491,7 +493,10 @@ void FileDialog::update_file_list() {
if (get_icon_func) {
Ref<Texture2D> icon = get_icon_func(base_dir.plus_file(files.front()->get()));
ti->set_icon(0, icon);
+ } else {
+ ti->set_icon(0, file_icon);
}
+ ti->set_icon_modulate(0, file_color);
if (mode == FILE_MODE_OPEN_DIR) {
ti->set_custom_color(0, vbox->get_theme_color("files_disabled", "FileDialog"));
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp
index fbacb3ed9e..ee6783167a 100644
--- a/scene/gui/line_edit.cpp
+++ b/scene/gui/line_edit.cpp
@@ -1211,6 +1211,8 @@ void LineEdit::delete_char() {
}
void LineEdit::delete_text(int p_from_column, int p_to_column) {
+ ERR_FAIL_COND_MSG(p_from_column < 0 || p_from_column > p_to_column || p_to_column > text.length(),
+ vformat("Positional parameters (from: %d, to: %d) are inverted or outside the text length (%d).", p_from_column, p_to_column, text.length()));
if (text.size() > 0) {
Ref<Font> font = get_theme_font("font");
if (font != nullptr) {
@@ -1783,6 +1785,8 @@ void LineEdit::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_max_length", "chars"), &LineEdit::set_max_length);
ClassDB::bind_method(D_METHOD("get_max_length"), &LineEdit::get_max_length);
ClassDB::bind_method(D_METHOD("append_at_cursor", "text"), &LineEdit::append_at_cursor);
+ ClassDB::bind_method(D_METHOD("delete_char_at_cursor"), &LineEdit::delete_char);
+ ClassDB::bind_method(D_METHOD("delete_text", "from_column", "to_column"), &LineEdit::delete_text);
ClassDB::bind_method(D_METHOD("set_editable", "enabled"), &LineEdit::set_editable);
ClassDB::bind_method(D_METHOD("is_editable"), &LineEdit::is_editable);
ClassDB::bind_method(D_METHOD("set_secret", "enabled"), &LineEdit::set_secret);
diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp
index 2f5af0eda0..92508f7fd2 100644
--- a/scene/gui/rich_text_label.cpp
+++ b/scene/gui/rich_text_label.cpp
@@ -1970,6 +1970,9 @@ void RichTextLabel::clear() {
selection.click = nullptr;
selection.active = false;
current_idx = 1;
+ if (scroll_follow) {
+ scroll_following = true;
+ }
if (fixed_width != -1) {
minimum_size_changed();
@@ -2409,6 +2412,17 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) {
}
}
+ Vector<ItemFX *> fx_items;
+ for (List<Item *>::Element *E = main->subitems.front(); E; E = E->next()) {
+ Item *subitem = static_cast<Item *>(E->get());
+ _fetch_item_fx_stack(subitem, fx_items);
+
+ if (fx_items.size()) {
+ set_process_internal(true);
+ break;
+ }
+ }
+
return OK;
}
diff --git a/scene/gui/tab_container.cpp b/scene/gui/tab_container.cpp
index 8c4d9a5ece..0d48fde642 100644
--- a/scene/gui/tab_container.cpp
+++ b/scene/gui/tab_container.cpp
@@ -435,7 +435,30 @@ void TabContainer::_notification(int p_what) {
void TabContainer::_on_theme_changed() {
if (get_tab_count() > 0) {
- set_current_tab(get_current_tab());
+ _repaint();
+ update();
+ }
+}
+
+void TabContainer::_repaint() {
+ Ref<StyleBox> sb = get_theme_stylebox("panel");
+ Vector<Control *> tabs = _get_tabs();
+ for (int i = 0; i < tabs.size(); i++) {
+ Control *c = tabs[i];
+ if (i == current) {
+ c->show();
+ c->set_anchors_and_margins_preset(Control::PRESET_WIDE);
+ if (tabs_visible) {
+ c->set_margin(MARGIN_TOP, _get_top_margin());
+ }
+ c->set_margin(Margin(MARGIN_TOP), c->get_margin(Margin(MARGIN_TOP)) + sb->get_margin(Margin(MARGIN_TOP)));
+ c->set_margin(Margin(MARGIN_LEFT), c->get_margin(Margin(MARGIN_LEFT)) + sb->get_margin(Margin(MARGIN_LEFT)));
+ c->set_margin(Margin(MARGIN_RIGHT), c->get_margin(Margin(MARGIN_RIGHT)) - sb->get_margin(Margin(MARGIN_RIGHT)));
+ c->set_margin(Margin(MARGIN_BOTTOM), c->get_margin(Margin(MARGIN_BOTTOM)) - sb->get_margin(Margin(MARGIN_BOTTOM)));
+
+ } else {
+ c->hide();
+ }
}
}
@@ -551,25 +574,7 @@ void TabContainer::set_current_tab(int p_current) {
int pending_previous = current;
current = p_current;
- Ref<StyleBox> sb = get_theme_stylebox("panel");
- Vector<Control *> tabs = _get_tabs();
- for (int i = 0; i < tabs.size(); i++) {
- Control *c = tabs[i];
- if (i == current) {
- c->show();
- c->set_anchors_and_margins_preset(Control::PRESET_WIDE);
- if (tabs_visible) {
- c->set_margin(MARGIN_TOP, _get_top_margin());
- }
- c->set_margin(Margin(MARGIN_TOP), c->get_margin(Margin(MARGIN_TOP)) + sb->get_margin(Margin(MARGIN_TOP)));
- c->set_margin(Margin(MARGIN_LEFT), c->get_margin(Margin(MARGIN_LEFT)) + sb->get_margin(Margin(MARGIN_LEFT)));
- c->set_margin(Margin(MARGIN_RIGHT), c->get_margin(Margin(MARGIN_RIGHT)) - sb->get_margin(Margin(MARGIN_RIGHT)));
- c->set_margin(Margin(MARGIN_BOTTOM), c->get_margin(Margin(MARGIN_BOTTOM)) - sb->get_margin(Margin(MARGIN_BOTTOM)));
-
- } else {
- c->hide();
- }
- }
+ _repaint();
_change_notify("current_tab");
diff --git a/scene/gui/tab_container.h b/scene/gui/tab_container.h
index e8cde74c83..55a5d35b30 100644
--- a/scene/gui/tab_container.h
+++ b/scene/gui/tab_container.h
@@ -65,6 +65,7 @@ private:
Vector<Control *> _get_tabs() const;
int _get_tab_width(int p_index) const;
void _on_theme_changed();
+ void _repaint();
void _on_mouse_exited();
void _update_current_tab();
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index 45fcb448f8..7b9db7c081 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -2364,7 +2364,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) {
if (pos.x < len) {
cache.hover_type = Cache::CLICK_TITLE;
cache.hover_index = i;
- update();
break;
}
}
@@ -2383,6 +2382,9 @@ void Tree::_gui_input(Ref<InputEvent> p_event) {
mpos.y += v_scroll->get_value();
}
+ TreeItem *old_it = cache.hover_item;
+ int old_col = cache.hover_cell;
+
int col, h, section;
TreeItem *it = _find_item_at_pos(root, mpos, col, h, section);
@@ -2397,18 +2399,21 @@ void Tree::_gui_input(Ref<InputEvent> p_event) {
}
}
- if (it != cache.hover_item) {
- cache.hover_item = it;
- update();
- }
+ cache.hover_item = it;
+ cache.hover_cell = col;
- if (it && col != cache.hover_cell) {
- cache.hover_cell = col;
- update();
+ if (it != old_it || col != old_col) {
+ // Only need to update if mouse enters/exits a button
+ bool was_over_button = old_it && old_it->cells[old_col].custom_button;
+ bool is_over_button = it && it->cells[col].custom_button;
+ if (was_over_button || is_over_button) {
+ update();
+ }
}
}
}
+ // Update if mouse enters/exits columns
if (cache.hover_type != old_hover || cache.hover_index != old_index) {
update();
}
diff --git a/scene/main/canvas_item.cpp b/scene/main/canvas_item.cpp
index 524ff346d1..721f573f39 100644
--- a/scene/main/canvas_item.cpp
+++ b/scene/main/canvas_item.cpp
@@ -1222,8 +1222,8 @@ void CanvasItem::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::INT, "light_mask", PROPERTY_HINT_LAYERS_2D_RENDER), "set_light_mask", "get_light_mask");
ADD_GROUP("Texture", "texture_");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "texture_filter", PROPERTY_HINT_ENUM, "ParentNode,Nearest,Linear,MipmapNearest,MipmapLinear,MipmapNearestAniso,MipmapLinearAniso"), "set_texture_filter", "get_texture_filter");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "texture_repeat", PROPERTY_HINT_ENUM, "ParentNode,Disabled,Enabled,Mirror"), "set_texture_repeat", "get_texture_repeat");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "texture_filter", PROPERTY_HINT_ENUM, "Inherit,Nearest,Linear,MipmapNearest,MipmapLinear,MipmapNearestAniso,MipmapLinearAniso"), "set_texture_filter", "get_texture_filter");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "texture_repeat", PROPERTY_HINT_ENUM, "Inherit,Disabled,Enabled,Mirror"), "set_texture_repeat", "get_texture_repeat");
ADD_GROUP("Material", "");
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "material", PROPERTY_HINT_RESOURCE_TYPE, "ShaderMaterial,CanvasItemMaterial"), "set_material", "get_material");
diff --git a/scene/main/node.cpp b/scene/main/node.cpp
index c9d430c656..1bf828a03b 100644
--- a/scene/main/node.cpp
+++ b/scene/main/node.cpp
@@ -2238,46 +2238,53 @@ void Node::_duplicate_and_reown(Node *p_new_parent, const Map<Node *, Node *> &p
// because re-targeting of connections from some descendant to another is not possible
// if the emitter node comes later in tree order than the receiver
void Node::_duplicate_signals(const Node *p_original, Node *p_copy) const {
- if (this != p_original && (get_owner() != p_original && get_owner() != p_original->get_owner())) {
+ if ((this != p_original) && !(p_original->is_a_parent_of(this))) {
return;
}
- List<Connection> conns;
- get_all_signal_connections(&conns);
+ List<const Node *> process_list;
+ process_list.push_back(this);
+ while (!process_list.empty()) {
+ const Node *n = process_list.front()->get();
+ process_list.pop_front();
- for (List<Connection>::Element *E = conns.front(); E; E = E->next()) {
- if (E->get().flags & CONNECT_PERSIST) {
- //user connected
- NodePath p = p_original->get_path_to(this);
- Node *copy = p_copy->get_node(p);
+ List<Connection> conns;
+ n->get_all_signal_connections(&conns);
- Node *target = Object::cast_to<Node>(E->get().callable.get_object());
- if (!target) {
- continue;
- }
- NodePath ptarget = p_original->get_path_to(target);
+ for (List<Connection>::Element *E = conns.front(); E; E = E->next()) {
+ if (E->get().flags & CONNECT_PERSIST) {
+ //user connected
+ NodePath p = p_original->get_path_to(n);
+ Node *copy = p_copy->get_node(p);
- Node *copytarget = target;
+ Node *target = Object::cast_to<Node>(E->get().callable.get_object());
+ if (!target) {
+ continue;
+ }
+ NodePath ptarget = p_original->get_path_to(target);
- // Attempt to find a path to the duplicate target, if it seems it's not part
- // of the duplicated and not yet parented hierarchy then at least try to connect
- // to the same target as the original
+ Node *copytarget = target;
- if (p_copy->has_node(ptarget)) {
- copytarget = p_copy->get_node(ptarget);
- }
+ // Attempt to find a path to the duplicate target, if it seems it's not part
+ // of the duplicated and not yet parented hierarchy then at least try to connect
+ // to the same target as the original
- if (copy && copytarget) {
- const Callable copy_callable = Callable(copytarget, E->get().callable.get_method());
- if (!copy->is_connected(E->get().signal.get_name(), copy_callable)) {
- copy->connect(E->get().signal.get_name(), copy_callable, E->get().binds, E->get().flags);
+ if (p_copy->has_node(ptarget)) {
+ copytarget = p_copy->get_node(ptarget);
+ }
+
+ if (copy && copytarget) {
+ const Callable copy_callable = Callable(copytarget, E->get().callable.get_method());
+ if (!copy->is_connected(E->get().signal.get_name(), copy_callable)) {
+ copy->connect(E->get().signal.get_name(), copy_callable, E->get().binds, E->get().flags);
+ }
}
}
}
- }
- for (int i = 0; i < get_child_count(); i++) {
- get_child(i)->_duplicate_signals(p_original, p_copy);
+ for (int i = 0; i < n->get_child_count(); i++) {
+ process_list.push_back(n->get_child(i));
+ }
}
}
diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp
index de39fac627..fd5c861eb5 100644
--- a/scene/resources/default_theme/default_theme.cpp
+++ b/scene/resources/default_theme/default_theme.cpp
@@ -726,7 +726,9 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
// FileDialog
theme->set_icon("folder", "FileDialog", make_icon(icon_folder_png));
+ theme->set_icon("file", "FileDialog", make_icon(icon_file_png));
theme->set_color("folder_icon_modulate", "FileDialog", Color(1, 1, 1));
+ theme->set_color("file_icon_modulate", "FileDialog", Color(1, 1, 1));
theme->set_color("files_disabled", "FileDialog", Color(0, 0, 0, 0.7));
// ColorPicker
diff --git a/scene/resources/default_theme/icon_file.png b/scene/resources/default_theme/icon_file.png
new file mode 100644
index 0000000000..bb4c361a8d
--- /dev/null
+++ b/scene/resources/default_theme/icon_file.png
Binary files differ
diff --git a/scene/resources/default_theme/theme_data.h b/scene/resources/default_theme/theme_data.h
index 0a4e557451..edcdb90db9 100644
--- a/scene/resources/default_theme/theme_data.h
+++ b/scene/resources/default_theme/theme_data.h
@@ -150,6 +150,10 @@ static const unsigned char icon_color_pick_png[] = {
0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x4, 0x0, 0x0, 0x0, 0xb5, 0xfa, 0x37, 0xea, 0x0, 0x0, 0x0, 0xaa, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x9d, 0x8e, 0x35, 0x82, 0x2, 0x41, 0x10, 0x45, 0x3b, 0xda, 0x3d, 0xca, 0xba, 0x44, 0x2b, 0x70, 0x9, 0xdc, 0xe1, 0x20, 0xe8, 0x91, 0x90, 0x78, 0x6e, 0x40, 0x4c, 0x82, 0x74, 0xff, 0xc2, 0x9d, 0x18, 0xa7, 0x6, 0x77, 0x7b, 0x23, 0x2d, 0xaf, 0x4c, 0xdc, 0xc, 0xbd, 0x65, 0x1e, 0x84, 0x80, 0x19, 0x55, 0x34, 0x60, 0x3e, 0xd0, 0xea, 0x17, 0x3d, 0x4a, 0xc8, 0x80, 0x1a, 0x60, 0xc2, 0x4f, 0xfd, 0x30, 0xe0, 0x1b, 0x2d, 0x16, 0xab, 0xa7, 0x2c, 0xe, 0x41, 0x68, 0xa5, 0xb9, 0xca, 0x91, 0x16, 0x2e, 0x54, 0xe0, 0x59, 0x54, 0x91, 0xfe, 0xa3, 0x3a, 0xff, 0xce, 0xab, 0x5b, 0xf, 0xa0, 0x4, 0x8f, 0x7b, 0x4c, 0xd3, 0x1b, 0xca, 0x32, 0xcc, 0x55, 0x7a, 0xf4, 0x76, 0x42, 0x2b, 0x97, 0x3e, 0xae, 0xfa, 0xdd, 0xd2, 0xd2, 0x8e, 0x72, 0xe1, 0x83, 0xaf, 0x9f, 0xa9, 0x28, 0x7d, 0x5b, 0xe2, 0x2a, 0xd, 0xc3, 0xa2, 0x78, 0xfe, 0x7d, 0x51, 0xfc, 0x0, 0x8a, 0x41, 0xcb, 0x3d, 0xb2, 0xae, 0x1c, 0xd3, 0xc, 0xa5, 0x30, 0x81, 0xc6, 0xda, 0x29, 0x8e, 0x83, 0x34, 0x25, 0x29, 0x4a, 0x46, 0x71, 0x1f, 0x33, 0xbe, 0x51, 0x89, 0xaf, 0x78, 0xe3, 0x97, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
};
+static const unsigned char icon_file_png[] = {
+ 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x2, 0x3, 0x0, 0x0, 0x0, 0x62, 0x9d, 0x17, 0xf2, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xe, 0xc3, 0x0, 0x0, 0xe, 0xc3, 0x1, 0xc7, 0x6f, 0xa8, 0x64, 0x0, 0x0, 0x0, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x0, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63, 0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x0, 0x0, 0x0, 0x9, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0xdf, 0xdf, 0xdf, 0xe0, 0xe0, 0xe0, 0x42, 0xf, 0xc7, 0x49, 0x0, 0x0, 0x0, 0x2, 0x74, 0x52, 0x4e, 0x53, 0x0, 0x88, 0x95, 0xf0, 0xc6, 0x2a, 0x0, 0x0, 0x0, 0x21, 0x49, 0x44, 0x41, 0x54, 0x8, 0xd7, 0x63, 0x60, 0x0, 0x1, 0xae, 0x55, 0x2d, 0x20, 0xa2, 0x13, 0x44, 0x74, 0x39, 0x80, 0x88, 0x9, 0x40, 0xa2, 0x1, 0xc4, 0x5d, 0xb5, 0x80, 0x68, 0x2, 0x4, 0x0, 0x95, 0x34, 0x18, 0xe4, 0x5e, 0x46, 0xf7, 0x27, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
+};
+
static const unsigned char icon_folder_png[] = {
0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x4, 0x0, 0x0, 0x0, 0xb5, 0xfa, 0x37, 0xea, 0x0, 0x0, 0x0, 0x2e, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0xa0, 0x6, 0x78, 0x70, 0xf4, 0xc1, 0x7f, 0x24, 0x78, 0x18, 0x53, 0xc1, 0x7f, 0x54, 0x48, 0x50, 0xc1, 0x43, 0x1b, 0xbc, 0xa, 0x50, 0xad, 0x23, 0xa4, 0xe0, 0xff, 0x70, 0x52, 0x70, 0x18, 0x97, 0xf4, 0xfd, 0x43, 0xd4, 0x88, 0x4a, 0x0, 0x5a, 0xcb, 0x18, 0xab, 0x5e, 0xd9, 0x1a, 0x53, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
};
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp
index 058e89cf2e..cb201bc539 100644
--- a/scene/resources/packed_scene.cpp
+++ b/scene/resources/packed_scene.cpp
@@ -98,6 +98,9 @@ Node *SceneState::instance(GenEditState p_edit_state) const {
}
#endif
parent = nparent;
+ } else {
+ // i == 0 is root node. Confirm that it doesn't have a parent defined.
+ ERR_FAIL_COND_V_MSG(n.parent != -1, nullptr, vformat("Invalid scene: root node %s cannot specify a parent node.", snames[n.name]));
}
Node *node = nullptr;
diff --git a/scene/resources/shader.cpp b/scene/resources/shader.cpp
index 4ca8032d65..4249542567 100644
--- a/scene/resources/shader.cpp
+++ b/scene/resources/shader.cpp
@@ -125,7 +125,7 @@ bool Shader::is_text_shader() const {
}
bool Shader::has_param(const StringName &p_param) const {
- return params_cache.has(p_param);
+ return params_cache.has("shader_param/" + p_param);
}
void Shader::_update_shader() const {
diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp
index 77d4dee21e..8236f9a9e3 100644
--- a/scene/resources/visual_shader.cpp
+++ b/scene/resources/visual_shader.cpp
@@ -1268,7 +1268,7 @@ Error VisualShader::_write_node(Type type, StringBuilder &global_code, StringBui
String class_name = vsnode->get_class_name();
if (class_name == "VisualShaderNodeCustom") {
- class_name = vsnode->get_script_instance()->get_script()->get_language()->get_global_class_name(vsnode->get_script_instance()->get_script()->get_path());
+ class_name = vsnode->get_script_instance()->get_script()->get_path();
}
if (!r_classes.has(class_name)) {
global_code_per_node += vsnode->generate_global_per_node(get_mode(), type, node);
diff --git a/servers/display_server.cpp b/servers/display_server.cpp
index cc818cbe04..0ea11a2670 100644
--- a/servers/display_server.cpp
+++ b/servers/display_server.cpp
@@ -276,8 +276,23 @@ Error DisplayServer::dialog_input_text(String p_title, String p_description, Str
return OK;
}
-DisplayServer::LatinKeyboardVariant DisplayServer::get_latin_keyboard_variant() const {
- return LATIN_KEYBOARD_QWERTY;
+int DisplayServer::keyboard_get_layout_count() const {
+ return 0;
+}
+
+int DisplayServer::keyboard_get_current_layout() const {
+ return -1;
+}
+
+void DisplayServer::keyboard_set_current_layout(int p_index) {
+}
+
+String DisplayServer::keyboard_get_layout_language(int p_index) const {
+ return "";
+}
+
+String DisplayServer::keyboard_get_layout_name(int p_index) const {
+ return "Not supported";
}
void DisplayServer::force_process_and_drop_events() {
@@ -461,7 +476,11 @@ void DisplayServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("dialog_show", "title", "description", "buttons", "callback"), &DisplayServer::dialog_show);
ClassDB::bind_method(D_METHOD("dialog_input_text", "title", "description", "existing_text", "callback"), &DisplayServer::dialog_input_text);
- ClassDB::bind_method(D_METHOD("get_latin_keyboard_variant"), &DisplayServer::get_latin_keyboard_variant);
+ ClassDB::bind_method(D_METHOD("keyboard_get_layout_count"), &DisplayServer::keyboard_get_layout_count);
+ ClassDB::bind_method(D_METHOD("keyboard_get_current_layout"), &DisplayServer::keyboard_get_current_layout);
+ ClassDB::bind_method(D_METHOD("keyboard_set_current_layout", "index"), &DisplayServer::keyboard_set_current_layout);
+ ClassDB::bind_method(D_METHOD("keyboard_get_layout_language", "index"), &DisplayServer::keyboard_get_layout_language);
+ ClassDB::bind_method(D_METHOD("keyboard_get_layout_name", "index"), &DisplayServer::keyboard_get_layout_name);
ClassDB::bind_method(D_METHOD("process_events"), &DisplayServer::process_events);
ClassDB::bind_method(D_METHOD("force_process_and_drop_events"), &DisplayServer::force_process_and_drop_events);
@@ -543,14 +562,6 @@ void DisplayServer::_bind_methods() {
BIND_ENUM_CONSTANT(WINDOW_FLAG_NO_FOCUS);
BIND_ENUM_CONSTANT(WINDOW_FLAG_MAX);
- BIND_ENUM_CONSTANT(LATIN_KEYBOARD_QWERTY);
- BIND_ENUM_CONSTANT(LATIN_KEYBOARD_QWERTZ);
- BIND_ENUM_CONSTANT(LATIN_KEYBOARD_AZERTY);
- BIND_ENUM_CONSTANT(LATIN_KEYBOARD_QZERTY);
- BIND_ENUM_CONSTANT(LATIN_KEYBOARD_DVORAK);
- BIND_ENUM_CONSTANT(LATIN_KEYBOARD_NEO);
- BIND_ENUM_CONSTANT(LATIN_KEYBOARD_COLEMAK);
-
BIND_ENUM_CONSTANT(WINDOW_EVENT_MOUSE_ENTER);
BIND_ENUM_CONSTANT(WINDOW_EVENT_MOUSE_EXIT);
BIND_ENUM_CONSTANT(WINDOW_EVENT_FOCUS_IN);
diff --git a/servers/display_server.h b/servers/display_server.h
index b25b1931c8..166274f8ed 100644
--- a/servers/display_server.h
+++ b/servers/display_server.h
@@ -324,17 +324,11 @@ public:
virtual Error dialog_show(String p_title, String p_description, Vector<String> p_buttons, const Callable &p_callback);
virtual Error dialog_input_text(String p_title, String p_description, String p_partial, const Callable &p_callback);
- enum LatinKeyboardVariant {
- LATIN_KEYBOARD_QWERTY,
- LATIN_KEYBOARD_QWERTZ,
- LATIN_KEYBOARD_AZERTY,
- LATIN_KEYBOARD_QZERTY,
- LATIN_KEYBOARD_DVORAK,
- LATIN_KEYBOARD_NEO,
- LATIN_KEYBOARD_COLEMAK,
- };
-
- virtual LatinKeyboardVariant get_latin_keyboard_variant() const;
+ virtual int keyboard_get_layout_count() const;
+ virtual int keyboard_get_current_layout() const;
+ virtual void keyboard_set_current_layout(int p_index);
+ virtual String keyboard_get_layout_language(int p_index) const;
+ virtual String keyboard_get_layout_name(int p_index) const;
virtual void process_events() = 0;
@@ -384,6 +378,5 @@ VARIANT_ENUM_CAST(DisplayServer::ScreenOrientation)
VARIANT_ENUM_CAST(DisplayServer::WindowMode)
VARIANT_ENUM_CAST(DisplayServer::WindowFlags)
VARIANT_ENUM_CAST(DisplayServer::CursorShape)
-VARIANT_ENUM_CAST(DisplayServer::LatinKeyboardVariant)
#endif // DISPLAY_SERVER_H
diff --git a/servers/physics_2d/broad_phase_2d_basic.cpp b/servers/physics_2d/broad_phase_2d_basic.cpp
index 8c7e715a09..3bdfc1a973 100644
--- a/servers/physics_2d/broad_phase_2d_basic.cpp
+++ b/servers/physics_2d/broad_phase_2d_basic.cpp
@@ -152,8 +152,10 @@ void BroadPhase2DBasic::update() {
void *data = nullptr;
if (pair_callback) {
data = pair_callback(elem_A->owner, elem_A->subindex, elem_B->owner, elem_B->subindex, unpair_userdata);
+ if (data) {
+ pair_map.insert(key, data);
+ }
}
- pair_map.insert(key, data);
}
}
}
diff --git a/servers/physics_2d/joints_2d_sw.cpp b/servers/physics_2d/joints_2d_sw.cpp
index eda0b923a2..81e961e90d 100644
--- a/servers/physics_2d/joints_2d_sw.cpp
+++ b/servers/physics_2d/joints_2d_sw.cpp
@@ -390,29 +390,29 @@ void DampedSpringJoint2DSW::solve(real_t p_step) {
B->apply_impulse(rB, j);
}
-void DampedSpringJoint2DSW::set_param(PhysicsServer2D::DampedStringParam p_param, real_t p_value) {
+void DampedSpringJoint2DSW::set_param(PhysicsServer2D::DampedSpringParam p_param, real_t p_value) {
switch (p_param) {
- case PhysicsServer2D::DAMPED_STRING_REST_LENGTH: {
+ case PhysicsServer2D::DAMPED_SPRING_REST_LENGTH: {
rest_length = p_value;
} break;
- case PhysicsServer2D::DAMPED_STRING_DAMPING: {
+ case PhysicsServer2D::DAMPED_SPRING_DAMPING: {
damping = p_value;
} break;
- case PhysicsServer2D::DAMPED_STRING_STIFFNESS: {
+ case PhysicsServer2D::DAMPED_SPRING_STIFFNESS: {
stiffness = p_value;
} break;
}
}
-real_t DampedSpringJoint2DSW::get_param(PhysicsServer2D::DampedStringParam p_param) const {
+real_t DampedSpringJoint2DSW::get_param(PhysicsServer2D::DampedSpringParam p_param) const {
switch (p_param) {
- case PhysicsServer2D::DAMPED_STRING_REST_LENGTH: {
+ case PhysicsServer2D::DAMPED_SPRING_REST_LENGTH: {
return rest_length;
} break;
- case PhysicsServer2D::DAMPED_STRING_DAMPING: {
+ case PhysicsServer2D::DAMPED_SPRING_DAMPING: {
return damping;
} break;
- case PhysicsServer2D::DAMPED_STRING_STIFFNESS: {
+ case PhysicsServer2D::DAMPED_SPRING_STIFFNESS: {
return stiffness;
} break;
}
diff --git a/servers/physics_2d/joints_2d_sw.h b/servers/physics_2d/joints_2d_sw.h
index 87556ccea1..3c8aab77c8 100644
--- a/servers/physics_2d/joints_2d_sw.h
+++ b/servers/physics_2d/joints_2d_sw.h
@@ -151,8 +151,8 @@ public:
virtual bool setup(real_t p_step);
virtual void solve(real_t p_step);
- void set_param(PhysicsServer2D::DampedStringParam p_param, real_t p_value);
- real_t get_param(PhysicsServer2D::DampedStringParam p_param) const;
+ void set_param(PhysicsServer2D::DampedSpringParam p_param, real_t p_value);
+ real_t get_param(PhysicsServer2D::DampedSpringParam p_param) const;
DampedSpringJoint2DSW(const Vector2 &p_anchor_a, const Vector2 &p_anchor_b, Body2DSW *p_body_a, Body2DSW *p_body_b);
~DampedSpringJoint2DSW();
diff --git a/servers/physics_2d/physics_server_2d_sw.cpp b/servers/physics_2d/physics_server_2d_sw.cpp
index a686903763..6983225668 100644
--- a/servers/physics_2d/physics_server_2d_sw.cpp
+++ b/servers/physics_2d/physics_server_2d_sw.cpp
@@ -1113,7 +1113,7 @@ real_t PhysicsServer2DSW::pin_joint_get_param(RID p_joint, PinJointParam p_param
return pin_joint->get_param(p_param);
}
-void PhysicsServer2DSW::damped_string_joint_set_param(RID p_joint, DampedStringParam p_param, real_t p_value) {
+void PhysicsServer2DSW::damped_spring_joint_set_param(RID p_joint, DampedSpringParam p_param, real_t p_value) {
Joint2DSW *j = joint_owner.getornull(p_joint);
ERR_FAIL_COND(!j);
ERR_FAIL_COND(j->get_type() != JOINT_DAMPED_SPRING);
@@ -1122,7 +1122,7 @@ void PhysicsServer2DSW::damped_string_joint_set_param(RID p_joint, DampedStringP
dsj->set_param(p_param, p_value);
}
-real_t PhysicsServer2DSW::damped_string_joint_get_param(RID p_joint, DampedStringParam p_param) const {
+real_t PhysicsServer2DSW::damped_spring_joint_get_param(RID p_joint, DampedSpringParam p_param) const {
Joint2DSW *j = joint_owner.getornull(p_joint);
ERR_FAIL_COND_V(!j, 0);
ERR_FAIL_COND_V(j->get_type() != JOINT_DAMPED_SPRING, 0);
diff --git a/servers/physics_2d/physics_server_2d_sw.h b/servers/physics_2d/physics_server_2d_sw.h
index f9b0bc716c..093c775cb5 100644
--- a/servers/physics_2d/physics_server_2d_sw.h
+++ b/servers/physics_2d/physics_server_2d_sw.h
@@ -266,8 +266,8 @@ public:
virtual RID damped_spring_joint_create(const Vector2 &p_anchor_a, const Vector2 &p_anchor_b, RID p_body_a, RID p_body_b = RID());
virtual void pin_joint_set_param(RID p_joint, PinJointParam p_param, real_t p_value);
virtual real_t pin_joint_get_param(RID p_joint, PinJointParam p_param) const;
- virtual void damped_string_joint_set_param(RID p_joint, DampedStringParam p_param, real_t p_value);
- virtual real_t damped_string_joint_get_param(RID p_joint, DampedStringParam p_param) const;
+ virtual void damped_spring_joint_set_param(RID p_joint, DampedSpringParam p_param, real_t p_value);
+ virtual real_t damped_spring_joint_get_param(RID p_joint, DampedSpringParam p_param) const;
virtual JointType joint_get_type(RID p_joint) const;
diff --git a/servers/physics_2d/physics_server_2d_wrap_mt.h b/servers/physics_2d/physics_server_2d_wrap_mt.h
index c2ae288f95..bc918b20f4 100644
--- a/servers/physics_2d/physics_server_2d_wrap_mt.h
+++ b/servers/physics_2d/physics_server_2d_wrap_mt.h
@@ -287,8 +287,8 @@ public:
FUNC3(pin_joint_set_param, RID, PinJointParam, real_t);
FUNC2RC(real_t, pin_joint_get_param, RID, PinJointParam);
- FUNC3(damped_string_joint_set_param, RID, DampedStringParam, real_t);
- FUNC2RC(real_t, damped_string_joint_get_param, RID, DampedStringParam);
+ FUNC3(damped_spring_joint_set_param, RID, DampedSpringParam, real_t);
+ FUNC2RC(real_t, damped_spring_joint_get_param, RID, DampedSpringParam);
FUNC1RC(JointType, joint_get_type, RID);
diff --git a/servers/physics_2d/space_2d_sw.cpp b/servers/physics_2d/space_2d_sw.cpp
index f4a21da254..966dcbd651 100644
--- a/servers/physics_2d/space_2d_sw.cpp
+++ b/servers/physics_2d/space_2d_sw.cpp
@@ -1111,6 +1111,10 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co
}
void *Space2DSW::_broadphase_pair(CollisionObject2DSW *A, int p_subindex_A, CollisionObject2DSW *B, int p_subindex_B, void *p_self) {
+ if (!A->test_collision_mask(B)) {
+ return nullptr;
+ }
+
CollisionObject2DSW::Type type_A = A->get_type();
CollisionObject2DSW::Type type_B = B->get_type();
if (type_A > type_B) {
@@ -1143,6 +1147,10 @@ void *Space2DSW::_broadphase_pair(CollisionObject2DSW *A, int p_subindex_A, Coll
}
void Space2DSW::_broadphase_unpair(CollisionObject2DSW *A, int p_subindex_A, CollisionObject2DSW *B, int p_subindex_B, void *p_data, void *p_self) {
+ if (!p_data) {
+ return;
+ }
+
Space2DSW *self = (Space2DSW *)p_self;
self->collision_pairs--;
Constraint2DSW *c = (Constraint2DSW *)p_data;
diff --git a/servers/physics_3d/broad_phase_3d_basic.cpp b/servers/physics_3d/broad_phase_3d_basic.cpp
index 0f271b33af..f5ea1897a9 100644
--- a/servers/physics_3d/broad_phase_3d_basic.cpp
+++ b/servers/physics_3d/broad_phase_3d_basic.cpp
@@ -190,8 +190,10 @@ void BroadPhase3DBasic::update() {
void *data = nullptr;
if (pair_callback) {
data = pair_callback(elem_A->owner, elem_A->subindex, elem_B->owner, elem_B->subindex, unpair_userdata);
+ if (data) {
+ pair_map.insert(key, data);
+ }
}
- pair_map.insert(key, data);
}
}
}
diff --git a/servers/physics_3d/space_3d_sw.cpp b/servers/physics_3d/space_3d_sw.cpp
index 4d272bdabd..48f250ba35 100644
--- a/servers/physics_3d/space_3d_sw.cpp
+++ b/servers/physics_3d/space_3d_sw.cpp
@@ -987,6 +987,10 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform &p_from, cons
}
void *Space3DSW::_broadphase_pair(CollisionObject3DSW *A, int p_subindex_A, CollisionObject3DSW *B, int p_subindex_B, void *p_self) {
+ if (!A->test_collision_mask(B)) {
+ return nullptr;
+ }
+
CollisionObject3DSW::Type type_A = A->get_type();
CollisionObject3DSW::Type type_B = B->get_type();
if (type_A > type_B) {
@@ -1019,6 +1023,10 @@ void *Space3DSW::_broadphase_pair(CollisionObject3DSW *A, int p_subindex_A, Coll
}
void Space3DSW::_broadphase_unpair(CollisionObject3DSW *A, int p_subindex_A, CollisionObject3DSW *B, int p_subindex_B, void *p_data, void *p_self) {
+ if (!p_data) {
+ return;
+ }
+
Space3DSW *self = (Space3DSW *)p_self;
self->collision_pairs--;
Constraint3DSW *c = (Constraint3DSW *)p_data;
diff --git a/servers/physics_server_2d.cpp b/servers/physics_server_2d.cpp
index c2de7fbd00..080b8c61ad 100644
--- a/servers/physics_server_2d.cpp
+++ b/servers/physics_server_2d.cpp
@@ -654,8 +654,8 @@ void PhysicsServer2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("groove_joint_create", "groove1_a", "groove2_a", "anchor_b", "body_a", "body_b"), &PhysicsServer2D::groove_joint_create, DEFVAL(RID()), DEFVAL(RID()));
ClassDB::bind_method(D_METHOD("damped_spring_joint_create", "anchor_a", "anchor_b", "body_a", "body_b"), &PhysicsServer2D::damped_spring_joint_create, DEFVAL(RID()));
- ClassDB::bind_method(D_METHOD("damped_string_joint_set_param", "joint", "param", "value"), &PhysicsServer2D::damped_string_joint_set_param);
- ClassDB::bind_method(D_METHOD("damped_string_joint_get_param", "joint", "param"), &PhysicsServer2D::damped_string_joint_get_param);
+ ClassDB::bind_method(D_METHOD("damped_spring_joint_set_param", "joint", "param", "value"), &PhysicsServer2D::damped_spring_joint_set_param);
+ ClassDB::bind_method(D_METHOD("damped_spring_joint_get_param", "joint", "param"), &PhysicsServer2D::damped_spring_joint_get_param);
ClassDB::bind_method(D_METHOD("joint_get_type", "joint"), &PhysicsServer2D::joint_get_type);
@@ -727,9 +727,9 @@ void PhysicsServer2D::_bind_methods() {
BIND_ENUM_CONSTANT(JOINT_PARAM_MAX_BIAS);
BIND_ENUM_CONSTANT(JOINT_PARAM_MAX_FORCE);
- BIND_ENUM_CONSTANT(DAMPED_STRING_REST_LENGTH);
- BIND_ENUM_CONSTANT(DAMPED_STRING_STIFFNESS);
- BIND_ENUM_CONSTANT(DAMPED_STRING_DAMPING);
+ BIND_ENUM_CONSTANT(DAMPED_SPRING_REST_LENGTH);
+ BIND_ENUM_CONSTANT(DAMPED_SPRING_STIFFNESS);
+ BIND_ENUM_CONSTANT(DAMPED_SPRING_DAMPING);
BIND_ENUM_CONSTANT(CCD_MODE_DISABLED);
BIND_ENUM_CONSTANT(CCD_MODE_CAST_RAY);
diff --git a/servers/physics_server_2d.h b/servers/physics_server_2d.h
index 3553ec11a1..549a78aa1f 100644
--- a/servers/physics_server_2d.h
+++ b/servers/physics_server_2d.h
@@ -552,13 +552,13 @@ public:
virtual void pin_joint_set_param(RID p_joint, PinJointParam p_param, real_t p_value) = 0;
virtual real_t pin_joint_get_param(RID p_joint, PinJointParam p_param) const = 0;
- enum DampedStringParam {
- DAMPED_STRING_REST_LENGTH,
- DAMPED_STRING_STIFFNESS,
- DAMPED_STRING_DAMPING
+ enum DampedSpringParam {
+ DAMPED_SPRING_REST_LENGTH,
+ DAMPED_SPRING_STIFFNESS,
+ DAMPED_SPRING_DAMPING
};
- virtual void damped_string_joint_set_param(RID p_joint, DampedStringParam p_param, real_t p_value) = 0;
- virtual real_t damped_string_joint_get_param(RID p_joint, DampedStringParam p_param) const = 0;
+ virtual void damped_spring_joint_set_param(RID p_joint, DampedSpringParam p_param, real_t p_value) = 0;
+ virtual real_t damped_spring_joint_get_param(RID p_joint, DampedSpringParam p_param) const = 0;
virtual JointType joint_get_type(RID p_joint) const = 0;
@@ -678,7 +678,7 @@ VARIANT_ENUM_CAST(PhysicsServer2D::BodyState);
VARIANT_ENUM_CAST(PhysicsServer2D::CCDMode);
VARIANT_ENUM_CAST(PhysicsServer2D::JointParam);
VARIANT_ENUM_CAST(PhysicsServer2D::JointType);
-VARIANT_ENUM_CAST(PhysicsServer2D::DampedStringParam);
+VARIANT_ENUM_CAST(PhysicsServer2D::DampedSpringParam);
//VARIANT_ENUM_CAST( PhysicsServer2D::ObjectType );
VARIANT_ENUM_CAST(PhysicsServer2D::AreaBodyStatus);
VARIANT_ENUM_CAST(PhysicsServer2D::ProcessInfo);
diff --git a/servers/rendering/rendering_device_binds.cpp b/servers/rendering/rendering_device_binds.cpp
index 291f2ff705..0400cebfdc 100644
--- a/servers/rendering/rendering_device_binds.cpp
+++ b/servers/rendering/rendering_device_binds.cpp
@@ -103,7 +103,7 @@ Error RDShaderFile::parse_versions_from_text(const String &p_text, const String
base_error = "Missing `=` in '" + l + "'. Version syntax is `version = \"<defines with C escaping>\";`.";
break;
}
- if (l.find(";") != -1) {
+ if (l.find(";") == -1) {
// We don't require a semicolon per se, but it's needed for clang-format to handle things properly.
base_error = "Missing `;` in '" + l + "'. Version syntax is `version = \"<defines with C escaping>\";`.";
break;
diff --git a/thirdparty/README.md b/thirdparty/README.md
index 64c2ce336d..c69ca17fd0 100644
--- a/thirdparty/README.md
+++ b/thirdparty/README.md
@@ -446,12 +446,32 @@ Files extracted from the upstream source:
## oidn
- Upstream: https://github.com/OpenImageDenoise/oidn
-- Version: TBD
+- Version: 1.1.0 (c58c5216db05ceef4cde5a096862f2eeffd14c06, 2019)
- License: Apache 2.0
Files extracted from upstream source:
-- TBD
+common/* (except tasking.* and CMakeLists.txt)
+core/*
+include/OpenImageDenoise/* (except version.h.in)
+LICENSE.txt
+mkl-dnn/include/*
+mkl-dnn/src/* (except CMakeLists.txt)
+weights/rtlightmap_hdr.tza
+scripts/resource_to_cpp.py
+
+Modified files:
+Modifications are marked with `// -- GODOT start --` and `// -- GODOT end --`.
+Patch files are provided in `oidn/patches/`.
+
+core/autoencoder.cpp
+core/autoencoder.h
+core/common.h
+core/device.cpp
+core/device.h
+core/transfer_function.cpp
+
+scripts/resource_to_cpp.py (used in modules/denoise/resource_to_cpp.py)
## opus
diff --git a/thirdparty/oidn/0001-window.h-case-sensitive.patch b/thirdparty/oidn/0001-window.h-case-sensitive.patch
deleted file mode 100644
index 7b9c8e96c1..0000000000
--- a/thirdparty/oidn/0001-window.h-case-sensitive.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/thirdparty/oidn/common/platform.h b/thirdparty/oidn/common/platform.h
-index 205ac8981d..9373b617b5 100644
---- a/thirdparty/oidn/common/platform.h
-+++ b/thirdparty/oidn/common/platform.h
-@@ -19,7 +19,7 @@
- #if defined(_WIN32)
- #define WIN32_LEAN_AND_MEAN
- #define NOMINMAX
-- #include <Windows.h>
-+ #include <windows.h>
- #elif defined(__APPLE__)
- #include <sys/sysctl.h>
- #endif
diff --git a/thirdparty/oidn/core/autoencoder.cpp b/thirdparty/oidn/core/autoencoder.cpp
index 8ae2421fa6..d8da684cb8 100644
--- a/thirdparty/oidn/core/autoencoder.cpp
+++ b/thirdparty/oidn/core/autoencoder.cpp
@@ -90,12 +90,19 @@ namespace oidn {
if (!dirty)
return;
- {
+ // -- GODOT start --
+ //device->executeTask([&]()
+ //{
+ // GODOT end --
+
if (mayiuse(avx512_common))
net = buildNet<16>();
else
net = buildNet<8>();
- }
+
+ // GODOT start --
+ //});
+ // GODOT end --
dirty = false;
}
@@ -107,8 +114,10 @@ namespace oidn {
if (!net)
return;
-
- {
+ // -- GODOT start --
+ //device->executeTask([&]()
+ //{
+ // -- GODOT end --
Progress progress;
progress.func = progressFunc;
progress.userPtr = progressUserPtr;
@@ -154,7 +163,9 @@ namespace oidn {
tileIndex++;
}
}
- }
+ // -- GODOT start --
+ //});
+ // -- GODOT end --
}
void AutoencoderFilter::computeTileSize()
@@ -462,8 +473,11 @@ namespace oidn {
return std::make_shared<GammaTransferFunction>();
}
+// -- GODOT start --
// Godot doesn't need Raytracing filters. Removing them saves space in the weights files.
#if 0
+// -- GODOT end --
+
// --------------------------------------------------------------------------
// RTFilter
// --------------------------------------------------------------------------
@@ -491,7 +505,9 @@ namespace oidn {
weightData.hdr_alb = weights::rt_hdr_alb;
weightData.hdr_alb_nrm = weights::rt_hdr_alb_nrm;
}
+// -- GODOT start --
#endif
+// -- GODOT end --
// --------------------------------------------------------------------------
// RTLightmapFilter
diff --git a/thirdparty/oidn/core/autoencoder.h b/thirdparty/oidn/core/autoencoder.h
index 97432f2bbd..98b610844e 100644
--- a/thirdparty/oidn/core/autoencoder.h
+++ b/thirdparty/oidn/core/autoencoder.h
@@ -93,14 +93,18 @@ namespace oidn {
// RTFilter - Generic ray tracing denoiser
// --------------------------------------------------------------------------
+// -- GODOT start --
// Godot doesn't need Raytracing filters. Removing them saves space in the weights files.
#if 0
+// -- GODOT end --
class RTFilter : public AutoencoderFilter
{
public:
explicit RTFilter(const Ref<Device>& device);
};
+// -- GODOT start --
#endif
+// -- GODOT end --
// --------------------------------------------------------------------------
// RTLightmapFilter - Ray traced lightmap denoiser
diff --git a/thirdparty/oidn/core/common.h b/thirdparty/oidn/core/common.h
index 6c87f377bc..a35dd908b4 100644
--- a/thirdparty/oidn/core/common.h
+++ b/thirdparty/oidn/core/common.h
@@ -27,6 +27,9 @@
#include "common/ref.h"
#include "common/exception.h"
#include "common/thread.h"
+// -- GODOT start --
+//#include "common/tasking.h"
+// -- GODOT end --
#include "math.h"
namespace oidn {
diff --git a/thirdparty/oidn/core/device.cpp b/thirdparty/oidn/core/device.cpp
index 0812624bb5..3cd658b9c8 100644
--- a/thirdparty/oidn/core/device.cpp
+++ b/thirdparty/oidn/core/device.cpp
@@ -29,6 +29,9 @@ namespace oidn {
Device::~Device()
{
+ // -- GODOT start --
+ //observer.reset();
+ // -- GODOT end --
}
void Device::setError(Device* device, Error code, const std::string& message)
@@ -140,10 +143,29 @@ namespace oidn {
if (isCommitted())
throw Exception(Error::InvalidOperation, "device can be committed only once");
+ // -- GODOT start --
+ #if 0
+ // -- GODOT end --
+ // Get the optimal thread affinities
+ if (setAffinity)
+ {
+ affinity = std::make_shared<ThreadAffinity>(1, verbose); // one thread per core
+ if (affinity->getNumThreads() == 0)
+ affinity.reset();
+ }
+
// Create the task arena
- const int maxNumThreads = 1; //affinity ? affinity->getNumThreads() : tbb::this_task_arena::max_concurrency();
+ const int maxNumThreads = affinity ? affinity->getNumThreads() : tbb::this_task_arena::max_concurrency();
numThreads = (numThreads > 0) ? min(numThreads, maxNumThreads) : maxNumThreads;
-
+ arena = std::make_shared<tbb::task_arena>(numThreads);
+
+ // Automatically set the thread affinities
+ if (affinity)
+ observer = std::make_shared<PinningObserver>(affinity, *arena);
+ // -- GODOT start --
+ #endif
+ numThreads = 1;
+ // -- GODOT end --
dirty = false;
if (isVerbose())
@@ -177,12 +199,17 @@ namespace oidn {
Ref<Filter> filter;
+// -- GODOT start --
// Godot doesn't need Raytracing filters. Removing them saves space in the weights files.
#if 0
+// -- GODOT end --
if (type == "RT")
filter = makeRef<RTFilter>(Ref<Device>(this));
+// -- GODOT start --
+// Godot doesn't need Raytracing filters. Removing them saves space in the weights files.
#endif
- if (type == "RTLightmap")
+ if (type == "RTLightmap")
+// -- GODOT end --
filter = makeRef<RTLightmapFilter>(Ref<Device>(this));
else
throw Exception(Error::InvalidArgument, "unknown filter type");
@@ -199,6 +226,12 @@ namespace oidn {
std::cout << " Build : " << getBuildName() << std::endl;
std::cout << " Platform: " << getPlatformName() << std::endl;
+// -- GODOT start --
+// std::cout << " Tasking :";
+// std::cout << " TBB" << TBB_VERSION_MAJOR << "." << TBB_VERSION_MINOR;
+// std::cout << " TBB_header_interface_" << TBB_INTERFACE_VERSION << " TBB_lib_interface_" << tbb::TBB_runtime_interface_version();
+// std::cout << std::endl;
+// -- GODOT end --
std::cout << std::endl;
}
diff --git a/thirdparty/oidn/core/device.h b/thirdparty/oidn/core/device.h
index 93a83eb731..d9cfd8541a 100644
--- a/thirdparty/oidn/core/device.h
+++ b/thirdparty/oidn/core/device.h
@@ -41,6 +41,13 @@ namespace oidn {
ErrorFunction errorFunc = nullptr;
void* errorUserPtr = nullptr;
+// -- GODOT start --
+// // Tasking
+// std::shared_ptr<tbb::task_arena> arena;
+// std::shared_ptr<PinningObserver> observer;
+// std::shared_ptr<ThreadAffinity> affinity;
+// -- GODOT end --
+
// Parameters
int numThreads = 0; // autodetect by default
bool setAffinity = true;
@@ -61,6 +68,20 @@ namespace oidn {
void commit();
+// -- GODOT start --
+// template<typename F>
+// void executeTask(F& f)
+// {
+// arena->execute(f);
+// }
+
+// template<typename F>
+// void executeTask(const F& f)
+// {
+// arena->execute(f);
+// }
+// -- GODOT end --
+
Ref<Buffer> newBuffer(size_t byteSize);
Ref<Buffer> newBuffer(void* ptr, size_t byteSize);
Ref<Filter> newFilter(const std::string& type);
@@ -69,7 +90,10 @@ namespace oidn {
__forceinline std::mutex& getMutex() { return mutex; }
private:
- bool isCommitted() const { return false; }
+// -- GODOT start --
+ //bool isCommitted() const { return bool(arena); }
+ bool isCommitted() const { return false; }
+// -- GODOT end --
void checkCommitted();
void print();
diff --git a/thirdparty/oidn/core/network.cpp b/thirdparty/oidn/core/network.cpp
index 4da32073cd..ed8328c954 100644
--- a/thirdparty/oidn/core/network.cpp
+++ b/thirdparty/oidn/core/network.cpp
@@ -14,10 +14,12 @@
// limitations under the License. //
// ======================================================================== //
-#include "network.h"
#include "upsample.h"
#include "weights_reorder.h"
+#include "network.h"
+// -- GODOT start --
#include <cstring>
+// -- GODOT end --
namespace oidn {
diff --git a/thirdparty/oidn/core/transfer_function.cpp b/thirdparty/oidn/core/transfer_function.cpp
index a33e3c84bc..487f0a9f75 100644
--- a/thirdparty/oidn/core/transfer_function.cpp
+++ b/thirdparty/oidn/core/transfer_function.cpp
@@ -24,9 +24,12 @@ namespace oidn {
float AutoexposureNode::autoexposure(const Image& color)
{
assert(color.format == Format::Float3);
- return 1.0f;
+// -- GODOT start --
+// We don't want to mess with TTB and we don't use autoexposure, so we disable this code
+#if 0
+// -- GODOT end --
- /*constexpr float key = 0.18f;
+ constexpr float key = 0.18f;
constexpr float eps = 1e-8f;
constexpr int K = 16; // downsampling amount
@@ -89,7 +92,11 @@ namespace oidn {
tbb::static_partitioner()
);
- return (sum.second > 0) ? (key / exp2(sum.first / float(sum.second))) : 1.f;*/
+ return (sum.second > 0) ? (key / exp2(sum.first / float(sum.second))) : 1.f;
+// -- GODOT start --
+#endif
+ return 1.0;
+// -- GODOT end --
}
} // namespace oidn
diff --git a/thirdparty/oidn/mkl-dnn/src/cpu/rnn/rnn_reorders.hpp b/thirdparty/oidn/mkl-dnn/src/cpu/rnn/rnn_reorders.hpp
index 597c63e3f8..78cdedbae4 100644
--- a/thirdparty/oidn/mkl-dnn/src/cpu/rnn/rnn_reorders.hpp
+++ b/thirdparty/oidn/mkl-dnn/src/cpu/rnn/rnn_reorders.hpp
@@ -131,7 +131,7 @@ struct rnn_weights_reorder_t : public cpu_primitive_t {
return status::success;
}
- format_tag_t itag_;
+ format_tag_t itag_ = mkldnn_format_tag_undef;
private:
void init_scratchpad() {
diff --git a/thirdparty/oidn/mkl-dnn/src/cpu/simple_concat.hpp b/thirdparty/oidn/mkl-dnn/src/cpu/simple_concat.hpp
index 5177275452..057cc3c4c7 100644
--- a/thirdparty/oidn/mkl-dnn/src/cpu/simple_concat.hpp
+++ b/thirdparty/oidn/mkl-dnn/src/cpu/simple_concat.hpp
@@ -96,9 +96,9 @@ struct simple_concat_t: public cpu_primitive_t {
return status::success;
}
- int perm_[MKLDNN_MAX_NDIMS];
- int iperm_[MKLDNN_MAX_NDIMS];
- dims_t blocks_;
+ int perm_[MKLDNN_MAX_NDIMS] {};
+ int iperm_[MKLDNN_MAX_NDIMS] {};
+ dims_t blocks_ {};
dim_t nelems_to_concat(const memory_desc_wrapper &data_d) const {
const int ndims = data_d.ndims();
diff --git a/thirdparty/oidn/patches/godot-changes-c58c5216.patch b/thirdparty/oidn/patches/godot-changes-c58c5216.patch
new file mode 100644
index 0000000000..6a54703064
--- /dev/null
+++ b/thirdparty/oidn/patches/godot-changes-c58c5216.patch
@@ -0,0 +1,307 @@
+diff --git a/common/platform.h b/common/platform.h
+index be14bc7..9373b61 100644
+--- a/common/platform.h
++++ b/common/platform.h
+@@ -19,7 +19,7 @@
+ #if defined(_WIN32)
+ #define WIN32_LEAN_AND_MEAN
+ #define NOMINMAX
+- #include <Windows.h>
++ #include <windows.h>
+ #elif defined(__APPLE__)
+ #include <sys/sysctl.h>
+ #endif
+@@ -129,4 +129,3 @@ namespace oidn {
+ std::string getBuildName();
+
+ } // namespace oidn
+-
+diff --git a/core/autoencoder.cpp b/core/autoencoder.cpp
+index d6915e6..d8da684 100644
+--- a/core/autoencoder.cpp
++++ b/core/autoencoder.cpp
+@@ -90,13 +90,19 @@ namespace oidn {
+ if (!dirty)
+ return;
+
+- device->executeTask([&]()
+- {
++ // -- GODOT start --
++ //device->executeTask([&]()
++ //{
++ // GODOT end --
++
+ if (mayiuse(avx512_common))
+ net = buildNet<16>();
+ else
+ net = buildNet<8>();
+- });
++
++ // GODOT start --
++ //});
++ // GODOT end --
+
+ dirty = false;
+ }
+@@ -108,9 +114,10 @@ namespace oidn {
+
+ if (!net)
+ return;
+-
+- device->executeTask([&]()
+- {
++ // -- GODOT start --
++ //device->executeTask([&]()
++ //{
++ // -- GODOT end --
+ Progress progress;
+ progress.func = progressFunc;
+ progress.userPtr = progressUserPtr;
+@@ -156,7 +163,9 @@ namespace oidn {
+ tileIndex++;
+ }
+ }
+- });
++ // -- GODOT start --
++ //});
++ // -- GODOT end --
+ }
+
+ void AutoencoderFilter::computeTileSize()
+@@ -464,6 +473,11 @@ namespace oidn {
+ return std::make_shared<GammaTransferFunction>();
+ }
+
++// -- GODOT start --
++// Godot doesn't need Raytracing filters. Removing them saves space in the weights files.
++#if 0
++// -- GODOT end --
++
+ // --------------------------------------------------------------------------
+ // RTFilter
+ // --------------------------------------------------------------------------
+@@ -491,6 +505,9 @@ namespace oidn {
+ weightData.hdr_alb = weights::rt_hdr_alb;
+ weightData.hdr_alb_nrm = weights::rt_hdr_alb_nrm;
+ }
++// -- GODOT start --
++#endif
++// -- GODOT end --
+
+ // --------------------------------------------------------------------------
+ // RTLightmapFilter
+diff --git a/core/autoencoder.h b/core/autoencoder.h
+index c199052..98b6108 100644
+--- a/core/autoencoder.h
++++ b/core/autoencoder.h
+@@ -93,11 +93,18 @@ namespace oidn {
+ // RTFilter - Generic ray tracing denoiser
+ // --------------------------------------------------------------------------
+
++// -- GODOT start --
++// Godot doesn't need Raytracing filters. Removing them saves space in the weights files.
++#if 0
++// -- GODOT end --
+ class RTFilter : public AutoencoderFilter
+ {
+ public:
+ explicit RTFilter(const Ref<Device>& device);
+ };
++// -- GODOT start --
++#endif
++// -- GODOT end --
+
+ // --------------------------------------------------------------------------
+ // RTLightmapFilter - Ray traced lightmap denoiser
+diff --git a/core/common.h b/core/common.h
+index a3a7e8a..a35dd90 100644
+--- a/core/common.h
++++ b/core/common.h
+@@ -27,7 +27,9 @@
+ #include "common/ref.h"
+ #include "common/exception.h"
+ #include "common/thread.h"
+-#include "common/tasking.h"
++// -- GODOT start --
++//#include "common/tasking.h"
++// -- GODOT end --
+ #include "math.h"
+
+ namespace oidn {
+diff --git a/core/device.cpp b/core/device.cpp
+index c455695..3cd658b 100644
+--- a/core/device.cpp
++++ b/core/device.cpp
+@@ -29,7 +29,9 @@ namespace oidn {
+
+ Device::~Device()
+ {
+- observer.reset();
++ // -- GODOT start --
++ //observer.reset();
++ // -- GODOT end --
+ }
+
+ void Device::setError(Device* device, Error code, const std::string& message)
+@@ -141,6 +143,9 @@ namespace oidn {
+ if (isCommitted())
+ throw Exception(Error::InvalidOperation, "device can be committed only once");
+
++ // -- GODOT start --
++ #if 0
++ // -- GODOT end --
+ // Get the optimal thread affinities
+ if (setAffinity)
+ {
+@@ -157,7 +162,10 @@ namespace oidn {
+ // Automatically set the thread affinities
+ if (affinity)
+ observer = std::make_shared<PinningObserver>(affinity, *arena);
+-
++ // -- GODOT start --
++ #endif
++ numThreads = 1;
++ // -- GODOT end --
+ dirty = false;
+
+ if (isVerbose())
+@@ -191,9 +199,17 @@ namespace oidn {
+
+ Ref<Filter> filter;
+
++// -- GODOT start --
++// Godot doesn't need Raytracing filters. Removing them saves space in the weights files.
++#if 0
++// -- GODOT end --
+ if (type == "RT")
+ filter = makeRef<RTFilter>(Ref<Device>(this));
+- else if (type == "RTLightmap")
++// -- GODOT start --
++// Godot doesn't need Raytracing filters. Removing them saves space in the weights files.
++#endif
++ if (type == "RTLightmap")
++// -- GODOT end --
+ filter = makeRef<RTLightmapFilter>(Ref<Device>(this));
+ else
+ throw Exception(Error::InvalidArgument, "unknown filter type");
+@@ -210,11 +226,12 @@ namespace oidn {
+ std::cout << " Build : " << getBuildName() << std::endl;
+ std::cout << " Platform: " << getPlatformName() << std::endl;
+
+- std::cout << " Tasking :";
+- std::cout << " TBB" << TBB_VERSION_MAJOR << "." << TBB_VERSION_MINOR;
+- std::cout << " TBB_header_interface_" << TBB_INTERFACE_VERSION << " TBB_lib_interface_" << tbb::TBB_runtime_interface_version();
+- std::cout << std::endl;
+-
++// -- GODOT start --
++// std::cout << " Tasking :";
++// std::cout << " TBB" << TBB_VERSION_MAJOR << "." << TBB_VERSION_MINOR;
++// std::cout << " TBB_header_interface_" << TBB_INTERFACE_VERSION << " TBB_lib_interface_" << tbb::TBB_runtime_interface_version();
++// std::cout << std::endl;
++// -- GODOT end --
+ std::cout << std::endl;
+ }
+
+diff --git a/core/device.h b/core/device.h
+index c2df714..d9cfd85 100644
+--- a/core/device.h
++++ b/core/device.h
+@@ -41,10 +41,12 @@ namespace oidn {
+ ErrorFunction errorFunc = nullptr;
+ void* errorUserPtr = nullptr;
+
+- // Tasking
+- std::shared_ptr<tbb::task_arena> arena;
+- std::shared_ptr<PinningObserver> observer;
+- std::shared_ptr<ThreadAffinity> affinity;
++// -- GODOT start --
++// // Tasking
++// std::shared_ptr<tbb::task_arena> arena;
++// std::shared_ptr<PinningObserver> observer;
++// std::shared_ptr<ThreadAffinity> affinity;
++// -- GODOT end --
+
+ // Parameters
+ int numThreads = 0; // autodetect by default
+@@ -66,17 +68,19 @@ namespace oidn {
+
+ void commit();
+
+- template<typename F>
+- void executeTask(F& f)
+- {
+- arena->execute(f);
+- }
++// -- GODOT start --
++// template<typename F>
++// void executeTask(F& f)
++// {
++// arena->execute(f);
++// }
+
+- template<typename F>
+- void executeTask(const F& f)
+- {
+- arena->execute(f);
+- }
++// template<typename F>
++// void executeTask(const F& f)
++// {
++// arena->execute(f);
++// }
++// -- GODOT end --
+
+ Ref<Buffer> newBuffer(size_t byteSize);
+ Ref<Buffer> newBuffer(void* ptr, size_t byteSize);
+@@ -86,7 +90,10 @@ namespace oidn {
+ __forceinline std::mutex& getMutex() { return mutex; }
+
+ private:
+- bool isCommitted() const { return bool(arena); }
++// -- GODOT start --
++ //bool isCommitted() const { return bool(arena); }
++ bool isCommitted() const { return false; }
++// -- GODOT end --
+ void checkCommitted();
+
+ void print();
+diff --git a/core/network.cpp b/core/network.cpp
+index 8c2de09..ed8328c 100644
+--- a/core/network.cpp
++++ b/core/network.cpp
+@@ -17,6 +17,9 @@
+ #include "upsample.h"
+ #include "weights_reorder.h"
+ #include "network.h"
++// -- GODOT start --
++#include <cstring>
++// -- GODOT end --
+
+ namespace oidn {
+
+diff --git a/core/transfer_function.cpp b/core/transfer_function.cpp
+index 601f814..487f0a9 100644
+--- a/core/transfer_function.cpp
++++ b/core/transfer_function.cpp
+@@ -24,6 +24,10 @@ namespace oidn {
+ float AutoexposureNode::autoexposure(const Image& color)
+ {
+ assert(color.format == Format::Float3);
++// -- GODOT start --
++// We don't want to mess with TTB and we don't use autoexposure, so we disable this code
++#if 0
++// -- GODOT end --
+
+ constexpr float key = 0.18f;
+ constexpr float eps = 1e-8f;
+@@ -89,6 +93,10 @@ namespace oidn {
+ );
+
+ return (sum.second > 0) ? (key / exp2(sum.first / float(sum.second))) : 1.f;
++// -- GODOT start --
++#endif
++ return 1.0;
++// -- GODOT end --
+ }
+
+ } // namespace oidn
diff --git a/thirdparty/oidn/patches/mkl-dnn-fix-vs2017-build.patch b/thirdparty/oidn/patches/mkl-dnn-fix-vs2017-build.patch
new file mode 100644
index 0000000000..50d94ebffa
--- /dev/null
+++ b/thirdparty/oidn/patches/mkl-dnn-fix-vs2017-build.patch
@@ -0,0 +1,45 @@
+Rediffed by @akien-mga to match oidn 1.1.0 source.
+
+From 1e42e6db81e1a5270ecc0191c5385ce7e7d978e9 Mon Sep 17 00:00:00 2001
+From: Jeremy Wong <jmw@netvigator.com>
+Date: Wed, 11 Sep 2019 04:46:53 +0800
+Subject: [PATCH] src: initialize members in some structures to prevent compile
+ errors with VS2017
+
+addresses "error C3615: constexpr function '...' cannot result in a constant expression" with VS2017
+---
+ src/cpu/rnn/rnn_reorders.hpp | 2 +-
+ src/cpu/simple_concat.hpp | 6 +++---
+ src/cpu/simple_sum.hpp | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/thirdparty/oidn/mkl-dnn/src/cpu/rnn/rnn_reorders.hpp b/thirdparty/oidn/mkl-dnn/src/cpu/rnn/rnn_reorders.hpp
+index 597c63e3f8..ae1551390a 100644
+--- a/thirdparty/oidn/mkl-dnn/src/cpu/rnn/rnn_reorders.hpp
++++ b/thirdparty/oidn/mkl-dnn/src/cpu/rnn/rnn_reorders.hpp
+@@ -131,7 +131,7 @@ struct rnn_weights_reorder_t : public cpu_primitive_t {
+ return status::success;
+ }
+
+- format_tag_t itag_;
++ format_tag_t itag_ = mkldnn_format_tag_undef;
+
+ private:
+ void init_scratchpad() {
+diff --git a/thirdparty/oidn/mkl-dnn/src/cpu/simple_concat.hpp b/thirdparty/oidn/mkl-dnn/src/cpu/simple_concat.hpp
+index 5177275452..057cc3c4c7 100644
+--- a/thirdparty/oidn/mkl-dnn/src/cpu/simple_concat.hpp
++++ b/thirdparty/oidn/mkl-dnn/src/cpu/simple_concat.hpp
+@@ -96,9 +96,9 @@ struct simple_concat_t: public cpu_primitive_t {
+ return status::success;
+ }
+
+- int perm_[MKLDNN_MAX_NDIMS];
+- int iperm_[MKLDNN_MAX_NDIMS];
+- dims_t blocks_;
++ int perm_[MKLDNN_MAX_NDIMS] {};
++ int iperm_[MKLDNN_MAX_NDIMS] {};
++ dims_t blocks_ {};
+
+ dim_t nelems_to_concat(const memory_desc_wrapper &data_d) const {
+ const int ndims = data_d.ndims();
diff --git a/thirdparty/oidn/weights/LICENSE.txt b/thirdparty/oidn/weights/LICENSE.txt
new file mode 100644
index 0000000000..d645695673
--- /dev/null
+++ b/thirdparty/oidn/weights/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.