summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--core/class_db.cpp26
-rw-r--r--core/class_db.h5
-rw-r--r--core/color.cpp12
-rw-r--r--core/color.h2
-rw-r--r--core/engine.cpp12
-rw-r--r--core/engine.h5
-rw-r--r--core/math/math_funcs.cpp2
-rw-r--r--core/math/random_number_generator.cpp5
-rw-r--r--core/math/random_number_generator.h16
-rw-r--r--core/math/random_pcg.h4
-rw-r--r--core/math/rect2.h74
-rw-r--r--core/os/main_loop.cpp5
-rw-r--r--core/typedefs.h14
-rw-r--r--core/variant_call.cpp41
-rw-r--r--doc/classes/AABB.xml12
-rw-r--r--doc/classes/AnimatedSprite2D.xml6
-rw-r--r--doc/classes/Array.xml6
-rw-r--r--doc/classes/BaseMaterial3D.xml25
-rw-r--r--doc/classes/Basis.xml19
-rw-r--r--doc/classes/CPUParticles2D.xml4
-rw-r--r--doc/classes/Callable.xml2
-rw-r--r--doc/classes/CanvasGroup.xml21
-rw-r--r--doc/classes/CanvasItem.xml90
-rw-r--r--doc/classes/CanvasTexture.xml29
-rw-r--r--doc/classes/Color.xml42
-rw-r--r--doc/classes/ColorRect.xml2
-rw-r--r--doc/classes/Control.xml39
-rw-r--r--doc/classes/DirectionalLight2D.xml20
-rw-r--r--doc/classes/EditorPlugin.xml2
-rw-r--r--doc/classes/GPUParticles2D.xml4
-rw-r--r--doc/classes/Geometry2D.xml4
-rw-r--r--doc/classes/HTTPClient.xml1
-rw-r--r--doc/classes/HTTPRequest.xml8
-rw-r--r--doc/classes/Light2D.xml56
-rw-r--r--doc/classes/LinkButton.xml1
-rw-r--r--doc/classes/MainLoop.xml32
-rw-r--r--doc/classes/MenuButton.xml1
-rw-r--r--doc/classes/NinePatchRect.xml12
-rw-r--r--doc/classes/NodePath.xml6
-rw-r--r--doc/classes/PackedByteArray.xml22
-rw-r--r--doc/classes/PackedColorArray.xml38
-rw-r--r--doc/classes/PackedFloat32Array.xml30
-rw-r--r--doc/classes/PackedFloat64Array.xml30
-rw-r--r--doc/classes/PackedInt32Array.xml38
-rw-r--r--doc/classes/PackedInt64Array.xml38
-rw-r--r--doc/classes/PackedStringArray.xml38
-rw-r--r--doc/classes/PackedVector2Array.xml38
-rw-r--r--doc/classes/PackedVector3Array.xml38
-rw-r--r--doc/classes/PacketPeerUDP.xml14
-rw-r--r--doc/classes/Plane.xml14
-rw-r--r--doc/classes/PointLight2D.xml27
-rw-r--r--doc/classes/Polygon2D.xml10
-rw-r--r--doc/classes/ProjectSettings.xml11
-rw-r--r--doc/classes/Quat.xml65
-rw-r--r--doc/classes/RandomNumberGenerator.xml3
-rw-r--r--doc/classes/Rect2.xml2
-rw-r--r--doc/classes/Rect2i.xml6
-rw-r--r--doc/classes/RenderingServer.xml68
-rw-r--r--doc/classes/Signal.xml2
-rw-r--r--doc/classes/Sprite2D.xml13
-rw-r--r--doc/classes/String.xml54
-rw-r--r--doc/classes/StyleBoxTexture.xml4
-rw-r--r--doc/classes/Tabs.xml2
-rw-r--r--doc/classes/TextEdit.xml40
-rw-r--r--doc/classes/Texture2D.xml32
-rw-r--r--doc/classes/TileSet.xml21
-rw-r--r--doc/classes/Transform.xml22
-rw-r--r--doc/classes/Transform2D.xml36
-rw-r--r--doc/classes/Vector2.xml6
-rw-r--r--doc/classes/Vector3.xml10
-rw-r--r--doc/classes/Vector3i.xml6
-rw-r--r--doc/classes/Viewport.xml6
-rw-r--r--drivers/vulkan/SCsub1
-rw-r--r--drivers/vulkan/rendering_device_vulkan.cpp15
-rw-r--r--drivers/vulkan/vulkan_context.cpp28
-rw-r--r--drivers/vulkan/vulkan_context.h47
-rw-r--r--editor/editor_node.cpp7
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp2
-rw-r--r--editor/plugins/polygon_2d_editor_plugin.cpp3
-rw-r--r--editor/plugins/tile_map_editor_plugin.cpp10
-rw-r--r--editor/translations/af.po163
-rw-r--r--editor/translations/ar.po219
-rw-r--r--editor/translations/bg.po179
-rw-r--r--editor/translations/bn.po249
-rw-r--r--editor/translations/ca.po217
-rw-r--r--editor/translations/cs.po211
-rw-r--r--editor/translations/da.po170
-rw-r--r--editor/translations/de.po329
-rw-r--r--editor/translations/editor.pot140
-rw-r--r--editor/translations/el.po280
-rw-r--r--editor/translations/eo.po145
-rw-r--r--editor/translations/es.po338
-rw-r--r--editor/translations/es_AR.po219
-rw-r--r--editor/translations/et.po150
-rw-r--r--editor/translations/eu.po140
-rw-r--r--editor/translations/fa.po235
-rw-r--r--editor/translations/fi.po304
-rw-r--r--editor/translations/fil.po140
-rw-r--r--editor/translations/fr.po265
-rw-r--r--editor/translations/ga.po140
-rw-r--r--editor/translations/he.po858
-rw-r--r--editor/translations/hi.po161
-rw-r--r--editor/translations/hr.po536
-rw-r--r--editor/translations/hu.po190
-rw-r--r--editor/translations/id.po242
-rw-r--r--editor/translations/is.po143
-rw-r--r--editor/translations/it.po310
-rw-r--r--editor/translations/ja.po307
-rw-r--r--editor/translations/ka.po151
-rw-r--r--editor/translations/ko.po230
-rw-r--r--editor/translations/lt.po163
-rw-r--r--editor/translations/lv.po149
-rw-r--r--editor/translations/mi.po140
-rw-r--r--editor/translations/ml.po140
-rw-r--r--editor/translations/mr.po141
-rw-r--r--editor/translations/ms.po151
-rw-r--r--editor/translations/nb.po200
-rw-r--r--editor/translations/nl.po219
-rw-r--r--editor/translations/or.po140
-rw-r--r--editor/translations/pl.po305
-rw-r--r--editor/translations/pr.po159
-rw-r--r--editor/translations/pt.po309
-rw-r--r--editor/translations/pt_BR.po339
-rw-r--r--editor/translations/ro.po224
-rw-r--r--editor/translations/ru.po547
-rw-r--r--editor/translations/si.po140
-rw-r--r--editor/translations/sk.po257
-rw-r--r--editor/translations/sl.po180
-rw-r--r--editor/translations/sq.po166
-rw-r--r--editor/translations/sr_Cyrl.po226
-rw-r--r--editor/translations/sr_Latn.po145
-rw-r--r--editor/translations/sv.po279
-rw-r--r--editor/translations/ta.po140
-rw-r--r--editor/translations/te.po140
-rw-r--r--editor/translations/th.po1864
-rw-r--r--editor/translations/tr.po452
-rw-r--r--editor/translations/tzm.po12274
-rw-r--r--editor/translations/uk.po298
-rw-r--r--editor/translations/ur_PK.po160
-rw-r--r--editor/translations/vi.po192
-rw-r--r--editor/translations/zh_CN.po382
-rw-r--r--editor/translations/zh_HK.po181
-rw-r--r--editor/translations/zh_TW.po330
-rw-r--r--main/main.cpp11
-rw-r--r--modules/gdnative/gdnative/color.cpp7
-rw-r--r--modules/gdnative/gdnative_api.json7
-rw-r--r--modules/gdnative/include/gdnative/color.h2
-rw-r--r--modules/gdscript/gdscript_analyzer.cpp8
-rw-r--r--modules/gdscript/gdscript_function.cpp7
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/Color.cs14
-rw-r--r--modules/visual_script/doc_classes/VisualScriptPropertyGet.xml2
-rw-r--r--platform/android/android_keys_utils.h127
-rw-r--r--platform/android/display_server_android.cpp168
-rw-r--r--platform/android/display_server_android.h16
-rw-r--r--platform/android/java/app/build.gradle4
-rw-r--r--platform/android/java/app/config.gradle9
-rw-r--r--platform/android/java/gradle.properties2
-rw-r--r--platform/android/java/gradle/wrapper/gradle-wrapper.properties2
-rw-r--r--platform/android/java/lib/build.gradle20
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/Godot.java58
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java3
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotLib.java8
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java9
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java105
-rw-r--r--platform/android/java/nativeSrcsConfigs/AndroidManifest.xml2
-rw-r--r--platform/android/java/nativeSrcsConfigs/CMakeLists.txt (renamed from platform/android/java/lib/CMakeLists.txt)1
-rw-r--r--platform/android/java/nativeSrcsConfigs/README.md4
-rw-r--r--platform/android/java/nativeSrcsConfigs/build.gradle54
-rw-r--r--platform/android/java/settings.gradle1
-rw-r--r--platform/android/java_godot_lib_jni.cpp38
-rw-r--r--platform/android/java_godot_lib_jni.h9
-rw-r--r--platform/android/os_android.cpp1
-rw-r--r--platform/android/vulkan/vulkan_context_android.cpp1
-rw-r--r--platform/iphone/detect.py2
-rw-r--r--platform/windows/joypad_windows.cpp4
-rw-r--r--platform/windows/joypad_windows.h2
-rw-r--r--platform/windows/os_windows.cpp10
-rw-r--r--scene/2d/animated_sprite_2d.cpp3
-rw-r--r--scene/2d/canvas_group.cpp87
-rw-r--r--scene/2d/canvas_group.h59
-rw-r--r--scene/2d/light_2d.cpp307
-rw-r--r--scene/2d/light_2d.h101
-rw-r--r--scene/2d/sprite_2d.cpp6
-rw-r--r--scene/animation/animation_player.cpp6
-rw-r--r--scene/gui/control.cpp4
-rw-r--r--scene/gui/gradient_edit.cpp2
-rw-r--r--scene/gui/tab_container.cpp6
-rw-r--r--scene/main/canvas_item.cpp22
-rw-r--r--scene/main/canvas_item.h4
-rw-r--r--scene/main/scene_tree.cpp6
-rw-r--r--scene/main/viewport.cpp152
-rw-r--r--scene/main/viewport.h12
-rw-r--r--scene/register_scene_types.cpp7
-rw-r--r--scene/resources/dynamic_font.cpp17
-rw-r--r--scene/resources/material.cpp168
-rw-r--r--scene/resources/material.h138
-rw-r--r--servers/rendering/rasterizer.h31
-rw-r--r--servers/rendering/rasterizer_rd/rasterizer_canvas_rd.cpp337
-rw-r--r--servers/rendering/rasterizer_rd/rasterizer_canvas_rd.h22
-rw-r--r--servers/rendering/rasterizer_rd/rasterizer_effects_rd.cpp37
-rw-r--r--servers/rendering/rasterizer_rd/rasterizer_effects_rd.h10
-rw-r--r--servers/rendering/rasterizer_rd/rasterizer_scene_high_end_rd.cpp39
-rw-r--r--servers/rendering/rasterizer_rd/rasterizer_scene_high_end_rd.h8
-rw-r--r--servers/rendering/rasterizer_rd/rasterizer_storage_rd.cpp91
-rw-r--r--servers/rendering/rasterizer_rd/rasterizer_storage_rd.h6
-rw-r--r--servers/rendering/rasterizer_rd/shaders/canvas.glsl226
-rw-r--r--servers/rendering/rasterizer_rd/shaders/canvas_uniforms_inc.glsl9
-rw-r--r--servers/rendering/rasterizer_rd/shaders/copy.glsl28
-rw-r--r--servers/rendering/rasterizer_rd/shaders/scene_high_end.glsl110
-rw-r--r--servers/rendering/rendering_server_canvas.cpp188
-rw-r--r--servers/rendering/rendering_server_canvas.h15
-rw-r--r--servers/rendering/rendering_server_raster.h12
-rw-r--r--servers/rendering/rendering_server_viewport.cpp152
-rw-r--r--servers/rendering/rendering_server_viewport.h9
-rw-r--r--servers/rendering/rendering_server_wrap_mt.h12
-rw-r--r--servers/rendering/shader_types.cpp8
-rw-r--r--servers/rendering_server.cpp16
-rw-r--r--servers/rendering_server.h41
-rw-r--r--tests/test_color.h3
-rw-r--r--thirdparty/misc/pcg.cpp10
-rw-r--r--thirdparty/misc/pcg.h1
-rw-r--r--thirdparty/vulkan/loader/loader.c7
-rw-r--r--thirdparty/vulkan/patches/Vulkan-Loader-pr475.patch37
225 files changed, 26228 insertions, 7124 deletions
diff --git a/.gitignore b/.gitignore
index 678d19148f..f928c2e6ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,6 +24,7 @@ platform/android/java/lib/.cxx/
platform/android/java/libs/*
platform/android/java/app/libs/*
platform/android/java/lib/.cxx/*
+platform/android/java/nativeSrcsConfigs/.cxx/
# General c++ generated files
*.lib
diff --git a/core/class_db.cpp b/core/class_db.cpp
index ad85cd0d62..81bc901561 100644
--- a/core/class_db.cpp
+++ b/core/class_db.cpp
@@ -242,21 +242,25 @@ HashMap<StringName, ClassDB::ClassInfo> ClassDB::classes;
HashMap<StringName, StringName> ClassDB::resource_base_extensions;
HashMap<StringName, StringName> ClassDB::compat_classes;
-bool ClassDB::is_parent_class(const StringName &p_class, const StringName &p_inherits) {
- OBJTYPE_RLOCK;
-
+bool ClassDB::_is_parent_class(const StringName &p_class, const StringName &p_inherits) {
StringName inherits = p_class;
while (inherits.operator String().length()) {
if (inherits == p_inherits) {
return true;
}
- inherits = get_parent_class(inherits);
+ inherits = _get_parent_class(inherits);
}
return false;
}
+bool ClassDB::is_parent_class(const StringName &p_class, const StringName &p_inherits) {
+ OBJTYPE_RLOCK;
+
+ return _is_parent_class(p_class, p_inherits);
+}
+
void ClassDB::get_class_list(List<StringName> *p_classes) {
OBJTYPE_RLOCK;
@@ -275,7 +279,7 @@ void ClassDB::get_inheriters_from_class(const StringName &p_class, List<StringNa
const StringName *k = nullptr;
while ((k = classes.next(k))) {
- if (*k != p_class && is_parent_class(*k, p_class)) {
+ if (*k != p_class && _is_parent_class(*k, p_class)) {
p_classes->push_back(*k);
}
}
@@ -287,7 +291,7 @@ void ClassDB::get_direct_inheriters_from_class(const StringName &p_class, List<S
const StringName *k = nullptr;
while ((k = classes.next(k))) {
- if (*k != p_class && get_parent_class(*k) == p_class) {
+ if (*k != p_class && _get_parent_class(*k) == p_class) {
p_classes->push_back(*k);
}
}
@@ -315,14 +319,18 @@ StringName ClassDB::get_compatibility_remapped_class(const StringName &p_class)
return p_class;
}
-StringName ClassDB::get_parent_class(const StringName &p_class) {
- OBJTYPE_RLOCK;
-
+StringName ClassDB::_get_parent_class(const StringName &p_class) {
ClassInfo *ti = classes.getptr(p_class);
ERR_FAIL_COND_V_MSG(!ti, StringName(), "Cannot get class '" + String(p_class) + "'.");
return ti->inherits;
}
+StringName ClassDB::get_parent_class(const StringName &p_class) {
+ OBJTYPE_RLOCK;
+
+ return _get_parent_class(p_class);
+}
+
ClassDB::APIType ClassDB::get_api_type(const StringName &p_class) {
OBJTYPE_RLOCK;
diff --git a/core/class_db.h b/core/class_db.h
index 4734b06c7a..22072066d9 100644
--- a/core/class_db.h
+++ b/core/class_db.h
@@ -164,6 +164,11 @@ public:
static HashMap<StringName, HashMap<StringName, Variant>> default_values;
static Set<StringName> default_values_cached;
+private:
+ // Non-locking variants of get_parent_class and is_parent_class.
+ static StringName _get_parent_class(const StringName &p_class);
+ static bool _is_parent_class(const StringName &p_class, const StringName &p_inherits);
+
public:
// DO NOT USE THIS!!!!!! NEEDS TO BE PUBLIC BUT DO NOT USE NO MATTER WHAT!!!
template <class T>
diff --git a/core/color.cpp b/core/color.cpp
index c61ee0e64a..4047ca5037 100644
--- a/core/color.cpp
+++ b/core/color.cpp
@@ -217,12 +217,6 @@ void Color::invert() {
b = 1.0 - b;
}
-void Color::contrast() {
- r = Math::fmod(r + 0.5, 1.0);
- g = Math::fmod(g + 0.5, 1.0);
- b = Math::fmod(b + 0.5, 1.0);
-}
-
Color Color::hex(uint32_t p_hex) {
float a = (p_hex & 0xFF) / 255.0;
p_hex >>= 8;
@@ -284,12 +278,6 @@ Color Color::inverted() const {
return c;
}
-Color Color::contrasted() const {
- Color c = *this;
- c.contrast();
- return c;
-}
-
Color Color::html(const String &p_rgba) {
String color = p_rgba;
if (color.length() == 0) {
diff --git a/core/color.h b/core/color.h
index 2dbbc52905..8980efe74a 100644
--- a/core/color.h
+++ b/core/color.h
@@ -91,9 +91,7 @@ struct Color {
bool is_equal_approx(const Color &p_color) const;
void invert();
- void contrast();
Color inverted() const;
- Color contrasted() const;
_FORCE_INLINE_ Color lerp(const Color &p_b, float p_t) const {
Color res = *this;
diff --git a/core/engine.cpp b/core/engine.cpp
index d08cf92ecb..b0037ffb37 100644
--- a/core/engine.cpp
+++ b/core/engine.cpp
@@ -181,6 +181,14 @@ String Engine::get_license_text() const {
return String(GODOT_LICENSE_TEXT);
}
+bool Engine::is_abort_on_gpu_errors_enabled() const {
+ return abort_on_gpu_errors;
+}
+
+bool Engine::is_validation_layers_enabled() const {
+ return use_validation_layers;
+}
+
void Engine::add_singleton(const Singleton &p_singleton) {
singletons.push_back(p_singleton);
singleton_ptrs[p_singleton.name] = p_singleton.ptr;
@@ -208,10 +216,6 @@ Engine *Engine::get_singleton() {
return singleton;
}
-bool Engine::is_abort_on_gpu_errors_enabled() const {
- return abort_on_gpu_errors;
-}
-
Engine::Engine() {
singleton = this;
}
diff --git a/core/engine.h b/core/engine.h
index fef330c0c1..b581c58ec5 100644
--- a/core/engine.h
+++ b/core/engine.h
@@ -60,10 +60,10 @@ private:
float _fps = 1;
int _target_fps = 0;
float _time_scale = 1.0;
- bool _pixel_snap = false;
uint64_t _physics_frames = 0;
float _physics_interpolation_fraction = 0.0f;
bool abort_on_gpu_errors = false;
+ bool use_validation_layers = false;
uint64_t _idle_frames = 0;
bool _in_physics = false;
@@ -109,8 +109,6 @@ public:
bool has_singleton(const String &p_name) const;
Object *get_singleton_object(const String &p_name) const;
- _FORCE_INLINE_ bool get_use_pixel_snap() const { return _pixel_snap; }
-
#ifdef TOOLS_ENABLED
_FORCE_INLINE_ void set_editor_hint(bool p_enabled) { editor_hint = p_enabled; }
_FORCE_INLINE_ bool is_editor_hint() const { return editor_hint; }
@@ -127,6 +125,7 @@ public:
String get_license_text() const;
bool is_abort_on_gpu_errors_enabled() const;
+ bool is_validation_layers_enabled() const;
Engine();
virtual ~Engine() {}
diff --git a/core/math/math_funcs.cpp b/core/math/math_funcs.cpp
index 1585c96b38..4154713a87 100644
--- a/core/math/math_funcs.cpp
+++ b/core/math/math_funcs.cpp
@@ -34,8 +34,6 @@
RandomPCG Math::default_rand(RandomPCG::DEFAULT_SEED, RandomPCG::DEFAULT_INC);
-#define PHI 0x9e3779b9
-
uint32_t Math::rand_from_seed(uint64_t *seed) {
RandomPCG rng = RandomPCG(*seed, RandomPCG::DEFAULT_INC);
uint32_t r = rng.rand();
diff --git a/core/math/random_number_generator.cpp b/core/math/random_number_generator.cpp
index 67f4c0b14a..a124f63030 100644
--- a/core/math/random_number_generator.cpp
+++ b/core/math/random_number_generator.cpp
@@ -33,7 +33,6 @@
void RandomNumberGenerator::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_seed", "seed"), &RandomNumberGenerator::set_seed);
ClassDB::bind_method(D_METHOD("get_seed"), &RandomNumberGenerator::get_seed);
- ADD_PROPERTY(PropertyInfo(Variant::INT, "seed"), "set_seed", "get_seed");
ClassDB::bind_method(D_METHOD("randi"), &RandomNumberGenerator::randi);
ClassDB::bind_method(D_METHOD("randf"), &RandomNumberGenerator::randf);
@@ -41,4 +40,8 @@ void RandomNumberGenerator::_bind_methods() {
ClassDB::bind_method(D_METHOD("randf_range", "from", "to"), &RandomNumberGenerator::randf_range);
ClassDB::bind_method(D_METHOD("randi_range", "from", "to"), &RandomNumberGenerator::randi_range);
ClassDB::bind_method(D_METHOD("randomize"), &RandomNumberGenerator::randomize);
+
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "seed"), "set_seed", "get_seed");
+ // Default value is non-deterministic, override it for doc generation purposes.
+ ADD_PROPERTY_DEFAULT("seed", 0);
}
diff --git a/core/math/random_number_generator.h b/core/math/random_number_generator.h
index 416e52ea87..2e7941b345 100644
--- a/core/math/random_number_generator.h
+++ b/core/math/random_number_generator.h
@@ -58,12 +58,18 @@ public:
_FORCE_INLINE_ real_t randfn(real_t mean = 0.0, real_t deviation = 1.0) { return randbase.randfn(mean, deviation); }
_FORCE_INLINE_ int randi_range(int from, int to) {
- unsigned int ret = randbase.rand();
- if (to < from) {
- return ret % (from - to + 1) + to;
- } else {
- return ret % (to - from + 1) + from;
+ int range;
+ int min;
+ if (to > from) {
+ range = to - from + 1;
+ min = from;
+ } else if (to < from) {
+ range = from - to + 1;
+ min = to;
+ } else { // from == to
+ return from;
}
+ return randbase.rand(range) + min;
}
RandomNumberGenerator() {}
diff --git a/core/math/random_pcg.h b/core/math/random_pcg.h
index 09b13ab74d..dfdae53eed 100644
--- a/core/math/random_pcg.h
+++ b/core/math/random_pcg.h
@@ -81,6 +81,10 @@ public:
current_seed = pcg.state;
return pcg32_random_r(&pcg);
}
+ _FORCE_INLINE_ uint32_t rand(uint32_t bounds) {
+ current_seed = pcg.state;
+ return pcg32_boundedrand_r(&pcg, bounds);
+ }
// Obtaining floating point numbers in [0, 1] range with "good enough" uniformity.
// These functions sample the output of rand() as the fraction part of an infinite binary number,
diff --git a/core/math/rect2.h b/core/math/rect2.h
index 7660db71eb..5a746aa732 100644
--- a/core/math/rect2.h
+++ b/core/math/rect2.h
@@ -244,6 +244,68 @@ struct Rect2 {
return Rect2(Point2(position.x + MIN(size.x, 0), position.y + MIN(size.y, 0)), size.abs());
}
+ Vector2 get_support(const Vector2 &p_normal) const {
+ Vector2 half_extents = size * 0.5;
+ Vector2 ofs = position + half_extents;
+ return Vector2(
+ (p_normal.x > 0) ? -half_extents.x : half_extents.x,
+ (p_normal.y > 0) ? -half_extents.y : half_extents.y) +
+ ofs;
+ }
+
+ _FORCE_INLINE_ bool intersects_filled_polygon(const Vector2 *p_points, int p_point_count) const {
+ Vector2 center = position + size * 0.5;
+ int side_plus = 0;
+ int side_minus = 0;
+ Vector2 end = position + size;
+
+ int i_f = p_point_count - 1;
+ for (int i = 0; i < p_point_count; i++) {
+ const Vector2 &a = p_points[i_f];
+ const Vector2 &b = p_points[i];
+ i_f = i;
+
+ Vector2 r = (b - a);
+ float l = r.length();
+ if (l == 0.0) {
+ continue;
+ }
+
+ //check inside
+ Vector2 tg = r.tangent();
+ float s = tg.dot(center) - tg.dot(a);
+ if (s < 0.0) {
+ side_plus++;
+ } else {
+ side_minus++;
+ }
+
+ //check ray box
+ r /= l;
+ Vector2 ir(1.0 / r.x, 1.0 / r.y);
+
+ // lb is the corner of AABB with minimal coordinates - left bottom, rt is maximal corner
+ // r.org is origin of ray
+ Vector2 t13 = (position - a) * ir;
+ Vector2 t24 = (end - a) * ir;
+
+ float tmin = MAX(MIN(t13.x, t24.x), MIN(t13.y, t24.y));
+ float tmax = MIN(MAX(t13.x, t24.x), MAX(t13.y, t24.y));
+
+ // if tmax < 0, ray (line) is intersecting AABB, but the whole AABB is behind us
+ if (tmax < 0 || tmin > tmax || tmin >= l) {
+ continue;
+ }
+
+ return true;
+ }
+
+ if (side_plus * side_minus == 0) {
+ return true; //all inside
+ } else {
+ return false;
+ }
+ }
operator String() const { return String(position) + ", " + String(size); }
Rect2() {}
@@ -305,8 +367,8 @@ struct Rect2i {
new_rect.position.x = MAX(p_rect.position.x, position.x);
new_rect.position.y = MAX(p_rect.position.y, position.y);
- Point2 p_rect_end = p_rect.position + p_rect.size;
- Point2 end = position + size;
+ Point2i p_rect_end = p_rect.position + p_rect.size;
+ Point2i end = position + size;
new_rect.size.x = (int)(MIN(p_rect_end.x, end.x) - new_rect.position.x);
new_rect.size.y = (int)(MIN(p_rect_end.y, end.y) - new_rect.position.y);
@@ -328,7 +390,7 @@ struct Rect2i {
return new_rect;
}
- bool has_point(const Point2 &p_point) const {
+ bool has_point(const Point2i &p_point) const {
if (p_point.x < position.x) {
return false;
}
@@ -423,10 +485,10 @@ struct Rect2i {
size(p_r2.size) {
}
Rect2i(int p_x, int p_y, int p_width, int p_height) :
- position(Point2(p_x, p_y)),
- size(Size2(p_width, p_height)) {
+ position(Point2i(p_x, p_y)),
+ size(Size2i(p_width, p_height)) {
}
- Rect2i(const Point2 &p_pos, const Size2 &p_size) :
+ Rect2i(const Point2i &p_pos, const Size2i &p_size) :
position(p_pos),
size(p_size) {
}
diff --git a/core/os/main_loop.cpp b/core/os/main_loop.cpp
index 434f6fa300..6651fb80d7 100644
--- a/core/os/main_loop.cpp
+++ b/core/os/main_loop.cpp
@@ -33,11 +33,6 @@
#include "core/script_language.h"
void MainLoop::_bind_methods() {
- ClassDB::bind_method(D_METHOD("init"), &MainLoop::init);
- ClassDB::bind_method(D_METHOD("iteration", "delta"), &MainLoop::iteration);
- ClassDB::bind_method(D_METHOD("idle", "delta"), &MainLoop::idle);
- ClassDB::bind_method(D_METHOD("finish"), &MainLoop::finish);
-
BIND_VMETHOD(MethodInfo("_initialize"));
BIND_VMETHOD(MethodInfo(Variant::BOOL, "_iteration", PropertyInfo(Variant::FLOAT, "delta")));
BIND_VMETHOD(MethodInfo(Variant::BOOL, "_idle", PropertyInfo(Variant::FLOAT, "delta")));
diff --git a/core/typedefs.h b/core/typedefs.h
index 2472e5fcd9..f0c32f2c95 100644
--- a/core/typedefs.h
+++ b/core/typedefs.h
@@ -193,6 +193,20 @@ static inline unsigned int nearest_shift(unsigned int p_number) {
return 0;
}
+// constexpr function to find the floored log2 of a number
+template <typename T>
+constexpr T floor_log2(T x) {
+ return x < 2 ? x : 1 + floor_log2(x >> 1);
+}
+
+// Get the number of bits needed to represent the number.
+// IE, if you pass in 8, you will get 4.
+// If you want to know how many bits are needed to store 8 values however, pass in (8 - 1).
+template <typename T>
+constexpr T get_num_bits(T x) {
+ return floor_log2(x);
+}
+
// Swap 16, 32 and 64 bits value for endianness.
#if defined(__GNUC__)
#define BSWAP16(x) __builtin_bswap16(x)
diff --git a/core/variant_call.cpp b/core/variant_call.cpp
index 6ffefccb67..d2b626a942 100644
--- a/core/variant_call.cpp
+++ b/core/variant_call.cpp
@@ -1357,7 +1357,7 @@ void register_variant_methods() {
_VariantCall::construct_funcs = memnew_arr(_VariantCall::ConstructFunc, Variant::VARIANT_MAX);
_VariantCall::constant_data = memnew_arr(_VariantCall::ConstantData, Variant::VARIANT_MAX);
- /* STRING */
+ /* String */
bind_method(String, casecmp_to, sarray("to"), varray());
bind_method(String, nocasecmp_to, sarray("to"), varray());
@@ -1405,7 +1405,7 @@ void register_variant_methods() {
bind_method(String, plus_file, sarray("file"), varray());
bind_method(String, ord_at, sarray("at"), varray());
bind_method(String, dedent, sarray(), varray());
- //string needs to be immutable when binding
+ // FIXME: String needs to be immutable when binding
//bind_method(String, erase, sarray("position", "chars"), varray());
bind_method(String, hash, sarray(), varray());
bind_method(String, md5_text, sarray(), varray());
@@ -1415,7 +1415,7 @@ void register_variant_methods() {
bind_method(String, sha1_buffer, sarray(), varray());
bind_method(String, sha256_buffer, sarray(), varray());
bind_method(String, empty, sarray(), varray());
- //static function, not sure how to bind
+ // FIXME: Static function, not sure how to bind
//bind_method(String, humanize_size, sarray("size"), varray());
bind_method(String, is_abs_path, sarray(), varray());
@@ -1457,7 +1457,7 @@ void register_variant_methods() {
bind_method(String, to_utf16_buffer, sarray(), varray());
bind_method(String, to_utf32_buffer, sarray(), varray());
- /* VECTOR2 */
+ /* Vector2 */
bind_method(Vector2, angle, sarray(), varray());
bind_method(Vector2, angle_to, sarray("to"), varray());
@@ -1490,15 +1490,16 @@ void register_variant_methods() {
bind_method(Vector2, cross, sarray("with"), varray());
bind_method(Vector2, abs, sarray(), varray());
bind_method(Vector2, sign, sarray(), varray());
+ bind_method(Vector2, snapped, sarray("by"), varray());
bind_method(Vector2, clamped, sarray("length"), varray());
- /* VECTOR2I */
+ /* Vector2i */
bind_method(Vector2i, aspect, sarray(), varray());
bind_method(Vector2i, sign, sarray(), varray());
bind_method(Vector2i, abs, sarray(), varray());
- /* RECT2 */
+ /* Rect2 */
bind_method(Rect2, get_area, sarray(), varray());
bind_method(Rect2, has_no_area, sarray(), varray());
@@ -1585,7 +1586,7 @@ void register_variant_methods() {
bind_methodv(intersects_ray, &Plane::intersects_ray_bind, sarray("from", "dir"), varray());
bind_methodv(intersects_segment, &Plane::intersects_segment_bind, sarray("from", "to"), varray());
- /* Quaternion */
+ /* Quat */
bind_method(Quat, length, sarray(), varray());
bind_method(Quat, length_squared, sarray(), varray());
@@ -1594,13 +1595,12 @@ void register_variant_methods() {
bind_method(Quat, is_equal_approx, sarray("to"), varray());
bind_method(Quat, inverse, sarray(), varray());
bind_method(Quat, dot, sarray("with"), varray());
- bind_method(Quat, xform, sarray("v3"), varray());
bind_method(Quat, slerp, sarray("b", "t"), varray());
bind_method(Quat, slerpni, sarray("b", "t"), varray());
bind_method(Quat, cubic_slerp, sarray("b", "pre_a", "post_b", "t"), varray());
bind_method(Quat, get_euler, sarray(), varray());
- //Quat is atomic, this should be done via construcror
+ // FIXME: Quat is atomic, this should be done via construcror
//ADDFUNC1(QUAT, NIL, Quat, set_euler, VECTOR3, "euler", varray());
//ADDFUNC2(QUAT, NIL, Quat, set_axis_angle, VECTOR3, "axis", FLOAT, "angle", varray());
@@ -1614,14 +1614,13 @@ void register_variant_methods() {
bind_method(Color, to_rgba64, sarray(), varray());
bind_method(Color, inverted, sarray(), varray());
- bind_method(Color, contrasted, sarray(), varray());
bind_method(Color, lerp, sarray("b", "t"), varray());
bind_method(Color, lightened, sarray("amount"), varray());
bind_method(Color, darkened, sarray("amount"), varray());
bind_method(Color, to_html, sarray("with_alpha"), varray(true));
bind_method(Color, blend, sarray("over"), varray());
- //Color is immutable, need to probably find a way to do this via constructor
+ // FIXME: Color is immutable, need to probably find a way to do this via constructor
//ADDFUNC4R(COLOR, COLOR, Color, from_hsv, FLOAT, "h", FLOAT, "s", FLOAT, "v", FLOAT, "a", varray(1.0));
bind_method(Color, is_equal_approx, sarray("to"), varray());
@@ -1651,8 +1650,6 @@ void register_variant_methods() {
bind_method(Callable, hash, sarray(), varray());
bind_method(Callable, unbind, sarray("argcount"), varray());
- //#define bind_custom(m_type, m_name, m_method, m_flags, m_arg_types, m_ret_type, m_arg_names) _VariantCall::_bind_custom(m_type, m_name, m_method, m_flags, m_arg_types, m_ret_type)
-
bind_custom(Variant::CALLABLE, "call", _VariantCall::func_Callable_call, Variant::InternalMethod::FLAG_VARARGS | Variant::InternalMethod::FLAG_RETURNS_VARIANT, Vector<Variant::Type>(), Variant::NIL, sarray());
bind_custom(Variant::CALLABLE, "call_deferred", _VariantCall::func_Callable_call_deferred, Variant::InternalMethod::FLAG_VARARGS, Vector<Variant::Type>(), Variant::NIL, sarray());
bind_custom(Variant::CALLABLE, "bind", _VariantCall::func_Callable_bind, Variant::InternalMethod::FLAG_VARARGS, Vector<Variant::Type>(), Variant::CALLABLE, sarray());
@@ -1682,9 +1679,6 @@ void register_variant_methods() {
bind_method(Transform2D, rotated, sarray("phi"), varray());
bind_method(Transform2D, scaled, sarray("scale"), varray());
bind_method(Transform2D, translated, sarray("offset"), varray());
- //too complex to bind this, operator * should be used instead
- //ADDFUNC1R(TRANSFORM2D, NIL, Transform2D, xform, NIL, "v", varray());
- //ADDFUNC1R(TRANSFORM2D, NIL, Transform2D, xform_inv, NIL, "v", varray());
bind_method(Transform2D, basis_xform, sarray("v"), varray());
bind_method(Transform2D, basis_xform_inv, sarray("v"), varray());
bind_method(Transform2D, interpolate_with, sarray("xform", "t"), varray());
@@ -1703,9 +1697,6 @@ void register_variant_methods() {
bind_method(Basis, tdotx, sarray("with"), varray());
bind_method(Basis, tdoty, sarray("with"), varray());
bind_method(Basis, tdotz, sarray("with"), varray());
- //use the operators instead
- //ADDFUNC1R(BASIS, VECTOR3, Basis, xform, VECTOR3, "v", varray());
- //ADDFUNC1R(BASIS, VECTOR3, Basis, xform_inv, VECTOR3, "v", varray());
bind_method(Basis, get_orthogonal_index, sarray(), varray());
bind_method(Basis, slerp, sarray("b", "t"), varray());
bind_method(Basis, is_equal_approx, sarray("b"), varray());
@@ -1748,9 +1739,6 @@ void register_variant_methods() {
bind_method(Transform, looking_at, sarray("target", "up"), varray());
bind_method(Transform, interpolate_with, sarray("xform", "weight"), varray());
bind_method(Transform, is_equal_approx, sarray("xform"), varray());
- //use the operators instead
- //ADDFUNC1R(TRANSFORM, NIL, Transform, xform, NIL, "v", varray());
- //ADDFUNC1R(TRANSFORM, NIL, Transform, xform_inv, NIL, "v", varray());
/* Dictionary */
@@ -1923,6 +1911,7 @@ void register_variant_methods() {
bind_method(PackedVector2Array, invert, sarray(), varray());
bind_method(PackedVector2Array, subarray, sarray("from", "to"), varray());
bind_method(PackedVector2Array, to_byte_array, sarray(), varray());
+ bind_method(PackedVector2Array, sort, sarray(), varray());
/* Vector3 Array */
@@ -1939,6 +1928,7 @@ void register_variant_methods() {
bind_method(PackedVector3Array, invert, sarray(), varray());
bind_method(PackedVector3Array, subarray, sarray("from", "to"), varray());
bind_method(PackedVector3Array, to_byte_array, sarray(), varray());
+ bind_method(PackedVector3Array, sort, sarray(), varray());
/* Color Array */
@@ -1955,8 +1945,9 @@ void register_variant_methods() {
bind_method(PackedColorArray, invert, sarray(), varray());
bind_method(PackedColorArray, subarray, sarray("from", "to"), varray());
bind_method(PackedColorArray, to_byte_array, sarray(), varray());
+ bind_method(PackedColorArray, sort, sarray(), varray());
- /* REGISTER CONSTRUCTORS */
+ /* Register constructors */
_VariantCall::add_constructor(_VariantCall::Vector2_init1, Variant::VECTOR2, "x", Variant::FLOAT, "y", Variant::FLOAT);
_VariantCall::add_constructor(_VariantCall::Vector2i_init1, Variant::VECTOR2I, "x", Variant::INT, "y", Variant::INT);
@@ -1964,7 +1955,7 @@ void register_variant_methods() {
_VariantCall::add_constructor(_VariantCall::Rect2_init1, Variant::RECT2, "position", Variant::VECTOR2, "size", Variant::VECTOR2);
_VariantCall::add_constructor(_VariantCall::Rect2_init2, Variant::RECT2, "x", Variant::FLOAT, "y", Variant::FLOAT, "width", Variant::FLOAT, "height", Variant::FLOAT);
- _VariantCall::add_constructor(_VariantCall::Rect2i_init1, Variant::RECT2I, "position", Variant::VECTOR2, "size", Variant::VECTOR2);
+ _VariantCall::add_constructor(_VariantCall::Rect2i_init1, Variant::RECT2I, "position", Variant::VECTOR2I, "size", Variant::VECTOR2I);
_VariantCall::add_constructor(_VariantCall::Rect2i_init2, Variant::RECT2I, "x", Variant::INT, "y", Variant::INT, "width", Variant::INT, "height", Variant::INT);
_VariantCall::add_constructor(_VariantCall::Transform2D_init2, Variant::TRANSFORM2D, "rotation", Variant::FLOAT, "position", Variant::VECTOR2);
@@ -1997,7 +1988,7 @@ void register_variant_methods() {
_VariantCall::add_constructor(_VariantCall::Callable_init2, Variant::CALLABLE, "object", Variant::OBJECT, "method_name", Variant::STRING_NAME);
_VariantCall::add_constructor(_VariantCall::Signal_init2, Variant::SIGNAL, "object", Variant::OBJECT, "signal_name", Variant::STRING_NAME);
- /* REGISTER CONSTANTS */
+ /* Register constants */
_populate_named_colors();
for (Map<String, Color>::Element *color = _named_colors.front(); color; color = color->next()) {
diff --git a/doc/classes/AABB.xml b/doc/classes/AABB.xml
index c547563a6e..4f95b44f83 100644
--- a/doc/classes/AABB.xml
+++ b/doc/classes/AABB.xml
@@ -176,8 +176,18 @@
Returns [code]true[/code] if the [AABB] is on both sides of a plane.
</description>
</method>
+ <method name="intersects_ray">
+ <return type="Variant">
+ </return>
+ <argument index="0" name="from" type="Vector3">
+ </argument>
+ <argument index="1" name="dir" type="Vector3">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="intersects_segment">
- <return type="bool">
+ <return type="Variant">
</return>
<argument index="0" name="from" type="Vector3">
</argument>
diff --git a/doc/classes/AnimatedSprite2D.xml b/doc/classes/AnimatedSprite2D.xml
index 39228eab79..969e9cc85b 100644
--- a/doc/classes/AnimatedSprite2D.xml
+++ b/doc/classes/AnimatedSprite2D.xml
@@ -63,12 +63,6 @@
<member name="playing" type="bool" setter="_set_playing" getter="_is_playing" default="false">
If [code]true[/code], the [member animation] is currently playing.
</member>
- <member name="shininess" type="float" setter="set_shininess" getter="get_shininess" default="1.0">
- Strength of the specular light effect of this [AnimatedSprite2D].
- </member>
- <member name="specular_color" type="Color" setter="set_specular_color" getter="get_specular_color" default="Color( 1, 1, 1, 1 )">
- The color of the specular light effect.
- </member>
<member name="speed_scale" type="float" setter="set_speed_scale" getter="get_speed_scale" default="1.0">
The animation speed is multiplied by this value.
</member>
diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml
index 87b7443a8a..d0f90f513d 100644
--- a/doc/classes/Array.xml
+++ b/doc/classes/Array.xml
@@ -160,7 +160,7 @@
</argument>
<argument index="1" name="obj" type="Object">
</argument>
- <argument index="2" name="func" type="String">
+ <argument index="2" name="func" type="StringName">
</argument>
<argument index="3" name="before" type="bool" default="true">
</argument>
@@ -362,7 +362,7 @@
</description>
</method>
<method name="resize">
- <return type="void">
+ <return type="int">
</return>
<argument index="0" name="size" type="int">
</argument>
@@ -433,7 +433,7 @@
</return>
<argument index="0" name="obj" type="Object">
</argument>
- <argument index="1" name="func" type="String">
+ <argument index="1" name="func" type="StringName">
</argument>
<description>
Sorts the array using a custom method. The arguments are an object that holds the method and the name of such method. The custom method receives two arguments (a pair of elements from the array) and must return either [code]true[/code] or [code]false[/code].
diff --git a/doc/classes/BaseMaterial3D.xml b/doc/classes/BaseMaterial3D.xml
index 8c92975b9c..31e6ea5e54 100644
--- a/doc/classes/BaseMaterial3D.xml
+++ b/doc/classes/BaseMaterial3D.xml
@@ -81,6 +81,15 @@
<member name="albedo_texture" type="Texture2D" setter="set_texture" getter="get_texture">
Texture to multiply by [member albedo_color]. Used for basic texturing of objects.
</member>
+ <member name="alpha_antialiasing_edge" type="float" setter="set_alpha_antialiasing_edge" getter="get_alpha_antialiasing_edge">
+ Threshold at which antialiasing will by applied on the alpha channel.
+ </member>
+ <member name="alpha_antialiasing_mode" type="int" setter="set_alpha_antialiasing" getter="get_alpha_antialiasing" enum="BaseMaterial3D.AlphaAntiAliasing">
+ The type of alpha antialiasing to apply. See [enum AlphaAntiAliasing].
+ </member>
+ <member name="alpha_hash_scale" type="float" setter="set_alpha_hash_scale" getter="get_alpha_hash_scale">
+ The hashing scale for Alpha Hash. Recommended values between [code]0[/code] and [code]2[/code].
+ </member>
<member name="alpha_scissor_threshold" type="float" setter="set_alpha_scissor_threshold" getter="get_alpha_scissor_threshold">
Threshold at which the alpha scissor will discard values.
</member>
@@ -486,10 +495,13 @@
<constant name="TRANSPARENCY_ALPHA_SCISSOR" value="2" enum="Transparency">
The material will cut off all values below a threshold, the rest will remain opaque.
</constant>
- <constant name="TRANSPARENCY_ALPHA_DEPTH_PRE_PASS" value="3" enum="Transparency">
+ <constant name="TRANSPARENCY_ALPHA_HASH" value="3" enum="Transparency">
+ The material will cut off all values below a spatially-deterministic threshold, the rest will remain opaque.
+ </constant>
+ <constant name="TRANSPARENCY_ALPHA_DEPTH_PRE_PASS" value="4" enum="Transparency">
The material will use the texture's alpha value for transparency, but will still be rendered in the pre-pass.
</constant>
- <constant name="TRANSPARENCY_MAX" value="4" enum="Transparency">
+ <constant name="TRANSPARENCY_MAX" value="5" enum="Transparency">
Represents the size of the [enum Transparency] enum.
</constant>
<constant name="SHADING_MODE_UNSHADED" value="0" enum="ShadingMode">
@@ -555,6 +567,15 @@
<constant name="BLEND_MODE_MUL" value="3" enum="BlendMode">
The color of the object is multiplied by the background.
</constant>
+ <constant name="ALPHA_ANTIALIASING_OFF" value="0" enum="AlphaAntiAliasing">
+ Disables Alpha AntiAliasing for the material.
+ </constant>
+ <constant name="ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE" value="1" enum="AlphaAntiAliasing">
+ Enables AlphaToCoverage. Alpha values in the material are passed to the AntiAliasing sample mask.
+ </constant>
+ <constant name="ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE" value="2" enum="AlphaAntiAliasing">
+ Enables AlphaToCoverage and forces all non-zero alpha values to [code]1[/code]. Alpha values in the material are passed to the AntiAliasing sample mask.
+ </constant>
<constant name="DEPTH_DRAW_OPAQUE_ONLY" value="0" enum="DepthDrawMode">
Default depth draw mode. Depth is drawn only for opaque objects.
</constant>
diff --git a/doc/classes/Basis.xml b/doc/classes/Basis.xml
index 42ca3ad24b..4201a31402 100644
--- a/doc/classes/Basis.xml
+++ b/doc/classes/Basis.xml
@@ -187,25 +187,6 @@
Returns the transposed version of the matrix.
</description>
</method>
- <method name="xform">
- <return type="Vector3">
- </return>
- <argument index="0" name="v" type="Vector3">
- </argument>
- <description>
- Returns a vector transformed (multiplied) by the matrix.
- </description>
- </method>
- <method name="xform_inv">
- <return type="Vector3">
- </return>
- <argument index="0" name="v" type="Vector3">
- </argument>
- <description>
- Returns a vector transformed (multiplied) by the transposed basis matrix.
- [b]Note:[/b] This results in a multiplication by the inverse of the matrix only if it represents a rotation-reflection.
- </description>
- </method>
</methods>
<members>
<member name="x" type="Vector3" setter="" getter="" default="Vector3( 1, 0, 0 )">
diff --git a/doc/classes/CPUParticles2D.xml b/doc/classes/CPUParticles2D.xml
index 7244da56ca..fcf2feb3b9 100644
--- a/doc/classes/CPUParticles2D.xml
+++ b/doc/classes/CPUParticles2D.xml
@@ -238,10 +238,6 @@
<member name="local_coords" type="bool" setter="set_use_local_coordinates" getter="get_use_local_coordinates" default="true">
If [code]true[/code], particles use the parent node's coordinate space. If [code]false[/code], they use global coordinates.
</member>
- <member name="normalmap" type="Texture2D" setter="set_normalmap" getter="get_normalmap">
- Normal map to be used for the [member texture] property.
- [b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
- </member>
<member name="one_shot" type="bool" setter="set_one_shot" getter="get_one_shot" default="false">
If [code]true[/code], only one emission cycle occurs. If set [code]true[/code] during a cycle, emission will stop at the cycle's end.
</member>
diff --git a/doc/classes/Callable.xml b/doc/classes/Callable.xml
index ad5c549fee..7aaf087540 100644
--- a/doc/classes/Callable.xml
+++ b/doc/classes/Callable.xml
@@ -48,7 +48,7 @@
</description>
</method>
<method name="bind" qualifiers="vararg">
- <return type="void">
+ <return type="Callable">
</return>
<description>
</description>
diff --git a/doc/classes/CanvasGroup.xml b/doc/classes/CanvasGroup.xml
new file mode 100644
index 0000000000..ceeda6c3f5
--- /dev/null
+++ b/doc/classes/CanvasGroup.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="CanvasGroup" inherits="Node2D" version="4.0">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="clear_margin" type="float" setter="set_clear_margin" getter="get_clear_margin" default="10.0">
+ </member>
+ <member name="fit_margin" type="float" setter="set_fit_margin" getter="get_fit_margin" default="10.0">
+ </member>
+ <member name="use_mipmaps" type="bool" setter="set_use_mipmaps" getter="is_using_mipmaps" default="false">
+ </member>
+ </members>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/CanvasItem.xml b/doc/classes/CanvasItem.xml
index 11000ce8d5..8efa1adae8 100644
--- a/doc/classes/CanvasItem.xml
+++ b/doc/classes/CanvasItem.xml
@@ -86,16 +86,6 @@
</argument>
<argument index="3" name="texture" type="Texture2D" default="null">
</argument>
- <argument index="4" name="normal_map" type="Texture2D" default="null">
- </argument>
- <argument index="5" name="specular_map" type="Texture2D" default="null">
- </argument>
- <argument index="6" name="specular_shininess" type="Color" default="Color( 1, 1, 1, 1 )">
- </argument>
- <argument index="7" name="texture_filter" type="int" enum="CanvasItem.TextureFilter" default="0">
- </argument>
- <argument index="8" name="texture_repeat" type="int" enum="CanvasItem.TextureRepeat" default="0">
- </argument>
<description>
Draws a colored polygon of any amount of points, convex or concave.
</description>
@@ -122,19 +112,9 @@
</argument>
<argument index="1" name="texture" type="Texture2D">
</argument>
- <argument index="2" name="normal_map" type="Texture2D" default="null">
- </argument>
- <argument index="3" name="specular_map" type="Texture2D" default="null">
+ <argument index="2" name="transform" type="Transform2D" default="Transform2D( 1, 0, 0, 1, 0, 0 )">
</argument>
- <argument index="4" name="specular_shininess" type="Color" default="Color( 1, 1, 1, 1 )">
- </argument>
- <argument index="5" name="transform" type="Transform2D" default="Transform2D( 1, 0, 0, 1, 0, 0 )">
- </argument>
- <argument index="6" name="modulate" type="Color" default="Color( 1, 1, 1, 1 )">
- </argument>
- <argument index="7" name="texture_filter" type="int" enum="CanvasItem.TextureFilter" default="0">
- </argument>
- <argument index="8" name="texture_repeat" type="int" enum="CanvasItem.TextureRepeat" default="0">
+ <argument index="3" name="modulate" type="Color" default="Color( 1, 1, 1, 1 )">
</argument>
<description>
Draws a [Mesh] in 2D, using the provided texture. See [MeshInstance2D] for related documentation.
@@ -173,16 +153,6 @@
</argument>
<argument index="1" name="texture" type="Texture2D">
</argument>
- <argument index="2" name="normal_map" type="Texture2D" default="null">
- </argument>
- <argument index="3" name="specular_map" type="Texture2D" default="null">
- </argument>
- <argument index="4" name="specular_shininess" type="Color" default="Color( 1, 1, 1, 1 )">
- </argument>
- <argument index="5" name="texture_filter" type="int" enum="CanvasItem.TextureFilter" default="0">
- </argument>
- <argument index="6" name="texture_repeat" type="int" enum="CanvasItem.TextureRepeat" default="0">
- </argument>
<description>
Draws a [MultiMesh] in 2D with the provided texture. See [MultiMeshInstance2D] for related documentation.
</description>
@@ -198,16 +168,6 @@
</argument>
<argument index="3" name="texture" type="Texture2D" default="null">
</argument>
- <argument index="4" name="normal_map" type="Texture2D" default="null">
- </argument>
- <argument index="5" name="specular_map" type="Texture2D" default="null">
- </argument>
- <argument index="6" name="specular_shininess" type="Color" default="Color( 1, 1, 1, 1 )">
- </argument>
- <argument index="7" name="texture_filter" type="int" enum="CanvasItem.TextureFilter" default="0">
- </argument>
- <argument index="8" name="texture_repeat" type="int" enum="CanvasItem.TextureRepeat" default="0">
- </argument>
<description>
Draws a polygon of any amount of points, convex or concave.
</description>
@@ -251,16 +211,6 @@
</argument>
<argument index="4" name="width" type="float" default="1.0">
</argument>
- <argument index="5" name="normal_map" type="Texture2D" default="null">
- </argument>
- <argument index="6" name="specular_map" type="Texture2D" default="null">
- </argument>
- <argument index="7" name="specular_shininess" type="Color" default="Color( 1, 1, 1, 1 )">
- </argument>
- <argument index="8" name="texture_filter" type="int" enum="CanvasItem.TextureFilter" default="0">
- </argument>
- <argument index="9" name="texture_repeat" type="int" enum="CanvasItem.TextureRepeat" default="0">
- </argument>
<description>
Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle, and 4 points for a quad.
</description>
@@ -358,16 +308,6 @@
</argument>
<argument index="2" name="modulate" type="Color" default="Color( 1, 1, 1, 1 )">
</argument>
- <argument index="3" name="normal_map" type="Texture2D" default="null">
- </argument>
- <argument index="4" name="specular_map" type="Texture2D" default="null">
- </argument>
- <argument index="5" name="specular_shininess" type="Color" default="Color( 1, 1, 1, 1 )">
- </argument>
- <argument index="6" name="texture_filter" type="int" enum="CanvasItem.TextureFilter" default="0">
- </argument>
- <argument index="7" name="texture_repeat" type="int" enum="CanvasItem.TextureRepeat" default="0">
- </argument>
<description>
Draws a texture at a given position.
</description>
@@ -385,16 +325,6 @@
</argument>
<argument index="4" name="transpose" type="bool" default="false">
</argument>
- <argument index="5" name="normal_map" type="Texture2D" default="null">
- </argument>
- <argument index="6" name="specular_map" type="Texture2D" default="null">
- </argument>
- <argument index="7" name="specular_shininess" type="Color" default="Color( 1, 1, 1, 1 )">
- </argument>
- <argument index="8" name="texture_filter" type="int" enum="CanvasItem.TextureFilter" default="0">
- </argument>
- <argument index="9" name="texture_repeat" type="int" enum="CanvasItem.TextureRepeat" default="0">
- </argument>
<description>
Draws a textured rectangle at a given position, optionally modulated by a color. If [code]transpose[/code] is [code]true[/code], the texture will have its X and Y coordinates swapped.
</description>
@@ -412,17 +342,7 @@
</argument>
<argument index="4" name="transpose" type="bool" default="false">
</argument>
- <argument index="5" name="normal_map" type="Texture2D" default="null">
- </argument>
- <argument index="6" name="specular_map" type="Texture2D" default="null">
- </argument>
- <argument index="7" name="specular_shininess" type="Color" default="Color( 1, 1, 1, 1 )">
- </argument>
- <argument index="8" name="clip_uv" type="bool" default="true">
- </argument>
- <argument index="9" name="texture_filter" type="int" enum="CanvasItem.TextureFilter" default="0">
- </argument>
- <argument index="10" name="texture_repeat" type="int" enum="CanvasItem.TextureRepeat" default="0">
+ <argument index="5" name="clip_uv" type="bool" default="true">
</argument>
<description>
Draws a textured rectangle region at a given position, optionally modulated by a color. If [code]transpose[/code] is [code]true[/code], the texture will have its X and Y coordinates swapped.
@@ -592,6 +512,8 @@
</method>
</methods>
<members>
+ <member name="clip_children" type="bool" setter="set_clip_children" getter="is_clipping_children" default="false">
+ </member>
<member name="light_mask" type="int" setter="set_light_mask" getter="get_light_mask" default="1">
The rendering layers in which this [CanvasItem] responds to [Light2D] nodes.
</member>
@@ -640,7 +562,7 @@
</signal>
<signal name="item_rect_changed">
<description>
- Emitted when the item rect has changed.
+ Emitted when the item's [Rect2] boundaries (position or size) have changed, or when an action is taking place that may have impacted these boundaries (e.g. changing [member Sprite2D.texture]).
</description>
</signal>
<signal name="visibility_changed">
diff --git a/doc/classes/CanvasTexture.xml b/doc/classes/CanvasTexture.xml
new file mode 100644
index 0000000000..0ca132746b
--- /dev/null
+++ b/doc/classes/CanvasTexture.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="CanvasTexture" inherits="Texture2D" version="4.0">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="diffuse_texture" type="Texture2D" setter="set_diffuse_texture" getter="get_diffuse_texture">
+ </member>
+ <member name="normal_texture" type="Texture2D" setter="set_normal_texture" getter="get_normal_texture">
+ </member>
+ <member name="specular_color" type="Color" setter="set_specular_color" getter="get_specular_color" default="Color( 1, 1, 1, 1 )">
+ </member>
+ <member name="specular_shininess" type="float" setter="set_specular_shininess" getter="get_specular_shininess" default="1.0">
+ </member>
+ <member name="specular_texture" type="Texture2D" setter="set_specular_texture" getter="get_specular_texture">
+ </member>
+ <member name="texture_filter" type="int" setter="set_texture_filter" getter="get_texture_filter" enum="CanvasItem.TextureFilter" default="0">
+ </member>
+ <member name="texture_repeat" type="int" setter="set_texture_repeat" getter="get_texture_repeat" enum="CanvasItem.TextureRepeat" default="0">
+ </member>
+ </members>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/Color.xml b/doc/classes/Color.xml
index ef438e422a..ca52d27a52 100644
--- a/doc/classes/Color.xml
+++ b/doc/classes/Color.xml
@@ -159,23 +159,6 @@
[/codeblocks]
</description>
</method>
- <method name="contrasted">
- <return type="Color">
- </return>
- <description>
- Returns the most contrasting color.
- [codeblocks]
- [gdscript]
- var color = Color(0.3, 0.4, 0.9)
- var contrasted_color = color.contrasted() # Equivalent to RGBA(204, 229, 102, 255)
- [/gdscript]
- [csharp]
- var color = new Color(0.3f, 0.4f, 0.9f);
- Color contrastedColor = color.Contrasted(); // Equivalent to RGBA(204, 229, 102, 255)
- [/csharp]
- [/codeblocks]
- </description>
- </method>
<method name="darkened">
<return type="Color">
</return>
@@ -195,29 +178,6 @@
[/codeblocks]
</description>
</method>
- <method name="from_hsv">
- <return type="Color">
- </return>
- <argument index="0" name="h" type="float">
- </argument>
- <argument index="1" name="s" type="float">
- </argument>
- <argument index="2" name="v" type="float">
- </argument>
- <argument index="3" name="a" type="float" default="1.0">
- </argument>
- <description>
- Constructs a color from an HSV profile. [code]h[/code], [code]s[/code], and [code]v[/code] are values between 0 and 1.
- [codeblocks]
- [gdscript]
- var color = Color.from_hsv(0.58, 0.5, 0.79, 0.8) # Equivalent to HSV(210, 50, 79, 0.8) or Color8(100, 151, 201, 0.8)
- [/gdscript]
- [csharp]
- Color color = Color.FromHsv(0.58f, 0.5f, 0.79f, 0.8f); // Equivalent to HSV(210, 50, 79, 0.8) or Color8(100, 151, 201, 0.8)
- [/csharp]
- [/codeblocks]
- </description>
- </method>
<method name="inverted">
<return type="Color">
</return>
@@ -238,7 +198,7 @@
<method name="is_equal_approx">
<return type="bool">
</return>
- <argument index="0" name="color" type="Color">
+ <argument index="0" name="to" type="Color">
</argument>
<description>
Returns [code]true[/code] if this color and [code]color[/code] are approximately equal, by running [method @GDScript.is_equal_approx] on each component.
diff --git a/doc/classes/ColorRect.xml b/doc/classes/ColorRect.xml
index 7c0cd981e4..09ba4c8b26 100644
--- a/doc/classes/ColorRect.xml
+++ b/doc/classes/ColorRect.xml
@@ -12,7 +12,7 @@
<methods>
</methods>
<members>
- <member name="color" type="Color" setter="set_frame_color" getter="get_frame_color" default="Color( 1, 1, 1, 1 )">
+ <member name="color" type="Color" setter="set_color" getter="get_color" default="Color( 1, 1, 1, 1 )">
The fill color.
[codeblocks]
[gdscript]
diff --git a/doc/classes/Control.xml b/doc/classes/Control.xml
index f495bfe894..6ea7b79dff 100644
--- a/doc/classes/Control.xml
+++ b/doc/classes/Control.xml
@@ -75,15 +75,17 @@
</description>
</method>
<method name="_make_custom_tooltip" qualifiers="virtual">
- <return type="Object">
+ <return type="Control">
</return>
<argument index="0" name="for_text" type="String">
</argument>
<description>
- Virtual method to be implemented by the user. Returns a [Control] node that should be used as a tooltip instead of the default one. Use [code]for_text[/code] parameter to determine what text the tooltip should contain (likely the contents of [member hint_tooltip]).
- The returned node must be of type [Control] or Control-derieved. It can have child nodes of any type. It is freed when the tooltip disappears, so make sure you always provide a new instance, not e.g. a node from scene. When [code]null[/code] or non-Control node is returned, the default tooltip will be used instead.
+ Virtual method to be implemented by the user. Returns a [Control] node that should be used as a tooltip instead of the default one. The [code]for_text[/code] includes the contents of the [member hint_tooltip] property.
+ The returned node must be of type [Control] or Control-derived. It can have child nodes of any type. It is freed when the tooltip disappears, so make sure you always provide a new instance (if you want to use a pre-existing node from your scene tree, you can duplicate it and pass the duplicated instance).When [code]null[/code] or a non-Control node is returned, the default tooltip will be used instead.
+ The returned node will be added as child to a [PopupPanel], so you should only provide the contents of that panel. That [PopupPanel] can be themed using [method Theme.set_stylebox] for the type [code]"TooltipPanel"[/code] (see [member hint_tooltip] for an example).
[b]Note:[/b] The tooltip is shrunk to minimal size. If you want to ensure it's fully visible, you might want to set its [member rect_min_size] to some non-zero value.
- Example of usage with custom-constructed node:
+ [b]Note:[/b] The node (and any relevant children) should be [member CanvasItem.visible] when returned, otherwise the viewport that instantiates it will not be able to calculate its minimum size reliably.
+ Example of usage with a custom-constructed node:
[codeblocks]
[gdscript]
func _make_custom_tooltip(for_text):
@@ -92,7 +94,7 @@
return label
[/gdscript]
[csharp]
- public override Godot.Object _MakeCustomTooltip(String forText)
+ public override Godot.Control _MakeCustomTooltip(String forText)
{
var label = new Label();
label.Text = forText;
@@ -100,18 +102,18 @@
}
[/csharp]
[/codeblocks]
- Example of usage with custom scene instance:
+ Example of usage with a custom scene instance:
[codeblocks]
[gdscript]
func _make_custom_tooltip(for_text):
- var tooltip = preload("SomeTooltipScene.tscn").instance()
+ var tooltip = preload("res://SomeTooltipScene.tscn").instance()
tooltip.get_node("Label").text = for_text
return tooltip
[/gdscript]
[csharp]
- public override Godot.Object _MakeCustomTooltip(String forText)
+ public override Godot.Control _MakeCustomTooltip(String forText)
{
- Node tooltip = ResourceLoader.Load&lt;PackedScene&gt;("SomeTooltipScene.tscn").Instance();
+ Node tooltip = ResourceLoader.Load&lt;PackedScene&gt;("res://SomeTooltipScene.tscn").Instance();
tooltip.GetNode&lt;Label&gt;("Label").Text = forText;
return tooltip;
}
@@ -993,6 +995,25 @@
</member>
<member name="hint_tooltip" type="String" setter="set_tooltip" getter="_get_tooltip" default="&quot;&quot;">
Changes the tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments, provided that the [member mouse_filter] property is not [constant MOUSE_FILTER_IGNORE]. You can change the time required for the tooltip to appear with [code]gui/timers/tooltip_delay_sec[/code] option in Project Settings.
+ The tooltip popup will use either a default implementation, or a custom one that you can provide by overriding [method _make_custom_tooltip]. The default tooltip includes a [PopupPanel] and [Label] whose theme properties can be customized using [Theme] methods with the [code]"TooltipPanel"[/code] and [code]"TooltipLabel"[/code] respectively. For example:
+ [codeblocks]
+ [gdscript]
+ var style_box = StyleBoxFlat.new()
+ style_box.set_bg_color(Color(1, 1, 0))
+ style_box.set_border_width_all(2)
+ # We assume here that the `theme` property has been assigned a custom Theme beforehand.
+ theme.set_stylebox("panel", "TooltipPanel", style_box)
+ theme.set_color("font_color", "TooltipLabel", Color(0, 1, 1))
+ [/gdscript]
+ [csharp]
+ var styleBox = new StyleBoxFlat();
+ styleBox.SetBgColor(new Color(1, 1, 0));
+ styleBox.SetBorderWidthAll(2);
+ // We assume here that the `Theme` property has been assigned a custom Theme beforehand.
+ Theme.SetStyleBox("panel", "TooltipPanel", styleBox);
+ Theme.SetColor("font_color", "TooltipLabel", new Color(0, 1, 1));
+ [/csharp]
+ [/codeblocks]
</member>
<member name="margin_bottom" type="float" setter="set_margin" getter="get_margin" default="0.0">
Distance between the node's bottom edge and its parent control, based on [member anchor_bottom].
diff --git a/doc/classes/DirectionalLight2D.xml b/doc/classes/DirectionalLight2D.xml
new file mode 100644
index 0000000000..a6eb780159
--- /dev/null
+++ b/doc/classes/DirectionalLight2D.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="DirectionalLight2D" inherits="Light2D" version="4.0">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="height" type="float" setter="set_height" getter="get_height" default="0.0">
+ The height of the light. Used with 2D normal mapping.
+ </member>
+ <member name="max_distance" type="float" setter="set_max_distance" getter="get_max_distance" default="10000.0">
+ </member>
+ </members>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/EditorPlugin.xml b/doc/classes/EditorPlugin.xml
index 6a64a7aa55..95d88e86a6 100644
--- a/doc/classes/EditorPlugin.xml
+++ b/doc/classes/EditorPlugin.xml
@@ -379,7 +379,7 @@
Remember that you have to manage the visibility of all your editor controls manually.
</description>
</method>
- <method name="queue_save_layout" qualifiers="const">
+ <method name="queue_save_layout">
<return type="void">
</return>
<description>
diff --git a/doc/classes/GPUParticles2D.xml b/doc/classes/GPUParticles2D.xml
index ba201af5db..c09151405a 100644
--- a/doc/classes/GPUParticles2D.xml
+++ b/doc/classes/GPUParticles2D.xml
@@ -52,10 +52,6 @@
<member name="local_coords" type="bool" setter="set_use_local_coordinates" getter="get_use_local_coordinates" default="true">
If [code]true[/code], particles use the parent node's coordinate space. If [code]false[/code], they use global coordinates.
</member>
- <member name="normal_map" type="Texture2D" setter="set_normal_map" getter="get_normal_map">
- Normal map to be used for the [member texture] property.
- [b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
- </member>
<member name="one_shot" type="bool" setter="set_one_shot" getter="get_one_shot" default="false">
If [code]true[/code], only one emission cycle occurs. If set [code]true[/code] during a cycle, emission will stop at the cycle's end.
</member>
diff --git a/doc/classes/Geometry2D.xml b/doc/classes/Geometry2D.xml
index 86dc8e864a..a6bcc1301b 100644
--- a/doc/classes/Geometry2D.xml
+++ b/doc/classes/Geometry2D.xml
@@ -200,11 +200,11 @@
Inflates or deflates [code]polygon[/code] by [code]delta[/code] units (pixels). If [code]delta[/code] is positive, makes the polygon grow outward. If [code]delta[/code] is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if [code]delta[/code] is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon.
Each polygon's vertices will be rounded as determined by [code]join_type[/code], see [enum PolyJoinType].
The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling [method is_polygon_clockwise].
- [b]Note:[/b] To translate the polygon's vertices specifically, use the [method Transform2D.xform] method:
+ [b]Note:[/b] To translate the polygon's vertices specifically, multiply them to a [Transform2D]:
[codeblock]
var polygon = PackedVector2Array([Vector2(0, 0), Vector2(100, 0), Vector2(100, 100), Vector2(0, 100)])
var offset = Vector2(50, 50)
- polygon = Transform2D(0, offset).xform(polygon)
+ polygon = Transform2D(0, offset) * polygon
print(polygon) # prints [Vector2(50, 50), Vector2(150, 50), Vector2(150, 150), Vector2(50, 150)]
[/codeblock]
</description>
diff --git a/doc/classes/HTTPClient.xml b/doc/classes/HTTPClient.xml
index 9dc38b018a..c308caab50 100644
--- a/doc/classes/HTTPClient.xml
+++ b/doc/classes/HTTPClient.xml
@@ -9,6 +9,7 @@
A [HTTPClient] should be reused between multiple requests or to connect to different hosts instead of creating one client per request. Supports SSL and SSL server certificate verification. HTTP status codes in the 2xx range indicate success, 3xx redirection (i.e. "try again, but over here"), 4xx something was wrong with the request, and 5xx something went wrong on the server's side.
For more information on HTTP, see https://developer.mozilla.org/en-US/docs/Web/HTTP (or read RFC 2616 to get it straight from the source: https://tools.ietf.org/html/rfc2616).
[b]Note:[/b] When performing HTTP requests from a project exported to HTML5, keep in mind the remote server may not allow requests from foreign origins due to [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/url]. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the [code]Access-Control-Allow-Origin: *[/code] HTTP header.
+ [b]Note:[/b] SSL/TLS support is currently limited to TLS 1.0, TLS 1.1, and TLS 1.2. Attempting to connect to a TLS 1.3-only server will return an error.
</description>
<tutorials>
<link title="HTTP client class">https://docs.godotengine.org/en/latest/tutorials/networking/http_client_class.html</link>
diff --git a/doc/classes/HTTPRequest.xml b/doc/classes/HTTPRequest.xml
index 8cc7ecfbe3..6c3d0102b9 100644
--- a/doc/classes/HTTPRequest.xml
+++ b/doc/classes/HTTPRequest.xml
@@ -23,7 +23,7 @@
# Note: Don't make simultaneous requests using a single HTTPRequest node.
# The snippet below is provided for reference only.
var body = {"name": "Godette"}
- var error = http_request.request("https://httpbin.org/post", [], true, HTTPClient.METHOD_POST, body)
+ error = http_request.request("https://httpbin.org/post", [], true, HTTPClient.METHOD_POST, body)
if error != OK:
push_error("An error occurred in the HTTP request.")
@@ -65,11 +65,9 @@
texture_rect.texture = texture
[/codeblock]
- [b]Gzipped response bodies[/b]
- HttpRequest will automatically handle decompression of response bodies.
- A "Accept-Encoding" header will be automatically added to each of your requests, unless one is already specified.
- Any response with a "Content-Encoding: gzip" header will automatically be decompressed and delivered to you as a uncompressed bytes.
+ [b]Gzipped response bodies[/b]: HTTPRequest will automatically handle decompression of response bodies. A [code]Accept-Encoding[/code] header will be automatically added to each of your requests, unless one is already specified. Any response with a [code]Content-Encoding: gzip[/code] header will automatically be decompressed and delivered to you as uncompressed bytes.
[b]Note:[/b] When performing HTTP requests from a project exported to HTML5, keep in mind the remote server may not allow requests from foreign origins due to [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/url]. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the [code]Access-Control-Allow-Origin: *[/code] HTTP header.
+ [b]Note:[/b] SSL/TLS support is currently limited to TLS 1.0, TLS 1.1, and TLS 1.2. Attempting to connect to a TLS 1.3-only server will return an error.
</description>
<tutorials>
<link title="Making HTTP requests">https://docs.godotengine.org/en/latest/tutorials/networking/http_request_class.html</link>
diff --git a/doc/classes/Light2D.xml b/doc/classes/Light2D.xml
index c5f0c2df8c..f6698352ab 100644
--- a/doc/classes/Light2D.xml
+++ b/doc/classes/Light2D.xml
@@ -11,8 +11,25 @@
<link title="2D lights and shadows">https://docs.godotengine.org/en/latest/tutorials/2d/2d_lights_and_shadows.html</link>
</tutorials>
<methods>
+ <method name="get_height" qualifiers="const">
+ <return type="float">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="set_height">
+ <return type="void">
+ </return>
+ <argument index="0" name="height" type="float">
+ </argument>
+ <description>
+ </description>
+ </method>
</methods>
<members>
+ <member name="blend_mode" type="int" setter="set_blend_mode" getter="get_blend_mode" enum="Light2D.BlendMode" default="0">
+ The Light2D's blend mode. See [enum BlendMode] constants for values.
+ </member>
<member name="color" type="Color" setter="set_color" getter="get_color" default="Color( 1, 1, 1, 1 )">
The Light2D's [Color].
</member>
@@ -25,15 +42,6 @@
<member name="energy" type="float" setter="set_energy" getter="get_energy" default="1.0">
The Light2D's energy value. The larger the value, the stronger the light.
</member>
- <member name="mode" type="int" setter="set_mode" getter="get_mode" enum="Light2D.Mode" default="0">
- The Light2D's mode. See [enum Mode] constants for values.
- </member>
- <member name="offset" type="Vector2" setter="set_texture_offset" getter="get_texture_offset" default="Vector2( 0, 0 )">
- The offset of the Light2D's [code]texture[/code].
- </member>
- <member name="range_height" type="float" setter="set_height" getter="get_height" default="0.0">
- The height of the Light2D. Used with 2D normal mapping.
- </member>
<member name="range_item_cull_mask" type="int" setter="set_item_cull_mask" getter="get_item_cull_mask" default="1">
The layer mask. Only objects with a matching mask will be affected by the Light2D.
</member>
@@ -49,9 +57,6 @@
<member name="range_z_min" type="int" setter="set_z_range_min" getter="get_z_range_min" default="-1024">
Minimum [code]z[/code] value of objects that are affected by the Light2D.
</member>
- <member name="shadow_buffer_size" type="int" setter="set_shadow_buffer_size" getter="get_shadow_buffer_size" default="2048">
- Shadow buffer size.
- </member>
<member name="shadow_color" type="Color" setter="set_shadow_color" getter="get_shadow_color" default="Color( 0, 0, 0, 0 )">
[Color] of shadows cast by the Light2D.
</member>
@@ -67,26 +72,8 @@
<member name="shadow_item_cull_mask" type="int" setter="set_item_shadow_cull_mask" getter="get_item_shadow_cull_mask" default="1">
The shadow mask. Used with [LightOccluder2D] to cast shadows. Only occluders with a matching light mask will cast shadows.
</member>
- <member name="texture" type="Texture2D" setter="set_texture" getter="get_texture">
- [Texture2D] used for the Light2D's appearance.
- </member>
- <member name="texture_scale" type="float" setter="set_texture_scale" getter="get_texture_scale" default="1.0">
- The [code]texture[/code]'s scale factor.
- </member>
</members>
<constants>
- <constant name="MODE_ADD" value="0" enum="Mode">
- Adds the value of pixels corresponding to the Light2D to the values of pixels under it. This is the common behavior of a light.
- </constant>
- <constant name="MODE_SUB" value="1" enum="Mode">
- Subtracts the value of pixels corresponding to the Light2D to the values of pixels under it, resulting in inversed light effect.
- </constant>
- <constant name="MODE_MIX" value="2" enum="Mode">
- Mix the value of pixels corresponding to the Light2D to the values of pixels under it by linear interpolation.
- </constant>
- <constant name="MODE_MASK" value="3" enum="Mode">
- The light texture of the Light2D is used as a mask, hiding or revealing parts of the screen underneath depending on the value of each pixel of the light (mask) texture.
- </constant>
<constant name="SHADOW_FILTER_NONE" value="0" enum="ShadowFilter">
No filter applies to the shadow map. See [member shadow_filter].
</constant>
@@ -96,5 +83,14 @@
<constant name="SHADOW_FILTER_PCF13" value="2" enum="ShadowFilter">
Percentage closer filtering (13 samples) applies to the shadow map. See [member shadow_filter].
</constant>
+ <constant name="BLEND_MODE_ADD" value="0" enum="BlendMode">
+ Adds the value of pixels corresponding to the Light2D to the values of pixels under it. This is the common behavior of a light.
+ </constant>
+ <constant name="BLEND_MODE_SUB" value="1" enum="BlendMode">
+ Subtracts the value of pixels corresponding to the Light2D to the values of pixels under it, resulting in inversed light effect.
+ </constant>
+ <constant name="BLEND_MODE_MIX" value="2" enum="BlendMode">
+ Mix the value of pixels corresponding to the Light2D to the values of pixels under it by linear interpolation.
+ </constant>
</constants>
</class>
diff --git a/doc/classes/LinkButton.xml b/doc/classes/LinkButton.xml
index 2d475fc449..15307de897 100644
--- a/doc/classes/LinkButton.xml
+++ b/doc/classes/LinkButton.xml
@@ -12,7 +12,6 @@
<methods>
</methods>
<members>
- <member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" override="true" enum="Control.FocusMode" default="0" />
<member name="mouse_default_cursor_shape" type="int" setter="set_default_cursor_shape" getter="get_default_cursor_shape" override="true" enum="Control.CursorShape" default="2" />
<member name="text" type="String" setter="set_text" getter="get_text" default="&quot;&quot;">
The button's text that will be displayed inside the button's area.
diff --git a/doc/classes/MainLoop.xml b/doc/classes/MainLoop.xml
index 55ae54d12b..3c3cbbfa29 100644
--- a/doc/classes/MainLoop.xml
+++ b/doc/classes/MainLoop.xml
@@ -78,38 +78,6 @@
If implemented, the method must return a boolean value. [code]true[/code] ends the main loop, while [code]false[/code] lets it proceed to the next frame.
</description>
</method>
- <method name="finish">
- <return type="void">
- </return>
- <description>
- Should not be called manually, override [method _finalize] instead. Will be removed in Godot 4.0.
- </description>
- </method>
- <method name="idle">
- <return type="bool">
- </return>
- <argument index="0" name="delta" type="float">
- </argument>
- <description>
- Should not be called manually, override [method _idle] instead. Will be removed in Godot 4.0.
- </description>
- </method>
- <method name="init">
- <return type="void">
- </return>
- <description>
- Should not be called manually, override [method _initialize] instead. Will be removed in Godot 4.0.
- </description>
- </method>
- <method name="iteration">
- <return type="bool">
- </return>
- <argument index="0" name="delta" type="float">
- </argument>
- <description>
- Should not be called manually, override [method _iteration] instead. Will be removed in Godot 4.0.
- </description>
- </method>
</methods>
<signals>
<signal name="on_request_permissions_result">
diff --git a/doc/classes/MenuButton.xml b/doc/classes/MenuButton.xml
index d97e0f0f21..fe38c08280 100644
--- a/doc/classes/MenuButton.xml
+++ b/doc/classes/MenuButton.xml
@@ -31,7 +31,6 @@
<members>
<member name="action_mode" type="int" setter="set_action_mode" getter="get_action_mode" override="true" enum="BaseButton.ActionMode" default="0" />
<member name="flat" type="bool" setter="set_flat" getter="is_flat" override="true" default="true" />
- <member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" override="true" enum="Control.FocusMode" default="0" />
<member name="switch_on_hover" type="bool" setter="set_switch_on_hover" getter="is_switch_on_hover" default="false">
If [code]true[/code], when the cursor hovers above another [MenuButton] within the same parent which also has [code]switch_on_hover[/code] enabled, it will close the current [MenuButton] and open the other one.
</member>
diff --git a/doc/classes/NinePatchRect.xml b/doc/classes/NinePatchRect.xml
index 08ab01036c..b2e0442be8 100644
--- a/doc/classes/NinePatchRect.xml
+++ b/doc/classes/NinePatchRect.xml
@@ -32,10 +32,10 @@
</methods>
<members>
<member name="axis_stretch_horizontal" type="int" setter="set_h_axis_stretch_mode" getter="get_h_axis_stretch_mode" enum="NinePatchRect.AxisStretchMode" default="0">
- Doesn't do anything at the time of writing.
+ The stretch mode to use for horizontal stretching/tiling. See [enum NinePatchRect.AxisStretchMode] for possible values.
</member>
<member name="axis_stretch_vertical" type="int" setter="set_v_axis_stretch_mode" getter="get_v_axis_stretch_mode" enum="NinePatchRect.AxisStretchMode" default="0">
- Doesn't do anything at the time of writing.
+ The stretch mode to use for vertical stretching/tiling. See [enum NinePatchRect.AxisStretchMode] for possible values.
</member>
<member name="draw_center" type="bool" setter="set_draw_center" getter="is_draw_center_enabled" default="true">
If [code]true[/code], draw the panel's center. Else, only draw the 9-slice's borders.
@@ -69,13 +69,15 @@
</signals>
<constants>
<constant name="AXIS_STRETCH_MODE_STRETCH" value="0" enum="AxisStretchMode">
- Doesn't do anything at the time of writing.
+ Stretches the center texture across the NinePatchRect. This may cause the texture to be distorted.
</constant>
<constant name="AXIS_STRETCH_MODE_TILE" value="1" enum="AxisStretchMode">
- Doesn't do anything at the time of writing.
+ Repeats the center texture across the NinePatchRect. This won't cause any visible distortion. The texture must be seamless for this to work without displaying artifacts between edges.
+ [b]Note:[/b] Only supported when using the GLES3 renderer. When using the GLES2 renderer, this will behave like [constant AXIS_STRETCH_MODE_STRETCH].
</constant>
<constant name="AXIS_STRETCH_MODE_TILE_FIT" value="2" enum="AxisStretchMode">
- Doesn't do anything at the time of writing.
+ Repeats the center texture across the NinePatchRect, but will also stretch the texture to make sure each tile is visible in full. This may cause the texture to be distorted, but less than [constant AXIS_STRETCH_MODE_STRETCH]. The texture must be seamless for this to work without displaying artifacts between edges.
+ [b]Note:[/b] Only supported when using the GLES3 renderer. When using the GLES2 renderer, this will behave like [constant AXIS_STRETCH_MODE_STRETCH].
</constant>
</constants>
</class>
diff --git a/doc/classes/NodePath.xml b/doc/classes/NodePath.xml
index 658f0e6c28..f711ba4d6b 100644
--- a/doc/classes/NodePath.xml
+++ b/doc/classes/NodePath.xml
@@ -65,7 +65,7 @@
</description>
</method>
<method name="get_concatenated_subnames">
- <return type="String">
+ <return type="StringName">
</return>
<description>
Returns all subnames concatenated with a colon character ([code]:[/code]) as separator, i.e. the right side of the first colon in a node path.
@@ -76,7 +76,7 @@
</description>
</method>
<method name="get_name">
- <return type="String">
+ <return type="StringName">
</return>
<argument index="0" name="idx" type="int">
</argument>
@@ -99,7 +99,7 @@
</description>
</method>
<method name="get_subname">
- <return type="String">
+ <return type="StringName">
</return>
<argument index="0" name="idx" type="int">
</argument>
diff --git a/doc/classes/PackedByteArray.xml b/doc/classes/PackedByteArray.xml
index 0b43522bce..7c2d566466 100644
--- a/doc/classes/PackedByteArray.xml
+++ b/doc/classes/PackedByteArray.xml
@@ -20,9 +20,9 @@
</description>
</method>
<method name="append">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="byte" type="int">
+ <argument index="0" name="value" type="int">
</argument>
<description>
Appends an element at the end of the array (alias of [method push_back]).
@@ -128,9 +128,9 @@
<method name="insert">
<return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="at_index" type="int">
</argument>
- <argument index="1" name="byte" type="int">
+ <argument index="1" name="value" type="int">
</argument>
<description>
Inserts a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
@@ -144,9 +144,9 @@
</description>
</method>
<method name="push_back">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="byte" type="int">
+ <argument index="0" name="value" type="int">
</argument>
<description>
Appends an element at the end of the array.
@@ -155,16 +155,16 @@
<method name="remove">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
<description>
Removes an element from the array by index.
</description>
</method>
<method name="resize">
- <return type="void">
+ <return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="new_size" type="int">
</argument>
<description>
Sets the size of the array. If the array is grown, reserves elements at the end of the array. If the array is shrunk, truncates the array to the new size.
@@ -173,9 +173,9 @@
<method name="set">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
- <argument index="1" name="byte" type="int">
+ <argument index="1" name="value" type="int">
</argument>
<description>
Changes the byte at the given index.
diff --git a/doc/classes/PackedColorArray.xml b/doc/classes/PackedColorArray.xml
index ec087e1b39..c42d14c5bd 100644
--- a/doc/classes/PackedColorArray.xml
+++ b/doc/classes/PackedColorArray.xml
@@ -20,9 +20,9 @@
</description>
</method>
<method name="append">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="color" type="Color">
+ <argument index="0" name="value" type="Color">
</argument>
<description>
Appends an element at the end of the array (alias of [method push_back]).
@@ -56,9 +56,9 @@
<method name="insert">
<return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="at_index" type="int">
</argument>
- <argument index="1" name="color" type="Color">
+ <argument index="1" name="value" type="Color">
</argument>
<description>
Inserts a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
@@ -72,9 +72,9 @@
</description>
</method>
<method name="push_back">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="color" type="Color">
+ <argument index="0" name="value" type="Color">
</argument>
<description>
Appends a value to the array.
@@ -83,16 +83,16 @@
<method name="remove">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
<description>
Removes an element from the array by index.
</description>
</method>
<method name="resize">
- <return type="void">
+ <return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="new_size" type="int">
</argument>
<description>
Sets the size of the array. If the array is grown, reserves elements at the end of the array. If the array is shrunk, truncates the array to the new size.
@@ -101,9 +101,9 @@
<method name="set">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
- <argument index="1" name="color" type="Color">
+ <argument index="1" name="value" type="Color">
</argument>
<description>
Changes the [Color] at the given index.
@@ -123,6 +123,22 @@
Sorts the elements of the array in ascending order.
</description>
</method>
+ <method name="subarray">
+ <return type="PackedColorArray">
+ </return>
+ <argument index="0" name="from" type="int">
+ </argument>
+ <argument index="1" name="to" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="to_byte_array">
+ <return type="PackedByteArray">
+ </return>
+ <description>
+ </description>
+ </method>
</methods>
<constants>
</constants>
diff --git a/doc/classes/PackedFloat32Array.xml b/doc/classes/PackedFloat32Array.xml
index a6b726944b..dd84648251 100644
--- a/doc/classes/PackedFloat32Array.xml
+++ b/doc/classes/PackedFloat32Array.xml
@@ -21,7 +21,7 @@
</description>
</method>
<method name="append">
- <return type="void">
+ <return type="bool">
</return>
<argument index="0" name="value" type="float">
</argument>
@@ -57,7 +57,7 @@
<method name="insert">
<return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="at_index" type="int">
</argument>
<argument index="1" name="value" type="float">
</argument>
@@ -73,7 +73,7 @@
</description>
</method>
<method name="push_back">
- <return type="void">
+ <return type="bool">
</return>
<argument index="0" name="value" type="float">
</argument>
@@ -84,16 +84,16 @@
<method name="remove">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
<description>
Removes an element from the array by index.
</description>
</method>
<method name="resize">
- <return type="void">
+ <return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="new_size" type="int">
</argument>
<description>
Sets the size of the array. If the array is grown, reserves elements at the end of the array. If the array is shrunk, truncates the array to the new size.
@@ -102,7 +102,7 @@
<method name="set">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
<argument index="1" name="value" type="float">
</argument>
@@ -124,6 +124,22 @@
Sorts the elements of the array in ascending order.
</description>
</method>
+ <method name="subarray">
+ <return type="PackedFloat32Array">
+ </return>
+ <argument index="0" name="from" type="int">
+ </argument>
+ <argument index="1" name="to" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="to_byte_array">
+ <return type="PackedByteArray">
+ </return>
+ <description>
+ </description>
+ </method>
</methods>
<constants>
</constants>
diff --git a/doc/classes/PackedFloat64Array.xml b/doc/classes/PackedFloat64Array.xml
index f867cda3b6..91c3f4874b 100644
--- a/doc/classes/PackedFloat64Array.xml
+++ b/doc/classes/PackedFloat64Array.xml
@@ -21,7 +21,7 @@
</description>
</method>
<method name="append">
- <return type="void">
+ <return type="bool">
</return>
<argument index="0" name="value" type="float">
</argument>
@@ -57,7 +57,7 @@
<method name="insert">
<return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="at_index" type="int">
</argument>
<argument index="1" name="value" type="float">
</argument>
@@ -73,7 +73,7 @@
</description>
</method>
<method name="push_back">
- <return type="void">
+ <return type="bool">
</return>
<argument index="0" name="value" type="float">
</argument>
@@ -84,16 +84,16 @@
<method name="remove">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
<description>
Removes an element from the array by index.
</description>
</method>
<method name="resize">
- <return type="void">
+ <return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="new_size" type="int">
</argument>
<description>
Sets the size of the array. If the array is grown, reserves elements at the end of the array. If the array is shrunk, truncates the array to the new size.
@@ -102,7 +102,7 @@
<method name="set">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
<argument index="1" name="value" type="float">
</argument>
@@ -124,6 +124,22 @@
Sorts the elements of the array in ascending order.
</description>
</method>
+ <method name="subarray">
+ <return type="PackedFloat64Array">
+ </return>
+ <argument index="0" name="from" type="int">
+ </argument>
+ <argument index="1" name="to" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="to_byte_array">
+ <return type="PackedByteArray">
+ </return>
+ <description>
+ </description>
+ </method>
</methods>
<constants>
</constants>
diff --git a/doc/classes/PackedInt32Array.xml b/doc/classes/PackedInt32Array.xml
index b796d9cacb..a0a9922d0c 100644
--- a/doc/classes/PackedInt32Array.xml
+++ b/doc/classes/PackedInt32Array.xml
@@ -21,9 +21,9 @@
</description>
</method>
<method name="append">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="integer" type="int">
+ <argument index="0" name="value" type="int">
</argument>
<description>
Appends an element at the end of the array (alias of [method push_back]).
@@ -57,9 +57,9 @@
<method name="insert">
<return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="at_index" type="int">
</argument>
- <argument index="1" name="integer" type="int">
+ <argument index="1" name="value" type="int">
</argument>
<description>
Inserts a new integer at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
@@ -73,9 +73,9 @@
</description>
</method>
<method name="push_back">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="integer" type="int">
+ <argument index="0" name="value" type="int">
</argument>
<description>
Appends a value to the array.
@@ -84,16 +84,16 @@
<method name="remove">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
<description>
Removes an element from the array by index.
</description>
</method>
<method name="resize">
- <return type="void">
+ <return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="new_size" type="int">
</argument>
<description>
Sets the size of the array. If the array is grown, reserves elements at the end of the array. If the array is shrunk, truncates the array to the new size.
@@ -102,9 +102,9 @@
<method name="set">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
- <argument index="1" name="integer" type="int">
+ <argument index="1" name="value" type="int">
</argument>
<description>
Changes the integer at the given index.
@@ -124,6 +124,22 @@
Sorts the elements of the array in ascending order.
</description>
</method>
+ <method name="subarray">
+ <return type="PackedInt32Array">
+ </return>
+ <argument index="0" name="from" type="int">
+ </argument>
+ <argument index="1" name="to" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="to_byte_array">
+ <return type="PackedByteArray">
+ </return>
+ <description>
+ </description>
+ </method>
</methods>
<constants>
</constants>
diff --git a/doc/classes/PackedInt64Array.xml b/doc/classes/PackedInt64Array.xml
index 3d0d9a1360..542dabcfa0 100644
--- a/doc/classes/PackedInt64Array.xml
+++ b/doc/classes/PackedInt64Array.xml
@@ -21,9 +21,9 @@
</description>
</method>
<method name="append">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="integer" type="int">
+ <argument index="0" name="value" type="int">
</argument>
<description>
Appends an element at the end of the array (alias of [method push_back]).
@@ -57,9 +57,9 @@
<method name="insert">
<return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="at_index" type="int">
</argument>
- <argument index="1" name="integer" type="int">
+ <argument index="1" name="value" type="int">
</argument>
<description>
Inserts a new integer at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
@@ -73,9 +73,9 @@
</description>
</method>
<method name="push_back">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="integer" type="int">
+ <argument index="0" name="value" type="int">
</argument>
<description>
Appends a value to the array.
@@ -84,16 +84,16 @@
<method name="remove">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
<description>
Removes an element from the array by index.
</description>
</method>
<method name="resize">
- <return type="void">
+ <return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="new_size" type="int">
</argument>
<description>
Sets the size of the array. If the array is grown, reserves elements at the end of the array. If the array is shrunk, truncates the array to the new size.
@@ -102,9 +102,9 @@
<method name="set">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
- <argument index="1" name="integer" type="int">
+ <argument index="1" name="value" type="int">
</argument>
<description>
Changes the integer at the given index.
@@ -124,6 +124,22 @@
Sorts the elements of the array in ascending order.
</description>
</method>
+ <method name="subarray">
+ <return type="PackedInt64Array">
+ </return>
+ <argument index="0" name="from" type="int">
+ </argument>
+ <argument index="1" name="to" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="to_byte_array">
+ <return type="PackedByteArray">
+ </return>
+ <description>
+ </description>
+ </method>
</methods>
<constants>
</constants>
diff --git a/doc/classes/PackedStringArray.xml b/doc/classes/PackedStringArray.xml
index 5f3a16ac73..7c710cf0fb 100644
--- a/doc/classes/PackedStringArray.xml
+++ b/doc/classes/PackedStringArray.xml
@@ -21,9 +21,9 @@
</description>
</method>
<method name="append">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="string" type="String">
+ <argument index="0" name="value" type="String">
</argument>
<description>
Appends an element at the end of the array (alias of [method push_back]).
@@ -57,9 +57,9 @@
<method name="insert">
<return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="at_index" type="int">
</argument>
- <argument index="1" name="string" type="String">
+ <argument index="1" name="value" type="String">
</argument>
<description>
Inserts a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
@@ -73,9 +73,9 @@
</description>
</method>
<method name="push_back">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="string" type="String">
+ <argument index="0" name="value" type="String">
</argument>
<description>
Appends a string element at end of the array.
@@ -84,16 +84,16 @@
<method name="remove">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
<description>
Removes an element from the array by index.
</description>
</method>
<method name="resize">
- <return type="void">
+ <return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="new_size" type="int">
</argument>
<description>
Sets the size of the array. If the array is grown, reserves elements at the end of the array. If the array is shrunk, truncates the array to the new size.
@@ -102,9 +102,9 @@
<method name="set">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
- <argument index="1" name="string" type="String">
+ <argument index="1" name="value" type="String">
</argument>
<description>
Changes the [String] at the given index.
@@ -124,6 +124,22 @@
Sorts the elements of the array in ascending order.
</description>
</method>
+ <method name="subarray">
+ <return type="PackedStringArray">
+ </return>
+ <argument index="0" name="from" type="int">
+ </argument>
+ <argument index="1" name="to" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="to_byte_array">
+ <return type="PackedByteArray">
+ </return>
+ <description>
+ </description>
+ </method>
</methods>
<constants>
</constants>
diff --git a/doc/classes/PackedVector2Array.xml b/doc/classes/PackedVector2Array.xml
index cb62aea95c..98034afc93 100644
--- a/doc/classes/PackedVector2Array.xml
+++ b/doc/classes/PackedVector2Array.xml
@@ -21,9 +21,9 @@
</description>
</method>
<method name="append">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="vector2" type="Vector2">
+ <argument index="0" name="value" type="Vector2">
</argument>
<description>
Appends an element at the end of the array (alias of [method push_back]).
@@ -57,9 +57,9 @@
<method name="insert">
<return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="at_index" type="int">
</argument>
- <argument index="1" name="vector2" type="Vector2">
+ <argument index="1" name="value" type="Vector2">
</argument>
<description>
Inserts a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
@@ -73,9 +73,9 @@
</description>
</method>
<method name="push_back">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="vector2" type="Vector2">
+ <argument index="0" name="value" type="Vector2">
</argument>
<description>
Inserts a [Vector2] at the end.
@@ -84,16 +84,16 @@
<method name="remove">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
<description>
Removes an element from the array by index.
</description>
</method>
<method name="resize">
- <return type="void">
+ <return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="new_size" type="int">
</argument>
<description>
Sets the size of the array. If the array is grown, reserves elements at the end of the array. If the array is shrunk, truncates the array to the new size.
@@ -102,9 +102,9 @@
<method name="set">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
- <argument index="1" name="vector2" type="Vector2">
+ <argument index="1" name="value" type="Vector2">
</argument>
<description>
Changes the [Vector2] at the given index.
@@ -124,6 +124,22 @@
Sorts the elements of the array in ascending order.
</description>
</method>
+ <method name="subarray">
+ <return type="PackedVector2Array">
+ </return>
+ <argument index="0" name="from" type="int">
+ </argument>
+ <argument index="1" name="to" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="to_byte_array">
+ <return type="PackedByteArray">
+ </return>
+ <description>
+ </description>
+ </method>
</methods>
<constants>
</constants>
diff --git a/doc/classes/PackedVector3Array.xml b/doc/classes/PackedVector3Array.xml
index f268fbcc83..3db33fbcd9 100644
--- a/doc/classes/PackedVector3Array.xml
+++ b/doc/classes/PackedVector3Array.xml
@@ -20,9 +20,9 @@
</description>
</method>
<method name="append">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="vector3" type="Vector3">
+ <argument index="0" name="value" type="Vector3">
</argument>
<description>
Appends an element at the end of the array (alias of [method push_back]).
@@ -56,9 +56,9 @@
<method name="insert">
<return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="at_index" type="int">
</argument>
- <argument index="1" name="vector3" type="Vector3">
+ <argument index="1" name="value" type="Vector3">
</argument>
<description>
Inserts a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
@@ -72,9 +72,9 @@
</description>
</method>
<method name="push_back">
- <return type="void">
+ <return type="bool">
</return>
- <argument index="0" name="vector3" type="Vector3">
+ <argument index="0" name="value" type="Vector3">
</argument>
<description>
Inserts a [Vector3] at the end.
@@ -83,16 +83,16 @@
<method name="remove">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
<description>
Removes an element from the array by index.
</description>
</method>
<method name="resize">
- <return type="void">
+ <return type="int">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="new_size" type="int">
</argument>
<description>
Sets the size of the array. If the array is grown, reserves elements at the end of the array. If the array is shrunk, truncates the array to the new size.
@@ -101,9 +101,9 @@
<method name="set">
<return type="void">
</return>
- <argument index="0" name="idx" type="int">
+ <argument index="0" name="index" type="int">
</argument>
- <argument index="1" name="vector3" type="Vector3">
+ <argument index="1" name="value" type="Vector3">
</argument>
<description>
Changes the [Vector3] at the given index.
@@ -123,6 +123,22 @@
Sorts the elements of the array in ascending order.
</description>
</method>
+ <method name="subarray">
+ <return type="PackedVector3Array">
+ </return>
+ <argument index="0" name="from" type="int">
+ </argument>
+ <argument index="1" name="to" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="to_byte_array">
+ <return type="PackedByteArray">
+ </return>
+ <description>
+ </description>
+ </method>
</methods>
<constants>
</constants>
diff --git a/doc/classes/PacketPeerUDP.xml b/doc/classes/PacketPeerUDP.xml
index 668655b725..cab821b4c0 100644
--- a/doc/classes/PacketPeerUDP.xml
+++ b/doc/classes/PacketPeerUDP.xml
@@ -25,7 +25,7 @@
</argument>
<description>
Calling this method connects this UDP peer to the given [code]host[/code]/[code]port[/code] pair. UDP is in reality connectionless, so this option only means that incoming packets from different addresses are automatically discarded, and that outgoing packets are always sent to the connected address (future calls to [method set_dest_address] are not allowed). This method does not send any data to the remote peer, to do that, use [method PacketPeer.put_var] or [method PacketPeer.put_packet] as usual. See also [UDPServer].
- Note: Connecting to the remote peer does not help to protect from malicious attacks like IP spoofing, etc. Think about using an encryption technique like SSL or DTLS if you feel like your application is transferring sensitive information.
+ [b]Note:[/b] Connecting to the remote peer does not help to protect from malicious attacks like IP spoofing, etc. Think about using an encryption technique like SSL or DTLS if you feel like your application is transferring sensitive information.
</description>
</method>
<method name="get_packet_ip" qualifiers="const">
@@ -123,6 +123,18 @@
</return>
<description>
Waits for a packet to arrive on the listening port. See [method listen].
+ [b]Note:[/b] [method wait] can't be interrupted once it has been called. This can be worked around by allowing the other party to send a specific "death pill" packet like this:
+ [codeblock]
+ # Server
+ socket.set_dest_address("127.0.0.1", 789)
+ socket.put_packet("Time to stop".to_ascii())
+
+ # Client
+ while socket.wait() == OK:
+ var data = socket.get_packet().get_string_from_ascii()
+ if data == "Time to stop":
+ return
+ [/codeblock]
</description>
</method>
</methods>
diff --git a/doc/classes/Plane.xml b/doc/classes/Plane.xml
index d420e6ccdc..9352eee1eb 100644
--- a/doc/classes/Plane.xml
+++ b/doc/classes/Plane.xml
@@ -77,7 +77,7 @@
</description>
</method>
<method name="intersect_3">
- <return type="Vector3">
+ <return type="Variant">
</return>
<argument index="0" name="b" type="Plane">
</argument>
@@ -88,7 +88,7 @@
</description>
</method>
<method name="intersects_ray">
- <return type="Vector3">
+ <return type="Variant">
</return>
<argument index="0" name="from" type="Vector3">
</argument>
@@ -99,11 +99,11 @@
</description>
</method>
<method name="intersects_segment">
- <return type="Vector3">
+ <return type="Variant">
</return>
- <argument index="0" name="begin" type="Vector3">
+ <argument index="0" name="from" type="Vector3">
</argument>
- <argument index="1" name="end" type="Vector3">
+ <argument index="1" name="to" type="Vector3">
</argument>
<description>
Returns the intersection point of a segment from position [code]begin[/code] to position [code]end[/code] with this plane. If no intersection is found, [code]null[/code] is returned.
@@ -112,7 +112,7 @@
<method name="is_equal_approx">
<return type="bool">
</return>
- <argument index="0" name="plane" type="Plane">
+ <argument index="0" name="to_plane" type="Plane">
</argument>
<description>
Returns [code]true[/code] if this plane and [code]plane[/code] are approximately equal, by running [method @GDScript.is_equal_approx] on each component.
@@ -121,7 +121,7 @@
<method name="is_point_over">
<return type="bool">
</return>
- <argument index="0" name="point" type="Vector3">
+ <argument index="0" name="plane" type="Vector3">
</argument>
<description>
Returns [code]true[/code] if [code]point[/code] is located above the plane.
diff --git a/doc/classes/PointLight2D.xml b/doc/classes/PointLight2D.xml
new file mode 100644
index 0000000000..9337bc8351
--- /dev/null
+++ b/doc/classes/PointLight2D.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="PointLight2D" inherits="Light2D" version="4.0">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="height" type="float" setter="set_height" getter="get_height" default="0.0">
+ The height of the light. Used with 2D normal mapping.
+ </member>
+ <member name="offset" type="Vector2" setter="set_texture_offset" getter="get_texture_offset" default="Vector2( 0, 0 )">
+ The offset of the light's [member texture].
+ </member>
+ <member name="texture" type="Texture2D" setter="set_texture" getter="get_texture">
+ [Texture2D] used for the light's appearance.
+ </member>
+ <member name="texture_scale" type="float" setter="set_texture_scale" getter="get_texture_scale" default="1.0">
+ The [member texture]'s scale factor.
+ </member>
+ </members>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/Polygon2D.xml b/doc/classes/Polygon2D.xml
index 335df1ac3f..3aca83658d 100644
--- a/doc/classes/Polygon2D.xml
+++ b/doc/classes/Polygon2D.xml
@@ -101,10 +101,6 @@
<member name="invert_enable" type="bool" setter="set_invert" getter="get_invert" default="false">
If [code]true[/code], polygon will be inverted, containing the area outside the defined points and extending to the [code]invert_border[/code].
</member>
- <member name="normal_map" type="Texture2D" setter="set_normal_map" getter="get_normal_map">
- The normal map gives depth to the Polygon2D.
- [b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
- </member>
<member name="offset" type="Vector2" setter="set_offset" getter="get_offset" default="Vector2( 0, 0 )">
The offset applied to each vertex.
</member>
@@ -114,14 +110,8 @@
</member>
<member name="polygons" type="Array" setter="set_polygons" getter="get_polygons" default="[ ]">
</member>
- <member name="shininess" type="float" setter="set_shininess" getter="get_shininess" default="1.0">
- </member>
<member name="skeleton" type="NodePath" setter="set_skeleton" getter="get_skeleton" default="NodePath(&quot;&quot;)">
</member>
- <member name="specular_color" type="Color" setter="set_specular_color" getter="get_specular_color" default="Color( 1, 1, 1, 1 )">
- </member>
- <member name="specular_map" type="Texture2D" setter="set_specular_map" getter="get_specular_map">
- </member>
<member name="texture" type="Texture2D" setter="set_texture" getter="get_texture">
The polygon's fill texture. Use [code]uv[/code] to set texture coordinates.
</member>
diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml
index 9ed831f04d..7ca2dae4d7 100644
--- a/doc/classes/ProjectSettings.xml
+++ b/doc/classes/ProjectSettings.xml
@@ -823,6 +823,8 @@
<member name="logging/file_logging/max_log_files" type="int" setter="" getter="" default="5">
Specifies the maximum amount of log files allowed (used for rotation).
</member>
+ <member name="memory/limits/command_queue/multithreading_queue_size_kb" type="int" setter="" getter="" default="256">
+ </member>
<member name="memory/limits/message_queue/max_size_kb" type="int" setter="" getter="" default="4096">
Godot uses a message queue to defer some function calls. If you run out of space on it (you will see an error), you can increase the size here.
</member>
@@ -1009,8 +1011,11 @@
</member>
<member name="rendering/limits/time/time_rollover_secs" type="float" setter="" getter="" default="3600">
</member>
- <member name="rendering/quality/2d/use_pixel_snap" type="bool" setter="" getter="" default="false">
- If [code]true[/code], forces snapping of polygons to pixels in 2D rendering. May help in some pixel art styles.
+ <member name="rendering/quality/2d/snap_2d_transforms_to_pixel" type="bool" setter="" getter="" default="false">
+ </member>
+ <member name="rendering/quality/2d/snap_2d_vertices_to_pixel" type="bool" setter="" getter="" default="false">
+ </member>
+ <member name="rendering/quality/2d_shadow_atlas/size" type="int" setter="" getter="" default="2048">
</member>
<member name="rendering/quality/depth_of_field/depth_of_field_bokeh_quality" type="int" setter="" getter="" default="2">
Sets the quality of the depth of field effect. Higher quality takes more samples, which is slower but looks smoother.
@@ -1107,6 +1112,8 @@
</member>
<member name="rendering/quality/screen_filters/screen_space_roughness_limiter_limit" type="float" setter="" getter="" default="0.18">
</member>
+ <member name="rendering/quality/screen_filters/use_debanding" type="bool" setter="" getter="" default="false">
+ </member>
<member name="rendering/quality/screen_space_reflection/roughness_quality" type="int" setter="" getter="" default="1">
Sets the quality for rough screen-space reflections. Turning off will make all screen space reflections sharp, while higher values make rough reflections look better.
</member>
diff --git a/doc/classes/Quat.xml b/doc/classes/Quat.xml
index 6c95e303b8..76cfa0d99d 100644
--- a/doc/classes/Quat.xml
+++ b/doc/classes/Quat.xml
@@ -16,45 +16,45 @@
<method name="Quat">
<return type="Quat">
</return>
- <argument index="0" name="from" type="Basis">
+ <argument index="0" name="x" type="float">
+ </argument>
+ <argument index="1" name="y" type="float">
+ </argument>
+ <argument index="2" name="z" type="float">
+ </argument>
+ <argument index="3" name="w" type="float">
</argument>
<description>
- Constructs a quaternion from the given [Basis].
+ Constructs a quaternion defined by the given values.
</description>
</method>
<method name="Quat">
<return type="Quat">
</return>
- <argument index="0" name="euler" type="Vector3">
+ <argument index="0" name="axis" type="Vector3">
+ </argument>
+ <argument index="1" name="angle" type="float">
</argument>
<description>
- Constructs a quaternion that will perform a rotation specified by Euler angles (in the YXZ convention: when decomposing, first Z, then X, and Y last), given in the vector format as (X angle, Y angle, Z angle).
+ Constructs a quaternion that will rotate around the given axis by the specified angle. The axis must be a normalized vector.
</description>
</method>
<method name="Quat">
<return type="Quat">
</return>
- <argument index="0" name="axis" type="Vector3">
- </argument>
- <argument index="1" name="angle" type="float">
+ <argument index="0" name="euler" type="Vector3">
</argument>
<description>
- Constructs a quaternion that will rotate around the given axis by the specified angle. The axis must be a normalized vector.
+ Constructs a quaternion that will perform a rotation specified by Euler angles (in the YXZ convention: when decomposing, first Z, then X, and Y last), given in the vector format as (X angle, Y angle, Z angle).
</description>
</method>
<method name="Quat">
<return type="Quat">
</return>
- <argument index="0" name="x" type="float">
- </argument>
- <argument index="1" name="y" type="float">
- </argument>
- <argument index="2" name="z" type="float">
- </argument>
- <argument index="3" name="w" type="float">
+ <argument index="0" name="from" type="Basis">
</argument>
<description>
- Constructs a quaternion defined by the given values.
+ Constructs a quaternion from the given [Basis].
</description>
</method>
<method name="cubic_slerp">
@@ -75,7 +75,7 @@
<method name="dot">
<return type="float">
</return>
- <argument index="0" name="b" type="Quat">
+ <argument index="0" name="with" type="Quat">
</argument>
<description>
Returns the dot product of two quaternions.
@@ -98,7 +98,7 @@
<method name="is_equal_approx">
<return type="bool">
</return>
- <argument index="0" name="quat" type="Quat">
+ <argument index="0" name="to" type="Quat">
</argument>
<description>
Returns [code]true[/code] if this quaterion and [code]quat[/code] are approximately equal, by running [method @GDScript.is_equal_approx] on each component.
@@ -132,26 +132,6 @@
Returns a copy of the quaternion, normalized to unit length.
</description>
</method>
- <method name="set_axis_angle">
- <return type="void">
- </return>
- <argument index="0" name="axis" type="Vector3">
- </argument>
- <argument index="1" name="angle" type="float">
- </argument>
- <description>
- Sets the quaternion to a rotation which rotates around axis by the specified angle, in radians. The axis must be a normalized vector.
- </description>
- </method>
- <method name="set_euler">
- <return type="void">
- </return>
- <argument index="0" name="euler" type="Vector3">
- </argument>
- <description>
- Sets the quaternion to a rotation specified by Euler angles (in the YXZ convention: when decomposing, first Z, then X, and Y last), given in the vector format as (X angle, Y angle, Z angle).
- </description>
- </method>
<method name="slerp">
<return type="Quat">
</return>
@@ -175,15 +155,6 @@
Returns the result of the spherical linear interpolation between this quaternion and [code]to[/code] by amount [code]weight[/code], but without checking if the rotation path is not bigger than 90 degrees.
</description>
</method>
- <method name="xform">
- <return type="Vector3">
- </return>
- <argument index="0" name="v" type="Vector3">
- </argument>
- <description>
- Returns a vector transformed (multiplied) by this quaternion.
- </description>
- </method>
</methods>
<members>
<member name="w" type="float" setter="" getter="" default="1.0">
diff --git a/doc/classes/RandomNumberGenerator.xml b/doc/classes/RandomNumberGenerator.xml
index d4f9517dd1..dcb75dc275 100644
--- a/doc/classes/RandomNumberGenerator.xml
+++ b/doc/classes/RandomNumberGenerator.xml
@@ -74,9 +74,10 @@
</method>
</methods>
<members>
- <member name="seed" type="int" setter="set_seed" getter="get_seed" default="-6398989897141750821">
+ <member name="seed" type="int" setter="set_seed" getter="get_seed" default="0">
The seed used by the random number generator. A given seed will give a reproducible sequence of pseudo-random numbers.
[b]Note:[/b] The RNG does not have an avalanche effect, and can output similar random streams given similar seeds. Consider using a hash function to improve your seed quality if they're sourced externally.
+ [b]Note:[/b] The default value of this property is pseudo-random, and changes when calling [method randomize]. The [code]0[/code] value documented here is a placeholder, and not the actual default seed.
</member>
</members>
<constants>
diff --git a/doc/classes/Rect2.xml b/doc/classes/Rect2.xml
index aaeaa7629d..a72ba35a98 100644
--- a/doc/classes/Rect2.xml
+++ b/doc/classes/Rect2.xml
@@ -108,7 +108,7 @@
</argument>
<argument index="2" name="right" type="float">
</argument>
- <argument index="3" name=" bottom" type="float">
+ <argument index="3" name="bottom" type="float">
</argument>
<description>
Returns a copy of the [Rect2] grown a given amount of units towards each direction individually.
diff --git a/doc/classes/Rect2i.xml b/doc/classes/Rect2i.xml
index 8b29daa264..de2932e816 100644
--- a/doc/classes/Rect2i.xml
+++ b/doc/classes/Rect2i.xml
@@ -15,9 +15,9 @@
<method name="Rect2i">
<return type="Rect2i">
</return>
- <argument index="0" name="position" type="Vector2">
+ <argument index="0" name="position" type="Vector2i">
</argument>
- <argument index="1" name="size" type="Vector2">
+ <argument index="1" name="size" type="Vector2i">
</argument>
<description>
Constructs a [Rect2i] by position and size.
@@ -106,7 +106,7 @@
</argument>
<argument index="2" name="right" type="int">
</argument>
- <argument index="3" name=" bottom" type="int">
+ <argument index="3" name="bottom" type="int">
</argument>
<description>
Returns a copy of the [Rect2i] grown a given amount of units towards each direction individually.
diff --git a/doc/classes/RenderingServer.xml b/doc/classes/RenderingServer.xml
index 857c13deb5..5830a8452c 100644
--- a/doc/classes/RenderingServer.xml
+++ b/doc/classes/RenderingServer.xml
@@ -404,28 +404,6 @@
The mode of the light, see [enum CanvasLightMode] constants.
</description>
</method>
- <method name="canvas_light_set_scale">
- <return type="void">
- </return>
- <argument index="0" name="light" type="RID">
- </argument>
- <argument index="1" name="scale" type="float">
- </argument>
- <description>
- Sets the texture's scale factor of the light. Equivalent to [member Light2D.texture_scale].
- </description>
- </method>
- <method name="canvas_light_set_shadow_buffer_size">
- <return type="void">
- </return>
- <argument index="0" name="light" type="RID">
- </argument>
- <argument index="1" name="size" type="int">
- </argument>
- <description>
- Sets the width of the shadow buffer, size gets scaled to the next power of two for this.
- </description>
- </method>
<method name="canvas_light_set_shadow_color">
<return type="void">
</return>
@@ -478,7 +456,7 @@
<argument index="1" name="texture" type="RID">
</argument>
<description>
- Sets texture to be used by light. Equivalent to [member Light2D.texture].
+ Sets the texture to be used by a [PointLight2D]. Equivalent to [member PointLight2D.texture].
</description>
</method>
<method name="canvas_light_set_texture_offset">
@@ -489,7 +467,18 @@
<argument index="1" name="offset" type="Vector2">
</argument>
<description>
- Sets the offset of the light's texture. Equivalent to [member Light2D.offset].
+ Sets the offset of a [PointLight2D]'s texture. Equivalent to [member PointLight2D.offset].
+ </description>
+ </method>
+ <method name="canvas_light_set_texture_scale">
+ <return type="void">
+ </return>
+ <argument index="0" name="light" type="RID">
+ </argument>
+ <argument index="1" name="scale" type="float">
+ </argument>
+ <description>
+ Sets the scale factor of a [PointLight2D]'s texture. Equivalent to [member PointLight2D.texture_scale].
</description>
</method>
<method name="canvas_light_set_transform">
@@ -708,6 +697,8 @@
</argument>
<argument index="7" name="height_density" type="float">
</argument>
+ <argument index="8" name="aerial_perspective" type="float">
+ </argument>
<description>
</description>
</method>
@@ -2965,6 +2956,16 @@
Sets when the viewport should be updated. See [enum ViewportUpdateMode] constants for options.
</description>
</method>
+ <method name="viewport_set_use_debanding">
+ <return type="void">
+ </return>
+ <argument index="0" name="viewport" type="RID">
+ </argument>
+ <argument index="1" name="enable" type="bool">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="viewport_set_use_xr">
<return type="void">
</return>
@@ -3674,18 +3675,25 @@
<constant name="CANVAS_ITEM_TEXTURE_REPEAT_MAX" value="4" enum="CanvasItemTextureRepeat">
Max value for [enum CanvasItemTextureRepeat] enum.
</constant>
- <constant name="CANVAS_LIGHT_MODE_ADD" value="0" enum="CanvasLightMode">
+ <constant name="CANVAS_GROUP_MODE_DISABLED" value="0" enum="CanvasGroupMode">
+ </constant>
+ <constant name="CANVAS_GROUP_MODE_OPAQUE" value="1" enum="CanvasGroupMode">
+ </constant>
+ <constant name="CANVAS_GROUP_MODE_TRANSPARENT" value="2" enum="CanvasGroupMode">
+ </constant>
+ <constant name="CANVAS_LIGHT_MODE_POINT" value="0" enum="CanvasLightMode">
+ </constant>
+ <constant name="CANVAS_LIGHT_MODE_DIRECTIONAL" value="1" enum="CanvasLightMode">
+ </constant>
+ <constant name="CANVAS_LIGHT_BLEND_MODE_ADD" value="0" enum="CanvasLightBlendMode">
Adds light color additive to the canvas.
</constant>
- <constant name="CANVAS_LIGHT_MODE_SUB" value="1" enum="CanvasLightMode">
+ <constant name="CANVAS_LIGHT_BLEND_MODE_SUB" value="1" enum="CanvasLightBlendMode">
Adds light color subtractive to the canvas.
</constant>
- <constant name="CANVAS_LIGHT_MODE_MIX" value="2" enum="CanvasLightMode">
+ <constant name="CANVAS_LIGHT_BLEND_MODE_MIX" value="2" enum="CanvasLightBlendMode">
The light adds color depending on transparency.
</constant>
- <constant name="CANVAS_LIGHT_MODE_MASK" value="3" enum="CanvasLightMode">
- The light adds color depending on mask.
- </constant>
<constant name="CANVAS_LIGHT_FILTER_NONE" value="0" enum="CanvasLightShadowFilter">
Do not apply a filter to canvas light shadows.
</constant>
diff --git a/doc/classes/Signal.xml b/doc/classes/Signal.xml
index 1a05c02b60..51490caf6f 100644
--- a/doc/classes/Signal.xml
+++ b/doc/classes/Signal.xml
@@ -33,7 +33,7 @@
</description>
</method>
<method name="disconnect">
- <return type="Variant">
+ <return type="void">
</return>
<argument index="0" name="callable" type="Callable">
</argument>
diff --git a/doc/classes/Sprite2D.xml b/doc/classes/Sprite2D.xml
index 8205889ea7..c56596423d 100644
--- a/doc/classes/Sprite2D.xml
+++ b/doc/classes/Sprite2D.xml
@@ -53,10 +53,6 @@
<member name="hframes" type="int" setter="set_hframes" getter="get_hframes" default="1">
The number of columns in the sprite sheet.
</member>
- <member name="normal_map" type="Texture2D" setter="set_normal_map" getter="get_normal_map">
- The normal map gives depth to the Sprite2D.
- [b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
- </member>
<member name="offset" type="Vector2" setter="set_offset" getter="get_offset" default="Vector2( 0, 0 )">
The texture's drawing offset.
</member>
@@ -69,15 +65,6 @@
<member name="region_rect" type="Rect2" setter="set_region_rect" getter="get_region_rect" default="Rect2( 0, 0, 0, 0 )">
The region of the atlas texture to display. [member region_enabled] must be [code]true[/code].
</member>
- <member name="shininess" type="float" setter="set_shininess" getter="get_shininess" default="1.0">
- Strength of the specular light effect of this [Sprite2D].
- </member>
- <member name="specular_color" type="Color" setter="set_specular_color" getter="get_specular_color" default="Color( 1, 1, 1, 1 )">
- The color of the specular light effect.
- </member>
- <member name="specular_map" type="Texture2D" setter="set_specular_map" getter="get_specular_map">
- The specular map is used for more control on the shininess effect.
- </member>
<member name="texture" type="Texture2D" setter="set_texture" getter="get_texture">
[Texture2D] object to draw.
</member>
diff --git a/doc/classes/String.xml b/doc/classes/String.xml
index 4034a5ee07..fcd8f57cd1 100644
--- a/doc/classes/String.xml
+++ b/doc/classes/String.xml
@@ -314,6 +314,14 @@
Returns the bigrams (pairs of consecutive letters) of this string.
</description>
</method>
+ <method name="bin_to_int">
+ <return type="int">
+ </return>
+ <argument index="0" name="with_prefix" type="bool" default="true">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="c_escape">
<return type="String">
</return>
@@ -397,17 +405,6 @@
Returns [code]true[/code] if the string ends with the given string.
</description>
</method>
- <method name="erase">
- <return type="void">
- </return>
- <argument index="0" name="position" type="int">
- </argument>
- <argument index="1" name="chars" type="int">
- </argument>
- <description>
- Erases [code]chars[/code] characters from the string starting from [code]position[/code].
- </description>
- </method>
<method name="find">
<return type="int">
</return>
@@ -485,10 +482,13 @@
<method name="hex_to_int">
<return type="int">
</return>
+ <argument index="0" name="with_prefix" type="bool" default="true">
+ </argument>
<description>
- Converts a string containing a hexadecimal number into an integer. Hexadecimal strings are expected to be prefixed with "[code]0x[/code]" otherwise [code]0[/code] is returned.
+ Converts a string containing a hexadecimal number into a decimal integer. If [code]with_prefix[/code] is [code]true[/code], the hexadecimal string should start with the [code]0x[/code] prefix, otherwise [code]0[/code] is returned.
[codeblock]
print("0xff".hex_to_int()) # Print "255"
+ print("ab".hex_to_int(false)) # Print "171"
[/codeblock]
</description>
</method>
@@ -512,20 +512,6 @@
[/codeblock]
</description>
</method>
- <method name="humanize_size">
- <return type="String">
- </return>
- <argument index="0" name="size" type="int">
- </argument>
- <description>
- Converts [code]size[/code] represented as number of bytes to human-readable format using internationalized set of data size units, namely: B, KiB, MiB, GiB, TiB, PiB, EiB. Note that the next smallest unit is picked automatically to hold at most 1024 units.
- [codeblock]
- var bytes = 133790307
- var size = String.humanize_size(bytes)
- print(size) # prints "127.5 MiB"
- [/codeblock]
- </description>
- </method>
<method name="insert">
<return type="String">
</return>
@@ -990,11 +976,11 @@
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">
+ <method name="to_ascii_buffer">
<return type="PackedByteArray">
</return>
<description>
- Converts the String (which is a character array) to ASCII/Latin-1 encoded [PackedByteArray] (which is an array of bytes). The conversion is faster compared to [method to_utf8], as this method assumes that all the characters in the String are ASCII/Latin-1 characters, unsupported characters are replaced with spaces.
+ Converts the String (which is a character array) to ASCII/Latin-1 encoded [PackedByteArray] (which is an array of bytes). The conversion is faster compared to [method to_utf8_buffer], as this method assumes that all the characters in the String are ASCII/Latin-1 characters, unsupported characters are replaced with spaces.
</description>
</method>
<method name="to_float">
@@ -1025,25 +1011,25 @@
Returns the string converted to uppercase.
</description>
</method>
- <method name="to_utf16">
+ <method name="to_utf16_buffer">
<return type="PackedByteArray">
</return>
<description>
Converts the String (which is an array of characters) to UTF-16 encoded [PackedByteArray] (which is an array of bytes).
</description>
</method>
- <method name="to_utf32">
+ <method name="to_utf32_buffer">
<return type="PackedByteArray">
</return>
<description>
Converts the String (which is an array of characters) to UTF-32 encoded [PackedByteArray] (which is an array of bytes).
</description>
</method>
- <method name="to_utf8">
+ <method name="to_utf8_buffer">
<return type="PackedByteArray">
</return>
<description>
- Converts the String (which is an array of characters) to UTF-8 encode [PackedByteArray] (which is an array of bytes). The conversion is a bit slower than [method to_ascii], but supports all UTF-8 characters. Therefore, you should prefer this function over [method to_ascii].
+ Converts the String (which is an array of characters) to UTF-8 encode [PackedByteArray] (which is an array of bytes). The conversion is a bit slower than [method to_ascii_buffer], but supports all UTF-8 characters. Therefore, you should prefer this function over [method to_ascii_buffer].
</description>
</method>
<method name="trim_prefix">
@@ -1067,8 +1053,10 @@
<method name="xml_escape">
<return type="String">
</return>
+ <argument index="0" name="escape_quotes" type="bool" default="false">
+ </argument>
<description>
- Returns a copy of the string with special characters escaped using the XML standard.
+ Returns a copy of the string with special characters escaped using the XML standard. If [code]escape_quotes[/code] is [code]true[/code], the single quote ([code]'[/code]) and double quote ([code]"[/code]) characters are also escaped.
</description>
</method>
<method name="xml_unescape">
diff --git a/doc/classes/StyleBoxTexture.xml b/doc/classes/StyleBoxTexture.xml
index f8aa14cb2b..6f5577b61b 100644
--- a/doc/classes/StyleBoxTexture.xml
+++ b/doc/classes/StyleBoxTexture.xml
@@ -119,10 +119,6 @@
<member name="modulate_color" type="Color" setter="set_modulate" getter="get_modulate" default="Color( 1, 1, 1, 1 )">
Modulates the color of the texture when this style box is drawn.
</member>
- <member name="normal_map" type="Texture2D" setter="set_normal_map" getter="get_normal_map">
- The normal map to use when drawing this style box.
- [b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
- </member>
<member name="region_rect" type="Rect2" setter="set_region_rect" getter="get_region_rect" default="Rect2( 0, 0, 0, 0 )">
Species a sub-region of the texture to use.
This is equivalent to first wrapping the texture in an [AtlasTexture] with the same region.
diff --git a/doc/classes/Tabs.xml b/doc/classes/Tabs.xml
index ef1f370185..15c2d3504c 100644
--- a/doc/classes/Tabs.xml
+++ b/doc/classes/Tabs.xml
@@ -4,7 +4,7 @@
Tabs control.
</brief_description>
<description>
- Simple tabs control, similar to [TabContainer] but is only in charge of drawing tabs, not interact with children.
+ Simple tabs control, similar to [TabContainer] but is only in charge of drawing tabs, not interacting with children.
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/TextEdit.xml b/doc/classes/TextEdit.xml
index a23a4936f8..53d706db2d 100644
--- a/doc/classes/TextEdit.xml
+++ b/doc/classes/TextEdit.xml
@@ -213,6 +213,12 @@
Returns the [PopupMenu] of this [TextEdit]. By default, this menu is displayed when right-clicking on the [TextEdit].
</description>
</method>
+ <method name="get_selection_column" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_selection_from_column" qualifiers="const">
<return type="int">
</return>
@@ -227,6 +233,18 @@
Returns the selection begin line.
</description>
</method>
+ <method name="get_selection_line" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_selection_mode" qualifiers="const">
+ <return type="int" enum="TextEdit.SelectionMode">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_selection_text" qualifiers="const">
<return type="String">
</return>
@@ -555,6 +573,18 @@
<description>
</description>
</method>
+ <method name="set_selection_mode">
+ <return type="void">
+ </return>
+ <argument index="0" name="mode" type="int" enum="TextEdit.SelectionMode">
+ </argument>
+ <argument index="1" name="line" type="int" default="-1">
+ </argument>
+ <argument index="2" name="column" type="int" default="-1">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="toggle_fold_line">
<return type="void">
</return>
@@ -732,6 +762,16 @@
<constant name="SEARCH_BACKWARDS" value="4" enum="SearchFlags">
Search from end to beginning.
</constant>
+ <constant name="SELECTION_MODE_NONE" value="0" enum="SelectionMode">
+ </constant>
+ <constant name="SELECTION_MODE_SHIFT" value="1" enum="SelectionMode">
+ </constant>
+ <constant name="SELECTION_MODE_POINTER" value="2" enum="SelectionMode">
+ </constant>
+ <constant name="SELECTION_MODE_WORD" value="3" enum="SelectionMode">
+ </constant>
+ <constant name="SELECTION_MODE_LINE" value="4" enum="SelectionMode">
+ </constant>
<constant name="GUTTER_TYPE_STRING" value="0" enum="GutterType">
</constant>
<constant name="GUTTER_TPYE_ICON" value="1" enum="GutterType">
diff --git a/doc/classes/Texture2D.xml b/doc/classes/Texture2D.xml
index f283efdc3d..ff8b439a3d 100644
--- a/doc/classes/Texture2D.xml
+++ b/doc/classes/Texture2D.xml
@@ -22,16 +22,6 @@
</argument>
<argument index="3" name="transpose" type="bool" default="false">
</argument>
- <argument index="4" name="normal_map" type="Texture2D" default="null">
- </argument>
- <argument index="5" name="specular_map" type="Texture2D" default="null">
- </argument>
- <argument index="6" name="specular_color_shininess" type="Color" default="Color( 1, 1, 1, 1 )">
- </argument>
- <argument index="7" name="texture_filter" type="int" enum="RenderingServer.CanvasItemTextureFilter" default="0">
- </argument>
- <argument index="8" name="texture_repeat" type="int" enum="RenderingServer.CanvasItemTextureRepeat" default="0">
- </argument>
<description>
Draws the texture using a [CanvasItem] with the [RenderingServer] API at the specified [code]position[/code].
</description>
@@ -49,16 +39,6 @@
</argument>
<argument index="4" name="transpose" type="bool" default="false">
</argument>
- <argument index="5" name="normal_map" type="Texture2D" default="null">
- </argument>
- <argument index="6" name="specular_map" type="Texture2D" default="null">
- </argument>
- <argument index="7" name="specular_color_shininess" type="Color" default="Color( 1, 1, 1, 1 )">
- </argument>
- <argument index="8" name="texture_filter" type="int" enum="RenderingServer.CanvasItemTextureFilter" default="0">
- </argument>
- <argument index="9" name="texture_repeat" type="int" enum="RenderingServer.CanvasItemTextureRepeat" default="0">
- </argument>
<description>
Draws the texture using a [CanvasItem] with the [RenderingServer] API.
</description>
@@ -76,17 +56,7 @@
</argument>
<argument index="4" name="transpose" type="bool" default="false">
</argument>
- <argument index="5" name="normal_map" type="Texture2D" default="null">
- </argument>
- <argument index="6" name="specular_map" type="Texture2D" default="null">
- </argument>
- <argument index="7" name="specular_color_shininess" type="Color" default="Color( 1, 1, 1, 1 )">
- </argument>
- <argument index="8" name="texture_filter" type="int" enum="RenderingServer.CanvasItemTextureFilter" default="0">
- </argument>
- <argument index="9" name="texture_repeat" type="int" enum="RenderingServer.CanvasItemTextureRepeat" default="0">
- </argument>
- <argument index="10" name="clip_uv" type="bool" default="true">
+ <argument index="5" name="clip_uv" type="bool" default="true">
</argument>
<description>
Draws a part of the texture using a [CanvasItem] with the [RenderingServer] API.
diff --git a/doc/classes/TileSet.xml b/doc/classes/TileSet.xml
index 9ab9d9ca7a..adc5880c71 100644
--- a/doc/classes/TileSet.xml
+++ b/doc/classes/TileSet.xml
@@ -389,15 +389,6 @@
Returns the offset of the tile's navigation polygon.
</description>
</method>
- <method name="tile_get_normal_map" qualifiers="const">
- <return type="Texture2D">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- Returns the tile's normal map texture.
- </description>
- </method>
<method name="tile_get_occluder_offset" qualifiers="const">
<return type="Vector2">
</return>
@@ -600,18 +591,6 @@
Sets an offset for the tile's navigation polygon.
</description>
</method>
- <method name="tile_set_normal_map">
- <return type="void">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="normal_map" type="Texture2D">
- </argument>
- <description>
- Sets the tile's normal map texture.
- [b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
- </description>
- </method>
<method name="tile_set_occluder_offset">
<return type="void">
</return>
diff --git a/doc/classes/Transform.xml b/doc/classes/Transform.xml
index 52dda75dff..8e539e64f7 100644
--- a/doc/classes/Transform.xml
+++ b/doc/classes/Transform.xml
@@ -79,7 +79,7 @@
<method name="interpolate_with">
<return type="Transform">
</return>
- <argument index="0" name="transform" type="Transform">
+ <argument index="0" name="xform" type="Transform">
</argument>
<argument index="1" name="weight" type="float">
</argument>
@@ -97,7 +97,7 @@
<method name="is_equal_approx">
<return type="bool">
</return>
- <argument index="0" name="transform" type="Transform">
+ <argument index="0" name="xform" type="Transform">
</argument>
<description>
Returns [code]true[/code] if this transform and [code]transform[/code] are approximately equal, by calling [code]is_equal_approx[/code] on each component.
@@ -153,24 +153,6 @@
Unlike [method rotated] and [method scaled], this does not use matrix multiplication.
</description>
</method>
- <method name="xform">
- <return type="Variant">
- </return>
- <argument index="0" name="v" type="Variant">
- </argument>
- <description>
- Transforms the given [Vector3], [Plane], [AABB], or [PackedVector3Array] by this transform.
- </description>
- </method>
- <method name="xform_inv">
- <return type="Variant">
- </return>
- <argument index="0" name="v" type="Variant">
- </argument>
- <description>
- Inverse-transforms the given [Vector3], [Plane], [AABB], or [PackedVector3Array] by this transform.
- </description>
- </method>
</methods>
<members>
<member name="basis" type="Basis" setter="" getter="" default="Basis( 1, 0, 0, 0, 1, 0, 0, 0, 1 )">
diff --git a/doc/classes/Transform2D.xml b/doc/classes/Transform2D.xml
index b23bb4d33b..66adeab3a6 100644
--- a/doc/classes/Transform2D.xml
+++ b/doc/classes/Transform2D.xml
@@ -17,10 +17,12 @@
<method name="Transform2D">
<return type="Transform2D">
</return>
- <argument index="0" name="from" type="Transform">
+ <argument index="0" name="rotation" type="float">
+ </argument>
+ <argument index="1" name="position" type="Vector2">
</argument>
<description>
- Constructs the transform from a 3D [Transform].
+ Constructs the transform from a given angle (in radians) and position.
</description>
</method>
<method name="Transform2D">
@@ -39,12 +41,10 @@
<method name="Transform2D">
<return type="Transform2D">
</return>
- <argument index="0" name="rotation" type="float">
- </argument>
- <argument index="1" name="position" type="Vector2">
+ <argument index="0" name="from" type="Transform">
</argument>
<description>
- Constructs the transform from a given angle (in radians) and position.
+ Constructs the transform from a 3D [Transform].
</description>
</method>
<method name="affine_inverse">
@@ -98,9 +98,9 @@
<method name="interpolate_with">
<return type="Transform2D">
</return>
- <argument index="0" name="transform" type="Transform2D">
+ <argument index="0" name="xform" type="Transform2D">
</argument>
- <argument index="1" name="weight" type="float">
+ <argument index="1" name="t" type="float">
</argument>
<description>
Returns a transform interpolated between this transform and another by a given weight (on the range of 0.0 to 1.0).
@@ -116,7 +116,7 @@
<method name="is_equal_approx">
<return type="bool">
</return>
- <argument index="0" name="transform" type="Transform2D">
+ <argument index="0" name="xform" type="Transform2D">
</argument>
<description>
Returns [code]true[/code] if this transform and [code]transform[/code] are approximately equal, by calling [code]is_equal_approx[/code] on each component.
@@ -157,24 +157,6 @@
Unlike [method rotated] and [method scaled], this does not use matrix multiplication.
</description>
</method>
- <method name="xform">
- <return type="Variant">
- </return>
- <argument index="0" name="v" type="Variant">
- </argument>
- <description>
- Transforms the given [Vector2], [Rect2], or [PackedVector2Array] by this transform.
- </description>
- </method>
- <method name="xform_inv">
- <return type="Variant">
- </return>
- <argument index="0" name="v" type="Variant">
- </argument>
- <description>
- Inverse-transforms the given [Vector2], [Rect2], or [PackedVector2Array] by this transform.
- </description>
- </method>
</methods>
<members>
<member name="origin" type="Vector2" setter="" getter="" default="Vector2( 0, 0 )">
diff --git a/doc/classes/Vector2.xml b/doc/classes/Vector2.xml
index 025d6474ee..231e0ed06a 100644
--- a/doc/classes/Vector2.xml
+++ b/doc/classes/Vector2.xml
@@ -177,7 +177,7 @@
<method name="is_equal_approx">
<return type="bool">
</return>
- <argument index="0" name="v" type="Vector2">
+ <argument index="0" name="to" type="Vector2">
</argument>
<description>
Returns [code]true[/code] if this vector and [code]v[/code] are approximately equal, by running [method @GDScript.is_equal_approx] on each component.
@@ -208,7 +208,7 @@
<method name="lerp">
<return type="Vector2">
</return>
- <argument index="0" name="b" type="Vector2">
+ <argument index="0" name="with" type="Vector2">
</argument>
<argument index="1" name="t" type="float">
</argument>
@@ -296,7 +296,7 @@
<method name="slerp">
<return type="Vector2">
</return>
- <argument index="0" name="b" type="Vector2">
+ <argument index="0" name="with" type="Vector2">
</argument>
<argument index="1" name="t" type="float">
</argument>
diff --git a/doc/classes/Vector3.xml b/doc/classes/Vector3.xml
index b26fe09e91..7e47f768b4 100644
--- a/doc/classes/Vector3.xml
+++ b/doc/classes/Vector3.xml
@@ -74,7 +74,7 @@
<method name="cross">
<return type="Vector3">
</return>
- <argument index="0" name="b" type="Vector3">
+ <argument index="0" name="with" type="Vector3">
</argument>
<description>
Returns the cross product of this vector and [code]b[/code].
@@ -126,7 +126,7 @@
<method name="dot">
<return type="float">
</return>
- <argument index="0" name="b" type="Vector3">
+ <argument index="0" name="with" type="Vector3">
</argument>
<description>
Returns the dot product of this vector and [code]b[/code]. This can be used to compare the angle between two vectors. For example, this can be used to determine whether an enemy is facing the player.
@@ -152,7 +152,7 @@
<method name="is_equal_approx">
<return type="bool">
</return>
- <argument index="0" name="v" type="Vector3">
+ <argument index="0" name="to" type="Vector3">
</argument>
<description>
Returns [code]true[/code] if this vector and [code]v[/code] are approximately equal, by running [method @GDScript.is_equal_approx] on each component.
@@ -226,7 +226,7 @@
<method name="outer">
<return type="Basis">
</return>
- <argument index="0" name="b" type="Vector3">
+ <argument index="0" name="with" type="Vector3">
</argument>
<description>
Returns the outer product with [code]b[/code].
@@ -271,7 +271,7 @@
<method name="rotated">
<return type="Vector3">
</return>
- <argument index="0" name="axis" type="Vector3">
+ <argument index="0" name="by_axis" type="Vector3">
</argument>
<argument index="1" name="phi" type="float">
</argument>
diff --git a/doc/classes/Vector3i.xml b/doc/classes/Vector3i.xml
index f977b81ce7..45e237fb23 100644
--- a/doc/classes/Vector3i.xml
+++ b/doc/classes/Vector3i.xml
@@ -36,6 +36,12 @@
Constructs a new [Vector3i] from [Vector3]. The floating point coordinates will be truncated.
</description>
</method>
+ <method name="abs">
+ <return type="Vector3i">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="max_axis">
<return type="int">
</return>
diff --git a/doc/classes/Viewport.xml b/doc/classes/Viewport.xml
index 84974874de..85dc5e8fd8 100644
--- a/doc/classes/Viewport.xml
+++ b/doc/classes/Viewport.xml
@@ -250,9 +250,15 @@
The shadow atlas' resolution (used for omni and spot lights). The value will be rounded up to the nearest power of 2.
[b]Note:[/b] If this is set to 0, shadows won't be visible. Since user-created viewports default to a value of 0, this value must be set above 0 manually.
</member>
+ <member name="snap_2d_transforms_to_pixel" type="bool" setter="set_snap_2d_transforms_to_pixel" getter="is_snap_2d_transforms_to_pixel_enabled" default="false">
+ </member>
+ <member name="snap_2d_vertices_to_pixel" type="bool" setter="set_snap_2d_vertices_to_pixel" getter="is_snap_2d_vertices_to_pixel_enabled" default="false">
+ </member>
<member name="transparent_bg" type="bool" setter="set_transparent_background" getter="has_transparent_background" default="false">
If [code]true[/code], the viewport should render its background as transparent.
</member>
+ <member name="use_debanding" type="bool" setter="set_use_debanding" getter="is_using_debanding" default="false">
+ </member>
<member name="world_2d" type="World2D" setter="set_world_2d" getter="get_world_2d">
The custom [World2D] which can be used as 2D environment source.
</member>
diff --git a/drivers/vulkan/SCsub b/drivers/vulkan/SCsub
index ddd6be51bc..13fcaf16d2 100644
--- a/drivers/vulkan/SCsub
+++ b/drivers/vulkan/SCsub
@@ -64,7 +64,6 @@ elif env["builtin_vulkan"]:
"VK_USE_PLATFORM_WIN32_KHR",
"VULKAN_NON_CMAKE_BUILD",
"WIN32_LEAN_AND_MEAN",
- "STRSAFE_NO_DEPRECATE",
'API_NAME=\\"%s\\"' % "Vulkan",
]
)
diff --git a/drivers/vulkan/rendering_device_vulkan.cpp b/drivers/vulkan/rendering_device_vulkan.cpp
index 92d7906b6c..a356586698 100644
--- a/drivers/vulkan/rendering_device_vulkan.cpp
+++ b/drivers/vulkan/rendering_device_vulkan.cpp
@@ -2947,7 +2947,7 @@ Error RenderingDeviceVulkan::texture_clear(RID p_texture, const Color &p_color,
image_memory_barrier.srcAccessMask = valid_texture_access;
image_memory_barrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
image_memory_barrier.oldLayout = src_tex->layout;
- image_memory_barrier.oldLayout = clear_layout;
+ image_memory_barrier.newLayout = clear_layout;
image_memory_barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
image_memory_barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
@@ -3227,8 +3227,8 @@ VkRenderPass RenderingDeviceVulkan::_render_pass_create(const Vector<AttachmentF
}
if (reference.layout != description.finalLayout) {
// NOTE: this should be smarter based on the textures knowledge of it's subsequent role
- dependency_from_external.dstStageMask |= VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
- dependency_from_external.dstAccessMask |= VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT;
+ dependency_to_external.dstStageMask |= VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
+ dependency_to_external.dstAccessMask |= VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT;
}
}
@@ -3258,7 +3258,7 @@ VkRenderPass RenderingDeviceVulkan::_render_pass_create(const Vector<AttachmentF
render_pass_create_info.pAttachments = attachments.ptr();
render_pass_create_info.subpassCount = 1;
render_pass_create_info.pSubpasses = &subpass;
- render_pass_create_info.dependencyCount = 0; //2 - throws validation layer error
+ render_pass_create_info.dependencyCount = 2;
render_pass_create_info.pDependencies = dependencies;
VkRenderPass render_pass;
@@ -6795,13 +6795,12 @@ void RenderingDeviceVulkan::compute_list_add_barrier(ComputeListID p_list) {
void RenderingDeviceVulkan::compute_list_end() {
ERR_FAIL_COND(!compute_list);
- const VkPipelineStageFlags dest_stage_mask = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT | VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT;
for (Set<Texture *>::Element *E = compute_list->state.textures_to_sampled_layout.front(); E; E = E->next()) {
VkImageMemoryBarrier image_memory_barrier;
image_memory_barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
image_memory_barrier.pNext = nullptr;
image_memory_barrier.srcAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT;
- image_memory_barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_INDIRECT_COMMAND_READ_BIT;
+ image_memory_barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_TRANSFER_READ_BIT;
image_memory_barrier.oldLayout = E->get()->layout;
image_memory_barrier.newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
@@ -6815,7 +6814,7 @@ void RenderingDeviceVulkan::compute_list_end() {
image_memory_barrier.subresourceRange.layerCount = E->get()->layers;
// TODO: Look at the usages in the compute list and determine tighter dst stage and access masks based on some "final" usage equivalent
- vkCmdPipelineBarrier(compute_list->command_buffer, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, dest_stage_mask, 0, 0, nullptr, 0, nullptr, 1, &image_memory_barrier);
+ vkCmdPipelineBarrier(compute_list->command_buffer, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT, 0, 0, nullptr, 0, nullptr, 1, &image_memory_barrier);
E->get()->layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
}
@@ -6825,7 +6824,7 @@ void RenderingDeviceVulkan::compute_list_end() {
#ifdef FORCE_FULL_BARRIER
_full_barrier(true);
#else
- _memory_barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, dest_stage_mask, VK_ACCESS_SHADER_WRITE_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | VK_ACCESS_INDEX_READ_BIT | VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT | VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT | VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_INDIRECT_COMMAND_READ_BIT, true);
+ _memory_barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | VK_PIPELINE_STAGE_VERTEX_INPUT_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_INDEX_READ_BIT | VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT | VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_INDIRECT_COMMAND_READ_BIT, true);
#endif
}
diff --git a/drivers/vulkan/vulkan_context.cpp b/drivers/vulkan/vulkan_context.cpp
index 997ed3935f..8840391966 100644
--- a/drivers/vulkan/vulkan_context.cpp
+++ b/drivers/vulkan/vulkan_context.cpp
@@ -154,7 +154,7 @@ VkBool32 VulkanContext::_check_layers(uint32_t check_count, const char **check_n
}
}
if (!found) {
- ERR_PRINT("Can't find layer: " + String(check_names[i]));
+ WARN_PRINT("Can't find layer: " + String(check_names[i]));
return 0;
}
}
@@ -1479,23 +1479,6 @@ VkPhysicalDeviceLimits VulkanContext::get_device_limits() const {
return gpu_props.limits;
}
-VulkanContext::VulkanContext() {
- queue_props = nullptr;
- command_buffer_count = 0;
- instance_validation_layers = nullptr;
- use_validation_layers = true;
- VK_KHR_incremental_present_enabled = true;
- VK_GOOGLE_display_timing_enabled = true;
-
- command_buffer_queue.resize(1); //first one is the setup command always
- command_buffer_queue.write[0] = nullptr;
- command_buffer_count = 1;
- queues_initialized = false;
-
- buffers_prepared = false;
- swapchainImageCount = 0;
-}
-
RID VulkanContext::local_device_create() {
LocalDevice ld;
@@ -1583,6 +1566,13 @@ void VulkanContext::local_device_free(RID p_local_device) {
local_device_owner.free(p_local_device);
}
+VulkanContext::VulkanContext() {
+ use_validation_layers = Engine::get_singleton()->is_validation_layers_enabled();
+
+ command_buffer_queue.resize(1); // First one is always the setup command.
+ command_buffer_queue.write[0] = nullptr;
+}
+
VulkanContext::~VulkanContext() {
if (queue_props) {
free(queue_props);
@@ -1596,7 +1586,7 @@ VulkanContext::~VulkanContext() {
vkDestroySemaphore(device, image_ownership_semaphores[i], nullptr);
}
}
- if (inst_initialized) {
+ if (inst_initialized && use_validation_layers) {
DestroyDebugUtilsMessengerEXT(inst, dbg_messenger, nullptr);
}
vkDestroyDevice(device, nullptr);
diff --git a/drivers/vulkan/vulkan_context.h b/drivers/vulkan/vulkan_context.h
index 9ebea42ecb..59e404512a 100644
--- a/drivers/vulkan/vulkan_context.h
+++ b/drivers/vulkan/vulkan_context.h
@@ -37,6 +37,7 @@
#include "core/rid_owner.h"
#include "core/ustring.h"
#include "servers/display_server.h"
+
#include <vulkan/vulkan.h>
class VulkanContext {
@@ -51,13 +52,15 @@ class VulkanContext {
VkPhysicalDevice gpu;
VkPhysicalDeviceProperties gpu_props;
uint32_t queue_family_count;
- VkQueueFamilyProperties *queue_props;
+ VkQueueFamilyProperties *queue_props = nullptr;
VkDevice device;
bool device_initialized = false;
bool inst_initialized = false;
- //present
- bool queues_initialized;
+ bool buffers_prepared = false;
+
+ // Present queue.
+ bool queues_initialized = false;
uint32_t graphics_queue_family_index;
uint32_t present_queue_family_index;
bool separate_present_queue;
@@ -78,7 +81,6 @@ class VulkanContext {
VkCommandBuffer graphics_to_present_cmd;
VkImageView view;
VkFramebuffer framebuffer;
-
} SwapchainImageResources;
struct Window {
@@ -89,7 +91,7 @@ class VulkanContext {
uint32_t current_buffer = 0;
int width = 0;
int height = 0;
- VkCommandPool present_cmd_pool; //for separate present queue
+ VkCommandPool present_cmd_pool; // For separate present queue.
VkRenderPass render_pass = VK_NULL_HANDLE;
};
@@ -102,19 +104,24 @@ class VulkanContext {
RID_Owner<LocalDevice, true> local_device_owner;
Map<DisplayServer::WindowID, Window> windows;
- uint32_t swapchainImageCount;
+ uint32_t swapchainImageCount = 0;
- //commands
+ // Commands.
bool prepared;
- //extensions
- bool VK_KHR_incremental_present_enabled;
- bool VK_GOOGLE_display_timing_enabled;
- const char **instance_validation_layers;
- uint32_t enabled_extension_count;
- uint32_t enabled_layer_count;
+ Vector<VkCommandBuffer> command_buffer_queue;
+ int command_buffer_count = 1;
+
+ // Extensions.
+
+ bool VK_KHR_incremental_present_enabled = true;
+ bool VK_GOOGLE_display_timing_enabled = true;
+ uint32_t enabled_extension_count = 0;
const char *extension_names[MAX_EXTENSIONS];
+
+ const char **instance_validation_layers = nullptr;
+ uint32_t enabled_layer_count = 0;
const char *enabled_layers[MAX_LAYERS];
PFN_vkCreateDebugUtilsMessengerEXT CreateDebugUtilsMessengerEXT;
@@ -142,7 +149,8 @@ class VulkanContext {
Error _initialize_extensions();
VkBool32 _check_layers(uint32_t check_count, const char **check_names, uint32_t layer_count, VkLayerProperties *layers);
- static VKAPI_ATTR VkBool32 VKAPI_CALL _debug_messenger_callback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
+ static VKAPI_ATTR VkBool32 VKAPI_CALL _debug_messenger_callback(
+ VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
VkDebugUtilsMessageTypeFlagsEXT messageType,
const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData,
void *pUserData);
@@ -160,12 +168,11 @@ class VulkanContext {
Error _create_swap_chain();
Error _create_semaphores();
- Vector<VkCommandBuffer> command_buffer_queue;
- int command_buffer_count;
-
protected:
virtual const char *_get_platform_surface_extension() const = 0;
- // virtual VkResult _create_surface(VkSurfaceKHR *surface, VkInstance p_instance) = 0;
+
+ // Enabled via command line argument.
+ bool use_validation_layers = false;
virtual Error _window_create(DisplayServer::WindowID p_window_id, VkSurfaceKHR p_surface, int p_width, int p_height);
@@ -173,10 +180,6 @@ protected:
return inst;
}
- bool buffers_prepared;
-
- bool use_validation_layers;
-
public:
VkDevice get_device();
VkPhysicalDevice get_physical_device();
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 668cce5b67..3a9715d1ab 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -506,6 +506,11 @@ void EditorNode::_notification(int p_what) {
RS::get_singleton()->environment_set_volumetric_fog_directional_shadow_shrink_size(GLOBAL_GET("rendering/volumetric_fog/directional_shadow_shrink"));
RS::get_singleton()->environment_set_volumetric_fog_positional_shadow_shrink_size(GLOBAL_GET("rendering/volumetric_fog/positional_shadow_shrink"));
RS::get_singleton()->canvas_set_shadow_texture_size(GLOBAL_GET("rendering/quality/2d_shadow_atlas/size"));
+
+ bool snap_2d_transforms = GLOBAL_GET("rendering/quality/2d/snap_2d_transforms_to_pixel");
+ scene_root->set_snap_2d_transforms_to_pixel(snap_2d_transforms);
+ bool snap_2d_vertices = GLOBAL_GET("rendering/quality/2d/snap_2d_vertices_to_pixel");
+ scene_root->set_snap_2d_vertices_to_pixel(snap_2d_vertices);
}
ResourceImporterTexture::get_singleton()->update_imports();
@@ -517,6 +522,8 @@ void EditorNode::_notification(int p_what) {
OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/low_processor_mode_sleep_usec")));
get_tree()->get_root()->set_as_audio_listener(false);
get_tree()->get_root()->set_as_audio_listener_2d(false);
+ get_tree()->get_root()->set_snap_2d_transforms_to_pixel(false);
+ get_tree()->get_root()->set_snap_2d_vertices_to_pixel(false);
get_tree()->set_auto_accept_quit(false);
get_tree()->get_root()->connect("files_dropped", callable_mp(this, &EditorNode::_dropped_files));
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index 5038941784..7002ffa109 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -351,8 +351,8 @@ void Node3DEditorViewport::_update_camera(float p_interp_delta) {
update_transform_gizmo_view();
rotation_control->update();
+ spatial_editor->update_grid();
}
- spatial_editor->update_grid();
}
Transform Node3DEditorViewport::to_camera_transform(const Cursor &p_cursor) const {
diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp
index ac90ee9570..0ccca7e06c 100644
--- a/editor/plugins/polygon_2d_editor_plugin.cpp
+++ b/editor/plugins/polygon_2d_editor_plugin.cpp
@@ -199,7 +199,7 @@ void Polygon2DEditor::_uv_edit_mode_select(int p_mode) {
uv_button[UV_MODE_CREATE]->hide();
uv_button[UV_MODE_CREATE_INTERNAL]->hide();
uv_button[UV_MODE_REMOVE_INTERNAL]->hide();
- for (int i = UV_MODE_MOVE; i <= UV_MODE_SCALE; i++) {
+ for (int i = UV_MODE_EDIT_POINT; i <= UV_MODE_SCALE; i++) {
uv_button[i]->show();
}
uv_button[UV_MODE_ADD_POLYGON]->hide();
@@ -1269,6 +1269,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) :
uv_main_vb->add_child(uv_mode_hb);
for (int i = 0; i < UV_MODE_MAX; i++) {
uv_button[i] = memnew(Button);
+ uv_button[i]->set_flat(true);
uv_button[i]->set_toggle_mode(true);
uv_mode_hb->add_child(uv_button[i]);
uv_button[i]->connect("pressed", callable_mp(this, &Polygon2DEditor::_uv_mode), varray(i));
diff --git a/editor/plugins/tile_map_editor_plugin.cpp b/editor/plugins/tile_map_editor_plugin.cpp
index e43b8c4b7f..7b516175b2 100644
--- a/editor/plugins/tile_map_editor_plugin.cpp
+++ b/editor/plugins/tile_map_editor_plugin.cpp
@@ -651,9 +651,15 @@ Vector<Vector2> TileMapEditor::_bucket_fill(const Point2i &p_start, bool erase,
return Vector<Vector2>();
}
+ // Check if the tile variation is the same
+ Vector2 prev_position = node->get_cell_autotile_coord(p_start.x, p_start.y);
if (ids.size() == 1 && ids[0] == prev_id) {
- // Same ID, nothing to change
- return Vector<Vector2>();
+ int current = manual_palette->get_current();
+ Vector2 position = manual_palette->get_item_metadata(current);
+ if (prev_position == position) {
+ // Same ID and variation, nothing to change
+ return Vector<Vector2>();
+ }
}
Rect2i r = node->get_used_rect();
diff --git a/editor/translations/af.po b/editor/translations/af.po
index 19a9e724ba..55009e16ae 100644
--- a/editor/translations/af.po
+++ b/editor/translations/af.po
@@ -1652,6 +1652,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2969,8 +2989,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4413,7 +4432,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "Nodus Naam:"
@@ -5269,28 +5287,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move pivot"
-msgstr "Skuif Gunsteling Op"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6565,7 +6598,7 @@ msgid "Move Points"
msgstr "Skuif Gunsteling Op"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6573,6 +6606,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6611,12 +6652,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Hernoem AutoLaai"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7080,11 +7122,6 @@ 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 ""
@@ -7093,6 +7130,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Skep"
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8208,6 +8250,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8750,6 +8798,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Nodus Naam:"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "Anim Dupliseer Sleutels"
@@ -8768,6 +8821,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9435,6 +9492,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9495,19 +9556,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Gunstelinge:"
-
-#: 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 ""
@@ -9595,19 +9643,6 @@ msgid ""
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 "Verpak"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -12076,6 +12111,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12100,7 +12151,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12742,6 +12799,18 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "Skuif Gunsteling Op"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Gunstelinge:"
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr "Verpak"
+
#~ msgid "Not in resource path."
#~ msgstr "Nie in hulpbron pad nie."
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index 6335b82b15..346ebd62e0 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -1625,6 +1625,37 @@ msgstr ""
"مكّن 'استيراد Etc' ÙÙŠ إعدادات المشروع، أو عطّل 'تمكين التواÙÙ‚ الرجعي للتعريÙات "
"Driver Fallback Enabled'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"المنصة المستهدÙØ© تحتاج لتشÙير ملمس 'ETC' Ù„ GLES2. قم بتمكين 'Import Etc' ÙÙŠ "
+"إعدادات المشروع."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"المنصة المستهدÙØ© تحتاج لتشÙير ملمس \"ETC2\" Ù„ GLES3. قم بتمكين 'Import Etc "
+"2' ÙÙŠ إعدادات المشروع."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"تتطلب المنصة المستهدÙØ© ضغط الرسومات النقشية 'ETC' texture ليرجع المعرّ٠إلى "
+"GLES2.\n"
+"مكّن 'استيراد Etc' ÙÙŠ إعدادات المشروع، أو عطّل 'تمكين التواÙÙ‚ الرجعي للتعريÙات "
+"Driver Fallback Enabled'."
+
#: 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
@@ -2947,8 +2978,7 @@ msgstr "إدارة قوالب التصدير..."
msgid "Help"
msgstr "مساعدة"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4368,7 +4398,6 @@ msgid "Add Node to BlendTree"
msgstr "إضاÙØ© عÙقدة إلى شجرة الدمج BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "لقد تحركت العÙقدة"
@@ -5197,27 +5226,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "إنشاء موجه عمودي وأÙقي جديد"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "نقل المحور"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate %d CanvasItems"
msgstr "تدوير العنصر القماشي"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "نقل الإرتكاز"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "تدوير العنصر القماشي"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "تغير حجم العنصر القماشي"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "تحريك العنصر القماشي"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale %d CanvasItems"
msgstr "مقياس العنصر القماشي"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr "مقياس العنصر القماشي"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "تحريك العنصر القماشي"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "تحريك العنصر القماشي"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6490,14 +6542,24 @@ msgid "Move Points"
msgstr "تحريك النقاط"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: تدوير"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "سحب: للتدوير"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: تحريك الكÙÙ„"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: تحجيم"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: تدوير"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: تحجيم"
@@ -6537,12 +6599,14 @@ msgid "Radius:"
msgstr "نص٠القطر:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Ù…Ùضلع > UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "إنشاء Ù…Ùضلع ÙˆUV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV > Ù…Ùضلع"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "تحويل إلى Ù…Ùضلع ثنائي الأبعاد"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6988,11 +7052,6 @@ msgstr "Ù…Ùعلّم التركيب Syntax"
#: 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 "المحÙوظات"
@@ -7000,6 +7059,11 @@ msgstr "المحÙوظات"
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8090,6 +8154,15 @@ msgid "Paint Tile"
msgstr "طلاء البلاط"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+ الزر الأيسر للÙأرة: الرسم خطياً\n"
+"Shift+Ctrl+الزر الأيسر للÙأرة: طلاء المستطيلات"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8611,6 +8684,11 @@ msgid "Add Node to Visual Shader"
msgstr "إضاÙØ© عÙقدة للتظليل البصري Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "لقد تحركت العÙقدة"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "مضاعÙØ© العÙقد"
@@ -8628,6 +8706,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "تعدل نوع Ù…Ùدخلات التظليل البصري Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "تحديد اسم موحد"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "رأس"
@@ -9345,6 +9428,10 @@ msgstr ""
"الثوابت."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
"(Ùقط وضع القÙطع Fragment/ الضوء) وظيÙية برمجية اشتقاقية للكمية القياسية "
@@ -9418,18 +9505,6 @@ msgid "Runnable"
msgstr "قابل للتشغيل"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "إضاÙØ© تصدير مبدئي..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "إضاÙØ© الرÙقع السابقة..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "حذ٠رÙقعة '%s' من القائمة؟"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "حذ٠المÙعد Ù…Ùسبقاً '%s'ØŸ"
@@ -9528,18 +9603,6 @@ msgstr ""
"(المÙصولة بÙاصلة، مثلاً: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "الرÙقع Patches"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "إنشاء رÙقعة Patch"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "مل٠الحÙزمة"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "المزايا"
@@ -12042,6 +12105,22 @@ msgstr ""
"Mobile VR\"."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12074,8 +12153,14 @@ msgstr ""
"بصورة بديلة يمكنك زيارة docs.godotengine.org لأجل مستندات البناء للأندرويد."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "لم يتم توليد حزمة أندرويد apk ÙÙŠ: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12849,6 +12934,42 @@ msgstr "يمكن تعيين المتغيرات Ùقط ÙÙŠ الذروة ."
msgid "Constants cannot be modified."
msgstr "لا يمكن تعديل الثوابت."
+#~ msgid "Move pivot"
+#~ msgstr "نقل المحور"
+
+#~ msgid "Move anchor"
+#~ msgstr "نقل الإرتكاز"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "تغير حجم العنصر القماشي"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Ù…Ùضلع > UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV > Ù…Ùضلع"
+
+#~ msgid "Add initial export..."
+#~ msgstr "إضاÙØ© تصدير مبدئي..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "إضاÙØ© الرÙقع السابقة..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "حذ٠رÙقعة '%s' من القائمة؟"
+
+#~ msgid "Patches"
+#~ msgstr "الرÙقع Patches"
+
+#~ msgid "Make Patch"
+#~ msgstr "إنشاء رÙقعة Patch"
+
+#~ msgid "Pack File"
+#~ msgstr "مل٠الحÙزمة"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "لم يتم توليد حزمة أندرويد apk ÙÙŠ: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "رصي٠نظام الملÙات Ùˆ الاستيراد"
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index 3bb60a79e0..afb48710bc 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -10,12 +10,13 @@
# Damyan Dichev <mwshock2@gmail.com>, 2019.
# Whod <whodizhod@gmail.com>, 2020.
# Stoyan <stoyan.stoyanov99@protonmail.com>, 2020.
+# zooid <the.zooid@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-15 07:17+0000\n"
-"Last-Translator: Stoyan <stoyan.stoyanov99@protonmail.com>\n"
+"PO-Revision-Date: 2020-10-27 18:26+0000\n"
+"Last-Translator: zooid <the.zooid@gmail.com>\n"
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/godot-engine/"
"godot/bg/>\n"
"Language: bg\n"
@@ -23,14 +24,14 @@ 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.3-dev\n"
+"X-Generator: Weblate 4.3.2-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_*."
+"Ðевалиден тип на аргумент, подаден на convert() - използвайте конÑтантите "
+"започващи Ñ TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
@@ -198,11 +199,11 @@ msgstr "Промени Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñ†Ð¸ÐºÑŠÐ»"
#: editor/animation_track_editor.cpp
msgid "Property Track"
-msgstr "Път за промÑна на ÑвойÑтвото"
+msgstr "ПиÑта за промÑна на характериÑтики"
#: editor/animation_track_editor.cpp
msgid "3D Transform Track"
-msgstr ""
+msgstr "ПиÑта за промÑна на триизмерна транÑформациÑ"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
@@ -239,7 +240,7 @@ 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:"
@@ -1562,6 +1563,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2815,8 +2836,7 @@ msgstr "Управление на шаблоните за изнаÑÑне..."
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4203,7 +4223,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Възелът е премеÑтен"
@@ -5034,27 +5053,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Създай нова хоризонтална и вертикална помощна линиÑ"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6332,14 +6367,24 @@ msgid "Move Points"
msgstr "ПремеÑтване на точките"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Завъртане"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Влачене: завъртане"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: премеÑтване на вÑичко"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: мащабиране"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Завъртане"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: мащабиране"
@@ -6378,12 +6423,14 @@ msgid "Radius:"
msgstr "РадиуÑ:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
msgstr "Полигон -> UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV -> Полигон"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Превръщане в Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6827,11 +6874,6 @@ 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 ""
@@ -6839,6 +6881,11 @@ msgstr ""
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7936,6 +7983,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8501,6 +8554,11 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Възелът е премеÑтен"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Дублиране на възлите"
@@ -8518,6 +8576,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9177,6 +9239,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9237,19 +9303,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Любими:"
-
-#: 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 ""
@@ -9337,18 +9390,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Пакетен файл"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11816,6 +11857,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11840,7 +11897,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12519,6 +12582,16 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "КонÑтантите не могат да бъдат променени."
+#~ msgid "UV->Polygon"
+#~ msgstr "UV -> Полигон"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Любими:"
+
+#~ msgid "Pack File"
+#~ msgstr "Пакетен файл"
+
#~ msgid "Current scene was never saved, please save it prior to running."
#~ msgstr ""
#~ "Текущата Ñцена никога не е била запазена. МолÑ, запазете Ñ Ð¿Ñ€ÐµÐ´Ð¸ "
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index 8415bb30bd..9d0dc019e0 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -8,12 +8,14 @@
# Tawhid H. <Tawhidk757@yahoo.com>, 2019.
# Hasibul Hasan <hasibeng78@gmail.com>, 2019.
# Oymate <dhruboadittya96@gmail.com>, 2020.
+# Mokarrom Hossain <mhb2016.bzs@gmail.com>, 2020.
+# Sagen Soren <sagensoren03@gmail.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-10-22 19:41+0000\n"
+"Last-Translator: Sagen Soren <sagensoren03@gmail.com>\n"
"Language-Team: Bengali <https://hosted.weblate.org/projects/godot-engine/"
"godot/bn/>\n"
"Language: bn\n"
@@ -21,7 +23,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.1-dev\n"
+"X-Generator: Weblate 4.3.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -43,28 +45,24 @@ msgid "Invalid input %i (not passed) in expression"
msgstr "অবৈধ ইনপà§à¦Ÿ %i (পাস করা হয়নি) পà§à¦°à¦•à¦¾à¦¶à§‡"
#: core/math/expression.cpp
-#, fuzzy
msgid "self can't be used because instance is null (not passed)"
-msgstr "self বà§à¦¯à¦¬à¦¾à¦¹à¦¾à¦° করা যাবে না কারণ instance যà§à¦•à§à¦¤à¦¿à¦¯à§à¦•à§à¦¤ নয়"
+msgstr "self বà§à¦¯à¦¬à¦¹à¦¾à¦° করা যাবে না কারণ instance যà§à¦•à§à¦¤à¦¿à¦¯à§à¦•à§à¦¤ নয়"
#: core/math/expression.cpp
-#, fuzzy
msgid "Invalid operands to operator %s, %s and %s."
msgstr "%s নোডে সূচক/ইনডেকà§à¦¸ মানের অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯ নাম '%s'।"
#: core/math/expression.cpp
-#, fuzzy
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 "অবৈধ নামকরণ সূচক I '%s' for ভিতà§à¦¤à¦¿ type %s"
#: core/math/expression.cpp
-#, fuzzy
msgid "Invalid arguments to construct '%s'"
-msgstr ": অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯ মান/আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ-à¦à¦° ধরণ:"
+msgstr "'%s' নিরà§à¦®à¦¾à¦£à§‡ à¦à¦•à¦¾à¦§à¦¿à¦• অবৈধ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ"
#: core/math/expression.cpp
msgid "On call to '%s':"
@@ -72,32 +70,31 @@ msgstr "কল করà§à¦¨ '%s'"
#: core/ustring.cpp
msgid "B"
-msgstr ""
+msgstr "B"
#: 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"
@@ -108,9 +105,8 @@ msgid "Balanced"
msgstr "সà§à¦¥à¦¿à¦°"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Mirror"
-msgstr "পà§à¦°à¦¤à¦¿à¦¬à¦¿à¦®à§à¦¬ X"
+msgstr "পà§à¦°à¦¤à¦¿à¦¬à¦¿à¦®à§à¦¬"
#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
msgid "Time:"
@@ -131,24 +127,20 @@ msgid "Duplicate Selected Key(s)"
msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অনà§à¦²à¦¿à¦ªà¦¿ করà§à¦¨"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Delete Selected Key(s)"
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
-#, fuzzy
msgid "Anim Duplicate Keys"
-msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) ডà§à¦ªà§à¦²à¦¿à¦•à§‡à¦Ÿ করà§à¦¨ কি"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) ডà§à¦ªà§à¦²à¦¿à¦•à§‡à¦Ÿ/নকল করà§à¦¨ কি"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
@@ -168,7 +160,6 @@ msgid "Anim Change Transform"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) টà§à¦°à¦¾à¦¨à§à¦¸à¦«à¦°à§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Change Keyframe Value"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) ভà§à¦¯à¦¾à¦²à§ পরিবরà§à¦¤à¦¨ করà§à¦¨"
@@ -1689,6 +1680,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -3129,8 +3140,7 @@ msgstr "à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ টেমপà§à¦²à§‡à¦Ÿà¦¸à¦®à§‚হ লোà
msgid "Help"
msgstr "হেলà§à¦ª"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4701,7 +4711,6 @@ msgid "Add Node to BlendTree"
msgstr "শাখা (tree) হতে নোড (সমূহ) যà§à¦•à§à¦¤ করà§à¦¨"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "মোড (Mode) সরান"
@@ -5586,33 +5595,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "নতà§à¦¨ হরাইজনà§à¦Ÿà¦¾à¦² à¦à¦¬à¦‚ ভারà§à¦Ÿà¦¿à¦•à§à¦¯à¦¾à¦² গাইড তৈরী করà§à¦¨"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "CanvasItem সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move pivot"
-msgstr "কেনà§à¦¦à§à¦° সà§à¦¥à¦¾à¦¨à¦¾à¦¨à§à¦¤à¦° করà§à¦¨"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "CanvasItem সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr "CanvasItem সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move anchor"
-msgstr "পà§à¦°à¦•à§à¦°à¦¿à¦¯à¦¼à¦¾ সà§à¦¥à¦¾à¦¨à¦¾à¦¨à§à¦¤à¦° করà§à¦¨"
+msgid "Scale %d CanvasItems"
+msgstr "CanvasItem সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Resize CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "CanvasItem সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Scale CanvasItem"
+msgid "Move %d CanvasItems"
msgstr "CanvasItem সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move CanvasItem"
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "CanvasItem সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6976,14 +7002,24 @@ msgid "Move Points"
msgstr "বিনà§à¦¦à§ সরান"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "কনà§à¦Ÿà§à¦°à§‹à¦² বোতাম: ঘূরà§à¦£à¦¨"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "টান: ঘূরà§à¦£à¦¨"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "শিফটà§â€Œ: সবগà§à¦²à¦¿ নড়ান"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "শিফটà§â€Œ + কনà§à¦Ÿà§à¦°à§‹à¦²: মাপ"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "কনà§à¦Ÿà§à¦°à§‹à¦² বোতাম: ঘূরà§à¦£à¦¨"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "শিফটà§â€Œ + কনà§à¦Ÿà§à¦°à§‹à¦²: মাপ"
@@ -7022,12 +7058,14 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "পলিগন->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Poly তৈরি করà§à¦¨"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->পলিগন"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "পলিগন সরান"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7514,11 +7552,6 @@ 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 ""
@@ -7527,6 +7560,11 @@ msgstr ""
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8717,6 +8755,12 @@ msgstr "TileMap আà¦à¦•à§à¦¨"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -9302,6 +9346,11 @@ msgstr "শেডার"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "মোড (Mode) সরান"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "নোড(সমূহ) পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿ করà§à¦¨"
@@ -9321,6 +9370,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦°à§‡à¦° পরিবরà§à¦¤à¦¨"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Vertex"
msgstr "ভারটেকà§à¦¸"
@@ -10000,6 +10054,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -10065,20 +10123,6 @@ msgstr "সকà§à¦°à¦¿à¦¯à¦¼ করà§à¦¨"
#: editor/project_export.cpp
#, fuzzy
-msgid "Add initial export..."
-msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨"
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Delete patch '%s' from list?"
-msgstr "ইনপà§à¦Ÿ অপসারণ করà§à¦¨"
-
-#: editor/project_export.cpp
-#, fuzzy
msgid "Delete preset '%s'?"
msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ফাইলসমূহ অপসারণ করবেন?"
@@ -10183,21 +10227,6 @@ msgstr ""
#: editor/project_export.cpp
#, fuzzy
-msgid "Patches"
-msgstr "মিলসমূহ:"
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Make Patch"
-msgstr "উদà§à¦¦à§‡à¦¶à§à¦¯à¦¿à¦¤ পথ:"
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Pack File"
-msgstr "ফাইল"
-
-#: editor/project_export.cpp
-#, fuzzy
msgid "Features"
msgstr "গঠনবিনà§à¦¯à¦¾à¦¸"
@@ -12867,6 +12896,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12891,7 +12936,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -13602,6 +13653,44 @@ msgid "Constants cannot be modified."
msgstr ""
#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "কেনà§à¦¦à§à¦° সà§à¦¥à¦¾à¦¨à¦¾à¦¨à§à¦¤à¦° করà§à¦¨"
+
+#, fuzzy
+#~ msgid "Move anchor"
+#~ msgstr "পà§à¦°à¦•à§à¦°à¦¿à¦¯à¦¼à¦¾ সà§à¦¥à¦¾à¦¨à¦¾à¦¨à§à¦¤à¦° করà§à¦¨"
+
+#, fuzzy
+#~ msgid "Resize CanvasItem"
+#~ msgstr "CanvasItem সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "পলিগন->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->পলিগন"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨"
+
+#, fuzzy
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "ইনপà§à¦Ÿ অপসারণ করà§à¦¨"
+
+#, fuzzy
+#~ msgid "Patches"
+#~ msgstr "মিলসমূহ:"
+
+#, fuzzy
+#~ msgid "Make Patch"
+#~ msgstr "উদà§à¦¦à§‡à¦¶à§à¦¯à¦¿à¦¤ পথ:"
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr "ফাইল"
+
+#, fuzzy
#~ msgid "FileSystem and Import Docks"
#~ msgstr "ফাইলসিসà§à¦Ÿà§‡à¦®"
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index 629583d816..e930c8ea22 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -1607,6 +1607,37 @@ msgstr ""
"Activeu \"Import Etc\" a Configuració del Projecte o desactiveu la opció "
"'Driver Fallback Enabled''."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"La plataforma de destí requereix compressió de textures 'ETC' per a GLES2. "
+"Activa 'Import Etc' en la Configuració del Projecte."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"La plataforma de destí requereix compressió de textures 'ETC' per a GLES2. "
+"Activa 'Import Etc 2' en la Configuració del Projecte."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"La plataforma de destinació requereix una compressió de textura 'ETC' per a "
+"utilitzar GLES2 com a controlador alternatiu.\n"
+"Activeu \"Import Etc\" a Configuració del Projecte o desactiveu la opció "
+"'Driver Fallback Enabled''."
+
#: 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
@@ -2953,8 +2984,7 @@ msgstr "Administrar Plantilles d'Exportació..."
msgid "Help"
msgstr "Ajuda"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4406,7 +4436,6 @@ msgid "Add Node to BlendTree"
msgstr "Afegeix Nodes des d'Arbre"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Node mogut"
@@ -5257,31 +5286,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Crea guies horitzontal i vertical"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Moure pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Rotate CanvasItem"
+msgid "Rotate %d CanvasItems"
msgstr "Modifica el elementCanvas"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Moure àncora"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "Modifica el elementCanvas"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Resize CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Modifica el elementCanvas"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "Modifica el elementCanvas"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Modifica el elementCanvas"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Scale CanvasItem"
+msgid "Move %d CanvasItems"
msgstr "Modifica el elementCanvas"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move CanvasItem"
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Modifica el elementCanvas"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6600,14 +6648,24 @@ msgid "Move Points"
msgstr "Moure Punts"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Gira"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Arrossega: gira"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Maj.: Mou'ho tot"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Maj.+Ctrl: Escala"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Gira"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Maj.+Ctrl: Escala"
@@ -6653,12 +6711,14 @@ msgid "Radius:"
msgstr "Radi:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Polígon -> UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Crear Polígon i UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->Polígon"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Convertir a Polígon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7115,11 +7175,6 @@ msgstr "Ressaltador de sintaxi"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Anar a"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Marcadors"
@@ -7127,6 +7182,11 @@ msgstr "Marcadors"
msgid "Breakpoints"
msgstr "Punts d’interrupció"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Anar a"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8264,6 +8324,15 @@ msgstr "Pinta Rajola"
#, fuzzy
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Maj + RMB: dibuixar una línia\n"
+"Maj + Ctrl + RMB: pintar rectangle"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
"Maj + RMB: dibuixar una línia\n"
@@ -8848,6 +8917,11 @@ msgid "Add Node to Visual Shader"
msgstr "Afegir node al VisualShader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Node mogut"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Duplicar Nodes"
@@ -8866,6 +8940,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "El tipus d'entrada VisualShader ha canviat"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Definir nom uniforme"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vèrtex"
@@ -9616,6 +9695,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9676,19 +9759,6 @@ msgid "Runnable"
msgstr "Executable"
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Afegeix una Entrada"
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Eliminar el Pedaç '%s' de la llista?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Esborrar la configuració '%s' ?"
@@ -9785,19 +9855,6 @@ msgstr ""
"(separats per comes, ex:*.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Pedaços"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Crea un Pedaç"
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Pack File"
-msgstr "Fitxers"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Característiques"
@@ -12408,6 +12465,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
#, fuzzy
msgid ""
"Trying to build from a custom built template, but no version info for it "
@@ -12447,9 +12520,14 @@ msgstr ""
"compilació d'Android."
#: platform/android/export/export.cpp
-#, fuzzy
-msgid "No build apk generated at: "
-msgstr "No s'ha generat cap compilació apk a: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -13214,6 +13292,43 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Les constants no es poden modificar."
+#~ msgid "Move pivot"
+#~ msgstr "Moure pivot"
+
+#~ msgid "Move anchor"
+#~ msgstr "Moure àncora"
+
+#, fuzzy
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Modifica el elementCanvas"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Polígon -> UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->Polígon"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Afegeix una Entrada"
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Eliminar el Pedaç '%s' de la llista?"
+
+#~ msgid "Patches"
+#~ msgstr "Pedaços"
+
+#~ msgid "Make Patch"
+#~ msgstr "Crea un Pedaç"
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr "Fitxers"
+
+#, fuzzy
+#~ msgid "No build apk generated at: "
+#~ msgstr "No s'ha generat cap compilació apk a: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Importació i sistema de fitxers"
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index 2839053135..f5eab2658e 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -1612,6 +1612,37 @@ msgstr ""
"Povolte 'Import Etc' v nastaveních projektu, nebo vypněte 'Driver Fallback "
"Enabled'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Cílová platforma vyžaduje kompresi textur 'ETC' pro GLES2. Povolte 'Import "
+"Etc' v nastaveních projektu."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Cílová platforma vyžaduje kompresi textur 'ETC2' pro GLES3. Povolte 'Import "
+"Etc 2' v nastaveních projektu."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Cílová platforma vyžaduje kompresi textur 'ETC' pro použití GLES2 jako "
+"zálohy.\n"
+"Povolte 'Import Etc' v nastaveních projektu, nebo vypněte 'Driver Fallback "
+"Enabled'."
+
#: 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
@@ -2936,8 +2967,7 @@ msgstr "Spravovat exportní šablony..."
msgid "Help"
msgstr "Nápověda"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4355,7 +4385,6 @@ msgid "Add Node to BlendTree"
msgstr "Přidat uzel do BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Uzel přesunut"
@@ -5177,27 +5206,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Vytvořit vodorovná a svislá vodítka"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Přemístit pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate %d CanvasItems"
msgstr "Rotovat CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Přesunout kotvu"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "Rotovat CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Změnit velikost CanvasItem"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Přemístit CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "Škálovat CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Škálovat CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Přemístit CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Přemístit CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6489,14 +6541,24 @@ msgid "Move Points"
msgstr "Přesunout body"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: OtoÄit"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Táhnutí: OtoÄit"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Přesunout vše"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: Změnit měřítko"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: OtoÄit"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: Změnit měřítko"
@@ -6537,12 +6599,14 @@ msgid "Radius:"
msgstr "Poloměr:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Polygon->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Vytvořit polygon a UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->Polygon"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Přesunout polygon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6989,11 +7053,6 @@ msgstr "ZvýrazňovaÄ syntaxe"
#: 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 ""
@@ -7002,6 +7061,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Vytvořit body."
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8132,6 +8196,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8690,6 +8760,11 @@ msgstr "VisualShader"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Uzel přesunut"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "Duplikovat uzel/uzly"
@@ -8708,6 +8783,11 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Změna transformace"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vrchol"
@@ -9383,6 +9463,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9445,20 +9529,6 @@ msgid "Runnable"
msgstr "Spustitelný"
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Přidat vstup"
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Delete patch '%s' from list?"
-msgstr "Odstranit"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Odstranit předvolbu '%s'?"
@@ -9547,19 +9617,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Patches"
-msgstr "Shody:"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Soubour balíÄk"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Vlastnosti"
@@ -12070,6 +12127,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12094,7 +12167,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12812,6 +12891,36 @@ msgstr "Odlišnosti mohou být přiřazeny pouze ve vertex funkci."
msgid "Constants cannot be modified."
msgstr "Konstanty není možné upravovat."
+#~ msgid "Move pivot"
+#~ msgstr "Přemístit pivot"
+
+#~ msgid "Move anchor"
+#~ msgstr "Přesunout kotvu"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Změnit velikost CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Polygon->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->Polygon"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Přidat vstup"
+
+#, fuzzy
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Odstranit"
+
+#, fuzzy
+#~ msgid "Patches"
+#~ msgstr "Shody:"
+
+#~ msgid "Pack File"
+#~ msgstr "Soubour balíÄk"
+
#, fuzzy
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Souborový systém"
diff --git a/editor/translations/da.po b/editor/translations/da.po
index 95a5d793e0..86e6965237 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -1656,6 +1656,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -3042,8 +3062,7 @@ msgstr "Organiser Eksport Skabeloner"
msgid "Help"
msgstr "Hjælp"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4527,7 +4546,6 @@ msgid "Add Node to BlendTree"
msgstr "Tilføj Node(r) fra Tree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "Node Navn:"
@@ -5398,28 +5416,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Opret ny vertikal guide"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move pivot"
-msgstr "Fjern punkt"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6716,7 +6749,7 @@ msgid "Move Points"
msgstr "Fjern punkt"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6724,6 +6757,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6762,12 +6803,14 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr ""
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Opret Poly"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Konverter Til %s"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7236,11 +7279,6 @@ 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 ""
@@ -7249,6 +7287,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Slet points"
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8378,6 +8421,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8947,6 +8996,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Node Navn:"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "Dublikér nøgle(r)"
@@ -8965,6 +9019,11 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Skift Shader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9633,6 +9692,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9695,19 +9758,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Tilføj punkt"
-
-#: 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 ""
@@ -9797,19 +9847,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Patches"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Pack File"
-msgstr " Filer"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -12344,6 +12381,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12368,7 +12421,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -13080,6 +13139,21 @@ msgid "Constants cannot be modified."
msgstr "Konstanter kan ikke ændres."
#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "Fjern punkt"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Tilføj punkt"
+
+#~ msgid "Patches"
+#~ msgstr "Patches"
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr " Filer"
+
+#, fuzzy
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Fil System"
diff --git a/editor/translations/de.po b/editor/translations/de.po
index 082f22322b..ef5f8499ef 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -60,12 +60,13 @@
# Michal695 <michalek.jedrzejak@gmail.com>, 2020.
# Leon Marz <leon.marz@kabelmail.de>, 2020.
# Patric Wust <patric.wust@gmx.de>, 2020.
+# Jonathan Hassel <jonathan.hassel@icloud.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-22 03:23+0000\n"
-"Last-Translator: Patric Wust <patric.wust@gmx.de>\n"
+"PO-Revision-Date: 2020-10-07 14:20+0000\n"
+"Last-Translator: Günther Bohn <ciscouser@gmx.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
"Language: de\n"
@@ -958,9 +959,8 @@ msgid "Signals"
msgstr "Signale"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Kacheln filtern"
+msgstr "Signale filtern"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1655,6 +1655,37 @@ msgstr ""
"Bitte ‚Import Etc‘ in den Projekteinstellungen aktivieren oder ‚Driver "
"Fallback Enabled‘ ausschalten."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Die Zielplattform benötigt ‚ETC‘-Texturkompression für GLES2. Bitte in den "
+"Projekteinstellungen ‚Import Etc‘ aktivieren."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Die Zielplattform benötigt ‚ETC2‘-Texturkompression für GLES2. Bitte in den "
+"Projekteinstellungen aktivieren."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Die Zielplattform benötigt ‚ETC‘-Texturkompression für den Treiber-Fallback "
+"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
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
@@ -1697,9 +1728,8 @@ msgid "Node Dock"
msgstr "Node-Leiste"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "Dateisystem"
+msgstr "Dateisystemleiste"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2851,7 +2881,7 @@ msgstr "Zur Projektverwaltung zurückkehren"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
msgid "Debug"
-msgstr "Fehlersuche (debuggen)"
+msgstr "Debuggen"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
@@ -2866,14 +2896,18 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Wenn diese Option aktiviert ist, wird Ein-Klick-Aufspielen die Anwendung "
+"dazu veranlassen, sich mit der IP-Adresse dieses Rechners zum Debuggen des "
+"Projekts zu verbinden.\n"
+"Diese Option ist für Fern-Debugging gedacht (typischerweise mit einem "
+"Mobiltelefon).\n"
+"Sie wird nicht benötigt, um den lokalen GDScript-Debugger zu verwenden."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "Kleine Programmdatei über ein Netzwerkdateisystem"
+msgstr "Kleines Aufspielen über Netzwerkdateisystem"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2882,74 +2916,68 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"Wenn diese Option aktiviert ist, wird das Exportieren bzw. Starten nur eine "
-"kleine Programmdatei erzeugen.\n"
-"Die Projektdaten werden vom Editor über das Netzwerk bereitgestellt.\n"
-"Bei Android wird hierbei das USB Kabel wegen der schnelleren "
-"Ãœbertragungsgeschwindigkeit benutzt. Diese Option beschleunigt das Testen "
-"von Spielen mit großen Projektdaten."
+"Wenn diese Option aktiviert ist, wird Ein-Klick-Aufspielen nur eine "
+"ausführbare Datei ohne Projektdaten exportieren.\n"
+"Das Dateisystem wird dann vom Editor über das Netzwerk bereitgestellt.\n"
+"Bei Android wird hierbei USB zwecks höherer Übertragungsgeschwindigkeit "
+"benutzt. Diese Option verkürzt das Testen von Projekten mit großen "
+"Datenmengen."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "Collision-Shapes sichtbar"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"Collision-Shapes und Raycast-Nodes (für 2D und 3D) werden im laufenden Spiel "
-"angezeigt, falls diese Option aktiviert ist."
+"Collision Shapes und Raycast-Nodes (für 2D und 3D) werden im laufenden "
+"Projekt angezeigt, wenn diese Option aktiviert ist."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "Navigation sichtbar"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"Navigations- Meshes und Polygone werden im laufenden Spiel sichtbar sein "
-"wenn diese Option gewählt ist."
+"Navigation Meshes und Polygone werden im laufenden Projekt angezeigt, wenn "
+"diese Option gewählt ist."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Szenenänderungen synchronisieren"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Wenn diese Option gewählt ist, werden jegliche Änderungen der Szene im "
-"Editor im laufenden Spiel dargestellt.\n"
+"Jegliche Änderungen der Szene im Editor werden im laufenden Spiel "
+"dargestellt, wenn diese Option aktiviert ist.\n"
"Sollte dies beim Abspielen auf externen Geräten genutzt werden, ist es am "
-"effizientesten das Netzwerk-Dateisystem zu nutzen."
+"effizientesten, das Netzwerk-Dateisystem zu aktivieren."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
msgstr "Skriptänderungen synchronisieren"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Wenn diese Option gewählt ist, werden erneut gespeicherte Skripte während "
-"des laufenden Spiels neu geladen.\n"
+"Wenn diese Option aktiviert ist, werden beim Abspeichern Skripte im "
+"laufenden Projekt neu geladen.\n"
"Sollte dies beim Abspielen auf externen Geräten genutzt werden, ist es am "
-"effizientesten das Netzwerk-Dateisystem zu nutzen."
+"effizientesten, das Netzwerk-Dateisystem zu aktivieren."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -3004,8 +3032,7 @@ msgstr "Exportvorlagen verwalten…"
msgid "Help"
msgstr "Hilfe"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3428,14 +3455,13 @@ msgid "Add Key/Value Pair"
msgstr "Schlüssel-Wert-Paar hinzufügen"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
-"Keine Soforteinsatz-Exportvorlage für diese Plattform gefunden.\n"
-"Im Exportmenü kann eine Vorlage als Soforteinsatz markiert werden."
+"Keine ausführbare Exportvorlage für diese Plattform gefunden.\n"
+"Im Exportmenü kann eine Vorlage als ausführbar erstellt oder markiert werden."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -4441,7 +4467,6 @@ msgid "Add Node to BlendTree"
msgstr "Node zu BlendTree hinzufügen"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Node verschoben"
@@ -5273,27 +5298,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Neue horizontale und vertikale Hilfslinien erstellen"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Pivotpunkt bewegen"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "CanvasItem rotieren"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "CanvasItem rotieren"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Anker verschieben"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "CanvasItem verschieben"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "CanvasItem in Größe anpassen"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "CanvasItem skalieren"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "CanvasItem skalieren"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "CanvasItem verschieben"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "CanvasItem verschieben"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5681,7 +5729,7 @@ msgstr "Auswahl einrahmen"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Preview Canvas Scale"
-msgstr "Leinwandskalierung vorschauen"
+msgstr "Vorschau Canvas-Skalierung"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Translation mask for inserting keys."
@@ -6261,7 +6309,7 @@ msgstr "Zufälliges Kippen:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Scale:"
-msgstr "Zufällige Skalieren:"
+msgstr "Zufällige Skalierung:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate"
@@ -6583,14 +6631,24 @@ msgid "Move Points"
msgstr "Punkte Verschieben"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Strg: Rotieren"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Ziehen = Rotieren"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Alle verschieben"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Strg: Skalieren"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Strg: Rotieren"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Strg: Skalieren"
@@ -6631,12 +6689,14 @@ msgid "Radius:"
msgstr "Radius:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Polygon→UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Polygon und UV erstellen"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV→Polygon"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Zu Polygon2D umwandeln"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7085,11 +7145,6 @@ msgstr "Syntaxhervorhebung"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Springe zu"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Lesezeichen"
@@ -7097,6 +7152,11 @@ msgstr "Lesezeichen"
msgid "Breakpoints"
msgstr "Haltepunkte"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Springe zu"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7871,9 +7931,8 @@ msgid "New Animation"
msgstr "Neue Animation"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "Geschwindigkeit (FPS):"
+msgstr "Geschwindigkeit:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8192,6 +8251,15 @@ msgid "Paint Tile"
msgstr "Kachel zeichnen"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Umsch+RMT: Linie zeichnen\n"
+"Umsch+Strg+RMT: Rechteck bemalen"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8720,6 +8788,11 @@ msgid "Add Node to Visual Shader"
msgstr "Visual Shader-Node hinzufügen"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Node verschoben"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Nodes duplizieren"
@@ -8737,6 +8810,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Visual-Shader-Eingabetyp geändert"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Uniform-Name festlegen"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vertex"
@@ -9452,6 +9530,10 @@ msgstr ""
"Konstanten."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(nur für Fragment-/Light-Modus) Skalare Ableitungsfunktion."
@@ -9524,18 +9606,6 @@ msgid "Runnable"
msgstr "Soforteinsatz"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Ersten Export hinzufügen…"
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Vorherige Patches hinzufügen…"
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Patch ‚%s‘ von Liste löschen?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Vorlage ‚%s‘ löschen?"
@@ -9634,20 +9704,8 @@ msgstr ""
"(durch Kommata getrennt, z.B.: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Patche"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Erstelle Patch"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Pack-Datei"
-
-#: editor/project_export.cpp
msgid "Features"
-msgstr "Eigenschaften"
+msgstr "Eigenschaften und Merkmale"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
@@ -10451,19 +10509,16 @@ msgid "Batch Rename"
msgstr "Stapelweise Umbenennung"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "Ersetzen: "
+msgstr "Ersetzen:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "Prefix"
+msgstr "Präfix:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "Suffix"
+msgstr "Suffix:"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10510,10 +10565,9 @@ msgid "Per-level Counter"
msgstr "Pro-Ebene-Zähler"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
-"Falls gesetzt startet dieser Zähler für jede Gruppe aus Unterobjekten neu"
+"Falls gesetzt, startet der Zähler für jede Gruppe aus Unterobjekten neu."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10572,9 +10626,8 @@ msgid "Reset"
msgstr "Zurücksetzen"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "Fehler in regulärem Ausdruck"
+msgstr "Fehler in regulärem Ausdruck:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -10746,11 +10799,11 @@ msgstr "Erzeuge Wurzel-Node:"
#: editor/scene_tree_dock.cpp
msgid "2D Scene"
-msgstr "2D Szene"
+msgstr "2D-Szene"
#: editor/scene_tree_dock.cpp
msgid "3D Scene"
-msgstr "3D Szene"
+msgstr "3D-Szene"
#: editor/scene_tree_dock.cpp
msgid "User Interface"
@@ -10758,7 +10811,7 @@ msgstr "Benutzerschnittstelle"
#: editor/scene_tree_dock.cpp
msgid "Other Node"
-msgstr "Anderes Node"
+msgstr "Anderer Node"
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes from a foreign scene!"
@@ -12178,6 +12231,22 @@ msgstr ""
"gesetzt wurde."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12213,8 +12282,14 @@ msgstr ""
"godotengine.org."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Es wurde kein Build-APK generiert in: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12532,8 +12607,8 @@ msgid ""
"VisibilityEnabler2D works best when used with the edited scene root directly "
"as parent."
msgstr ""
-"VisibilityEnable2D funktioniert am besten, wenn die Wurzel der bearbeiteten "
-"Szene das Elternobjekt ist."
+"VisibilityEnabler2D funktioniert am besten, wenn es hierarchisch direkt "
+"unter dem Wurzelobjekt der bearbeiteten Szene liegt."
#: scene/3d/arvr_nodes.cpp
msgid "ARVRCamera must have an ARVROrigin node as its parent."
@@ -12676,7 +12751,7 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "InterpolatedCamera ist veraltet und wird in Godot 4.0 entfernt werden."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12792,8 +12867,8 @@ msgid ""
"WorldEnvironment requires its \"Environment\" property to contain an "
"Environment to have a visible effect."
msgstr ""
-"WorldEnvironment benötigt dass die Eigenschaft „Environment“ auf ein "
-"Environment mit einem sichtbaren Effekt verweist."
+"WorldEnvironment erfordert eine Environment-Ressource in seinem "
+"„Environment“-Feld, um zu funktionieren."
#: scene/3d/world_environment.cpp
msgid ""
@@ -12807,8 +12882,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 ""
-"Dieses WorldEnvironment wird ignoriert. Entweder füge eine Kamera (für 3D-"
-"Szenen) hinzu oder setze den Hintergrund-Modus des Environments nach Canvas "
+"WorldEnvironment wird momentan ignoriert. Wahlweise Kamera (für 3D-Szenen) "
+"einfügen oder Hintergrundmodus der Environment-Instanz umstellen auf Canvas "
"(für 2D-Szenen)."
#: scene/animation/animation_blend_tree.cpp
@@ -13000,6 +13075,42 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden."
msgid "Constants cannot be modified."
msgstr "Konstanten können nicht verändert werden."
+#~ msgid "Move pivot"
+#~ msgstr "Pivotpunkt bewegen"
+
+#~ msgid "Move anchor"
+#~ msgstr "Anker verschieben"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "CanvasItem in Größe anpassen"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Polygon→UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV→Polygon"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Ersten Export hinzufügen…"
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Vorherige Patches hinzufügen…"
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Patch ‚%s‘ von Liste löschen?"
+
+#~ msgid "Patches"
+#~ msgstr "Patche"
+
+#~ msgid "Make Patch"
+#~ msgstr "Erstelle Patch"
+
+#~ msgid "Pack File"
+#~ msgstr "Pack-Datei"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Es wurde kein Build-APK generiert in: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Dateisystem- und Import-Leiste"
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index 743e77d7dd..f32995d2e6 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -1543,6 +1543,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2794,8 +2814,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4176,7 +4195,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -4989,27 +5007,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6248,7 +6282,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6256,6 +6290,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6294,11 +6336,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6740,16 +6782,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7827,6 +7869,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8328,6 +8376,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8345,6 +8397,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -8999,6 +9055,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9059,18 +9119,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9158,18 +9206,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11558,6 +11594,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11582,7 +11634,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/el.po b/editor/translations/el.po
index 2571598414..b006707169 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -9,12 +9,13 @@
# Overloaded @ Orama Interactive http://orama-interactive.com/ <manoschool@yahoo.gr>, 2020.
# pandektis <pandektis@gmail.com>, 2020.
# KostasMSC <kargyris@athtech.gr>, 2020.
+# lawfulRobot <czavantias@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-08-11 14:04+0000\n"
-"Last-Translator: George Tsiamasiotis <gtsiam@windowslive.com>\n"
+"PO-Revision-Date: 2020-09-30 12:32+0000\n"
+"Last-Translator: lawfulRobot <czavantias@gmail.com>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/"
"el/>\n"
"Language: el\n"
@@ -22,7 +23,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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -909,9 +910,8 @@ msgid "Signals"
msgstr "Σήματα"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "ΦιλτÏάÏισμα πλακιδίων"
+msgstr "ΦιλτÏάÏισμα σημάτων"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1156,12 +1156,10 @@ msgid "Gold Sponsors"
msgstr "ΧÏυσοί ΧοÏυγοί"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Silver Sponsors"
msgstr "ΑÏγυÏοί ΔωÏητές"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Bronze Sponsors"
msgstr "Χάλκινοι ΔωÏητές"
@@ -1606,6 +1604,37 @@ msgstr ""
"ΕνεÏγοποιήστε το «Import Etc» στις Ρυθμίσεις ΈÏγου, ή απενεÏγοποιήστε το "
"«Driver Fallback Enabled»."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Η πλατφόÏμα Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï Î±Ï€Î±Î¹Ï„ÎµÎ¯ «ETC» συμπίεση υφών για το GLES2. "
+"ΕνεÏγοποιήστε το «Import Etc» στις Ρυθμίσεις ΈÏγου."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Η πλατφόÏμα Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï Î±Ï€Î±Î¹Ï„ÎµÎ¯ «ETC2» συμπίεση υφών για το GLES3. "
+"ΕνεÏγοποιήστε το «Import Etc 2» στις Ρυθμίσεις ΈÏγου."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Η πλατφόÏμα Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï Î±Ï€Î±Î¹Ï„ÎµÎ¯ «ETC» συμπίεση υφών για εναλλαγή Î¿Î´Î·Î³Î¿Ï ÏƒÏ„Î¿ "
+"GLES2.\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
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
@@ -1648,7 +1677,6 @@ msgid "Node Dock"
msgstr "ΠλατφόÏμα Κόμβου"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
msgstr "ΣÏστημα αÏχείων"
@@ -2813,14 +2841,19 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Όταν αυτή η επιλογή είναι ενεÏγοποιημένη, χÏησιμοποιώντας την ανάπτυξη με "
+"ένα κλικ το εκτελέσιμο αÏχείο θα επειχηÏησει να συνδεθεί στην IP Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… "
+"υπολογιστή για να μποÏέσει το Ï„ÏεχοÏμενο έÏγο να αποσφαλματωθεί.\n"
+"Αυτή η επιλογή Ï€ÏοοÏίζεται να χÏησημοποιηθεί για απομακÏισμένη αποσφαλμάτωση "
+"(συνήθως με μια φοÏητή συσκευή).\n"
+"Δεν χÏειάζεται να την ενεÏγοποιήσετε για να χÏησημοποιήσετε τον τοπικό "
+"αποσφαλματωτή GDScript."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
msgstr "ΜικÏή ανάπτυξη με δικτυωμένο σÏστημα αÏχείων"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2831,17 +2864,16 @@ msgid ""
msgstr ""
"Όταν ενεÏγοποιείται αυτή η επιλογή, η εξαγωγή ή η ανάπτυξη θα παÏάξουν ένα "
"ελαχιστοποιημένο εκτελέσιμο.\n"
-"Το σÏστημα αÏχείων θα διατεθεί από τον επεξεÏγαστή μέσω του διαδικτÏου.\n"
+"Το σÏστημα αÏχείων θα διατεθεί από τον επεξεÏγαστή μέσω του δικτÏου.\n"
"Στο Android, η ανάπτυξη θα χÏησιμοποιήσει το καλώδιο USB για μεγαλÏτεÏη "
-"απόδοση. Αυτή η επιλογή επιταχÏνει τις δοκιμές για παιχνίδια με μεγάλο "
-"αποτÏπωμα."
+"απόδοση. Αυτή η επιλογή επιταχÏνει τις δοκιμές για παιχνίδια με μεγάλους "
+"πόÏους."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "ΟÏατά σχήματα σÏγκÏουσης"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
@@ -2854,7 +2886,6 @@ msgid "Visible Navigation"
msgstr "ΟÏατή πλοήγηση"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
@@ -2863,12 +2894,10 @@ msgstr ""
"επιλογή είναι ενεÏγοποιημένη."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
-msgstr "ΣυγχÏονισμός αλλαγών στη σκηνή"
+msgstr "ΣυγχÏονισμός αλλαγών της σκηνής"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
@@ -2881,19 +2910,17 @@ msgstr ""
"σÏστημα αÏχείων."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
-msgstr "ΣυγχÏονισμός αλλαγών στις δεσμές ενεÏγειών"
+msgstr "ΣυγχÏονισμός αλλαγών στις δέσμες ενεÏγειών"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Η ενεÏγοποίηση της επιλογής αυτής θα συγχÏονίσει κάθε δέσμη ενεÏγειών που "
+"Η ενεÏγοποίηση αυτής της επιλογής θα συγχÏονίσει κάθε δέσμη ενεÏγειών που "
"αποθηκεÏεται με το παιχνίδι που εκτελείται.\n"
"Σε απομακÏυσμένες συσκευές, η επιλογή είναι ποιο αποδοτική με δικτυωμένο "
"σÏστημα αÏχείων."
@@ -2952,8 +2979,7 @@ msgstr "ΔιαχείÏιση ΠÏοτÏπων Εξαγωγής..."
msgid "Help"
msgstr "Βοήθεια"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3377,7 +3403,6 @@ msgid "Add Key/Value Pair"
msgstr "ΠÏοσθήκη ζεÏγους κλειδιοÏ/τιμής"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
@@ -4388,7 +4413,6 @@ msgid "Add Node to BlendTree"
msgstr "ΠÏοσθήκη Κόμβους στο BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Μετακίνηση Κόμβου"
@@ -5224,27 +5248,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "ΔημιουÏγία ΟÏιζοντίων και Καθέτων Οδηγών"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Μετακίνηση πηγαίου σημείου"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "ΠεÏιστÏοφή CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "ΠεÏιστÏοφή CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Μετακίνηση άγκυÏας"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Μετακίνηση CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Αλλαγή μεγέθους CanvasItem"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "Κλιμάκωση CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Κλιμάκωση CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Μετακίνηση CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Μετακίνηση CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6534,14 +6581,24 @@ msgid "Move Points"
msgstr "Μετακίνηση Σημείων"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: ΠεÏιστÏοφή"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "ΣÏÏσιμο: ΠεÏιστÏοφή"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Μετακίνηση όλων"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift + Ctrl: Κλιμάκωση"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: ΠεÏιστÏοφή"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift + Ctrl: Κλιμάκωση"
@@ -6584,12 +6641,14 @@ msgid "Radius:"
msgstr "Ακτίνα:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "ΠολÏγωνο -> UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "ΔημιουÏγία Πολυγώνου & UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV -> ΠολÏγωνο"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Μετακίνηση σε Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7042,11 +7101,6 @@ 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 "Αγαπημένα"
@@ -7054,6 +7108,11 @@ msgstr "Αγαπημένα"
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7825,9 +7884,8 @@ msgid "New Animation"
msgstr "Îέα Κίνηση"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "ΤαχÏτητα (FPS):"
+msgstr "ΤαχÏτητα:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8147,6 +8205,15 @@ msgid "Paint Tile"
msgstr "Βάψιμο πλακιδίου"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+ΑÏιστεÏÏŒ Κλικ ΠοντικιοÏ: Σχεδίαση ΓÏαμμής\n"
+"Shift+Ctrl+ΑÏιστεÏÏŒ Κλικ ΠοντικιοÏ: ΖωγÏαφιά ΟÏθογωνίου ΠαÏαλληλογÏάμμου"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8673,6 +8740,11 @@ msgid "Add Node to Visual Shader"
msgstr "ΠÏοσθήκη Κόμβου στο Οπτικό ΠÏόγÏαμμα Σκίασης"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Μετακίνηση Κόμβου"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "ΑναπαÏαγωγή Κόμβων"
@@ -8690,6 +8762,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Αλλαγή ΤÏπου Εισόδου ÎŸÏ€Ï„Î¹ÎºÎ¿Ï Î ÏογÏάμματος Σκίασης"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Αλλαγή Ονόματος Ενιαίας Μεταβλητής"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "ΚοÏυφή"
@@ -9401,6 +9478,10 @@ msgstr ""
"τις σταθεÏές."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Μόνο σε σκίαση Τμήματος/Φωτός) Βαθμωτή παÏάγωγη συνάÏτηση."
@@ -9473,18 +9554,6 @@ msgid "Runnable"
msgstr "Εκτελέσιμο"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "ΠÏοσθέστε αÏχική εξαγωγή..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "ΠÏοσθέστε Ï€ÏοηγοÏμενα λογισμικά επιδιόÏθωσης..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "ΔιαγÏαφή ενημέÏωσης '%s' από την λίστα;"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "ΔιαγÏαφή διαμόÏφωσης '%s';"
@@ -9585,18 +9654,6 @@ msgstr ""
"(χωÏισμένα με κόμμα Ï€.χ. *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "ΕνημεÏώσεις"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "ΔημιουÏγία ενημέÏωσης"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "ΑÏχείο Pack"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Δυνατότητες"
@@ -10398,19 +10455,16 @@ msgid "Batch Rename"
msgstr "Ομαδική Μετονομασία"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "Αντικατάσταση: "
+msgstr "Αντικατάσταση:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "ΠÏόθεμα"
+msgstr "ΠÏόθεμα:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "Επίθεμα"
+msgstr "Επίθεμα:"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10457,9 +10511,8 @@ msgid "Per-level Counter"
msgstr "ΜετÏητής Ανά Επίπεδο"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "Εάν ο μετÏητής επανεκκινείται για κάθε ομάδα παιδικών κόμβων"
+msgstr "Εάν οÏιστεί, ο μετÏητής επανεκκινείται για κάθε ομάδα παιδικών κόμβων."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10518,9 +10571,8 @@ msgid "Reset"
msgstr "ΕπαναφοÏά"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "Σφάλμα Κανονικής ΕκφÏάσεως"
+msgstr "Σφάλμα Κανονικής ΕκφÏάσεως:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -12136,6 +12188,22 @@ msgstr ""
"Mobile VR»."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12170,8 +12238,14 @@ msgstr ""
"δόμησης Android."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Δεν παÏάχθηκε δόμησης apk στο: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12628,7 +12702,7 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "Η InterpolatedCamera έχει καταÏγηθεί και θα αφαιÏεθεί στο Godot 4.0."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12942,6 +13016,42 @@ msgstr "Τα «varying» μποÏοÏν να ανατεθοÏν μόνο στηÎ
msgid "Constants cannot be modified."
msgstr "Οι σταθεÏές δεν μποÏοÏν να Ï„ÏοποποιηθοÏν."
+#~ msgid "Move pivot"
+#~ msgstr "Μετακίνηση πηγαίου σημείου"
+
+#~ msgid "Move anchor"
+#~ msgstr "Μετακίνηση άγκυÏας"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Αλλαγή μεγέθους CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "ΠολÏγωνο -> UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV -> ΠολÏγωνο"
+
+#~ msgid "Add initial export..."
+#~ msgstr "ΠÏοσθέστε αÏχική εξαγωγή..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "ΠÏοσθέστε Ï€ÏοηγοÏμενα λογισμικά επιδιόÏθωσης..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "ΔιαγÏαφή ενημέÏωσης '%s' από την λίστα;"
+
+#~ msgid "Patches"
+#~ msgstr "ΕνημεÏώσεις"
+
+#~ msgid "Make Patch"
+#~ msgstr "ΔημιουÏγία ενημέÏωσης"
+
+#~ msgid "Pack File"
+#~ msgstr "ΑÏχείο Pack"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Δεν παÏάχθηκε δόμησης apk στο: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "ΠλατφόÏμες Συστήματος ΑÏχείων και Εισαγωγής"
diff --git a/editor/translations/eo.po b/editor/translations/eo.po
index 68dbd4f436..3e99fade73 100644
--- a/editor/translations/eo.po
+++ b/editor/translations/eo.po
@@ -1587,6 +1587,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2896,8 +2916,7 @@ msgstr "Mastrumi eksportaj Åablonoj..."
msgid "Help"
msgstr "Helpo"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4292,7 +4311,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5113,27 +5131,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6379,7 +6413,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6387,6 +6421,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6425,11 +6467,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6873,16 +6915,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7961,6 +8003,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8470,6 +8518,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8487,6 +8539,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9141,6 +9197,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9201,18 +9261,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9300,19 +9348,6 @@ msgid ""
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 "Malfermi dosieron"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11739,6 +11774,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11763,7 +11814,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12394,6 +12451,10 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstantoj ne povas esti modifitaj."
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr "Malfermi dosieron"
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Dosiersistema kaj enporta dokoj"
diff --git a/editor/translations/es.po b/editor/translations/es.po
index fa8391cf89..ceaf9b9c7b 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -51,12 +51,13 @@
# paco <pacosoftfree@protonmail.com>, 2020.
# Jonatan <arandajonatan94@tuta.io>, 2020.
# ACM <albertocm@tuta.io>, 2020.
+# José Manuel Jurado Bujalance <darkbird@vivaldi.net>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-12 00:46+0000\n"
-"Last-Translator: ACM <albertocm@tuta.io>\n"
+"PO-Revision-Date: 2020-10-15 17:26+0000\n"
+"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/"
"godot/es/>\n"
"Language: es\n"
@@ -954,9 +955,8 @@ msgid "Signals"
msgstr "Señales"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Filtrar tiles"
+msgstr "Filtrar señales"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1650,6 +1650,37 @@ msgstr ""
"Activa 'Import Etc' en Ajustes del Proyecto, o desactiva 'Driver Fallback "
"Enabled'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"La plataforma de destino requiere compresión de texturas 'ETC' para GLES2. "
+"Activa 'Import Etc' en Ajustes del Proyecto."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"La plataforma de destino requiere compresión de texturas 'ETC2' para GLES3. "
+"Activa 'Import Etc 2' en Ajustes del Proyecto."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"La plataforma de destino requiere compresión de texturas 'ETC' para usar "
+"GLES2 como controlador de respaldo.\n"
+"Activa 'Import Etc' en Ajustes del Proyecto, o desactiva 'Driver Fallback "
+"Enabled'."
+
#: 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
@@ -1692,7 +1723,6 @@ msgid "Node Dock"
msgstr "Nodos"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
msgstr "Sistema de Archivos"
@@ -2859,14 +2889,18 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Cuando esta opción está activada, al utilizar el despliegue con un clic, el "
+"ejecutable intentará conectarse a la IP de este equipo para que el proyecto "
+"en ejecución pueda ser depurado.\n"
+"Esta opción está pensada para ser usada en la depuración remota "
+"( normalmente con un dispositivo móvil).\n"
+"No es necesario habilitarla para usar el depurador GDScript localmente."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "Exportación Mini con Recursos en Red"
+msgstr "Despliegue Reducido con el Sistema de Archivos en Red"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2875,73 +2909,68 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"Cuando esta opción está activa, al exportar o publicar se creará un "
-"ejecutable mínimo.\n"
-"El sistema de archivos del proyecto se pasará desde el editor por la red.\n"
-"En Android, publicar utilizará el cable USB para un mejor rendimiento. Esta "
-"opción acelera los ciclos de prueba de juegos grandes."
+"Cuando esta opción está activada, al usar el despliegue con un clic para "
+"Android sólo se exportará un ejecutable sin los datos del proyecto.\n"
+"El sistema de archivos será proporcionado desde el proyecto por el editor a "
+"través de la red.\n"
+"En Android, el despliegue usará el cable USB para un rendimiento más rápido. "
+"Esta opción acelera las pruebas de los proyectos con recursos grandes."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "Ver Formas de Colisión"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"Las formas de colisión y los nodos raycast (para 2D y 3D) serán visibles "
-"durante la ejecución del juego si esta opción está activada."
+"Cuando esta opción está activada, las formas de colisión y los nodos de "
+"raycast (para 2D y 3D) serán visibles en el proyecto en ejecución."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "Navegación Visible"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"Las mallas de navegación y los polígonos serán visibles durante la ejecución "
-"del juego si esta opción está activada."
+"Cuando esta opción está activada, las mallas de navegación y los polígonos "
+"serán visibles en el proyecto en ejecución."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
-msgstr "Sincronizar cambios de escena"
+msgstr "Sincronizar Cambios de Escena"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Cuando esta opción este activada, cualquier cambio hecho a la escena en el "
-"editor sera replicado en el juego en ejecución.\n"
-"Cuando se usa remotamente en un dispositivo, esto es mas eficiente con un "
-"sistema de archivos remoto."
+"Cuando esta opción está activada, cualquier cambio hecho a la escena en el "
+"editor será replicado en el proyecto en ejecución.\n"
+"Cuando se utiliza de forma remota en un dispositivo, esto es más eficiente "
+"cuando la opción de sistema de archivos en red está activada."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
-msgstr "Sincronizar Cambios en Scripts"
+msgstr "Sincronizar Cambios de Scripts"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Cuando esta opción esté activa, cualquier script que se guarde se volverá a "
-"cargar en el juego en ejecución.\n"
-"Cuando se use remotamente en un dispositivo, esto es mas eficiente con un "
-"sistema de archivos de red."
+"Cuando esta opción está activada, cualquier script que se guarde se "
+"recargará en el proyecto en ejecución.\n"
+"Cuando se utiliza de forma remota en un dispositivo, esto es más eficiente "
+"cuando la opción de sistema de archivos en red está activada."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -2997,8 +3026,7 @@ msgstr "Administrar Plantillas de Exportación..."
msgid "Help"
msgstr "Ayuda"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3423,7 +3451,6 @@ msgid "Add Key/Value Pair"
msgstr "Agregar Par Clave/Valor"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
@@ -3431,7 +3458,8 @@ msgid ""
msgstr ""
"No se ha encontrado ningún preset de exportación ejecutable para esta "
"plataforma.\n"
-"Por favor, añade un preset ejecutable en el menú de exportación."
+"Por favor, añade un preset ejecutable en el menú de exportación o define un "
+"preset existente como ejecutable."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -4434,7 +4462,6 @@ msgid "Add Node to BlendTree"
msgstr "Añadir Nodo a BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Nodo Movido"
@@ -5269,27 +5296,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Crear Guías Horizontales y Verticales"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Mover pivote"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "Rotar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "Rotar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Mover ancla"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Mover CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Redimensionar CanvasItem"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "Escalar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Escalar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Mover CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Mover CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6579,14 +6629,24 @@ msgid "Move Points"
msgstr "Mover Puntos"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Rotar"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Arrastrar: Rotar"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Mover todos"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift + Ctrl: Escalar"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Rotar"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift + Ctrl: Escalar"
@@ -6629,12 +6689,14 @@ msgid "Radius:"
msgstr "Radio:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Polígono->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Crear Polígono y UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->Polígono"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Convertir a Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7082,11 +7144,6 @@ msgstr "Resaltador de Sintaxis"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Ir A"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Marcadores"
@@ -7094,6 +7151,11 @@ msgstr "Marcadores"
msgid "Breakpoints"
msgstr "Breakpoints"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Ir A"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7862,9 +7924,8 @@ msgid "New Animation"
msgstr "Nueva Animación"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "Velocidad (FPS):"
+msgstr "Velocidad:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8182,6 +8243,15 @@ msgid "Paint Tile"
msgstr "Dibujar Tile"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift + Clic izq: Dibujar línea\n"
+"Shift + Ctrl + Clic izq: Pintar Rectángulo"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8707,6 +8777,11 @@ msgid "Add Node to Visual Shader"
msgstr "Añadir Nodo al Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Nodo Movido"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Duplicar Nodos"
@@ -8724,6 +8799,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Cambiar Tipo de Entrada del Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Establecer Nombre Uniforme"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vértice"
@@ -8757,11 +8837,11 @@ msgstr "Función Grayscale."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts HSV vector to RGB equivalent."
-msgstr "Convertir vector HSV a equivalente RGB."
+msgstr "Convierte el vector HSV a su equivalente RGB."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts RGB vector to HSV equivalent."
-msgstr "Convertir vector RGB a equivalente HSV."
+msgstr "Convierte el vector RGB en el equivalente del HSV."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Sepia function."
@@ -8996,7 +9076,7 @@ msgstr "Devuelve el arco-tangente del parámetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-tangent of the parameters."
-msgstr "Devuelve el arco-tangente de los parámetros."
+msgstr "Devuelve la arcotangente de los parámetros."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic tangent of the parameter."
@@ -9005,7 +9085,7 @@ msgstr "Devuelve la tangente hiperbólica inversa del parámetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Finds the nearest integer that is greater than or equal to the parameter."
-msgstr "Encuentra el entero más cercano mayor o igual que el parámetro."
+msgstr "Encuentra el entero más cercano que es mayor o igual al parámetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Constrains a value to lie between two further values."
@@ -9025,19 +9105,19 @@ msgstr "Convierte una cantidad en radianes a grados."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-e Exponential."
-msgstr "Exponencial con Base-e."
+msgstr "Exponencial con base e."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-2 Exponential."
-msgstr "Exponencial con base 2."
+msgstr "Exponencial en base 2."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest integer less than or equal to the parameter."
-msgstr "Encuentra el número entero más cercano menor o igual que el parámetro."
+msgstr "Encuentra el entero más cercano menor o igual al parámetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Computes the fractional part of the argument."
-msgstr "Calcula la parte fraccional del argumento."
+msgstr "Calcula la parte fraccionaria del argumento."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse of the square root of the parameter."
@@ -9049,7 +9129,7 @@ msgstr "Logaritmo natural."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-2 logarithm."
-msgstr "Logaritmo Base-2."
+msgstr "Logarítmo en base 2."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the greater of two values."
@@ -9079,7 +9159,7 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in degrees to radians."
-msgstr "Convierte una cantidad de grados a radianes."
+msgstr "Convierte un valor de grados a radianes."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 / scalar"
@@ -9091,7 +9171,7 @@ msgstr "Encuentra el entero más cercano al parámetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest even integer to the parameter."
-msgstr "Encuentra el entero más cercano al parámetro."
+msgstr "Encuentra el entero par más cercano al parámetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Clamps the value between 0.0 and 1.0."
@@ -9273,7 +9353,7 @@ msgstr "Descompone vector a tres escalares."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the cross product of two vectors."
-msgstr "Calcula el producto cruzado de dos vectores."
+msgstr "Calcula el producto vectorial de dos vectores."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the distance between two points."
@@ -9441,6 +9521,10 @@ msgstr ""
"declarar variaciones, uniformes y constantes."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Sólo modo Fragmento/Luz) Función de derivación escalar."
@@ -9511,18 +9595,6 @@ msgid "Runnable"
msgstr "Ejecutable"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Agregar puerto de entrada..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Agregar parches anteriores..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "¿Eliminar patch '%s' de la lista?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "¿Eliminar preajuste '%s'?"
@@ -9574,9 +9646,9 @@ 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 ""
-"Si se selecciona, la plantilla estará disponible para su uso en un "
-"despliegue con un clic.\n"
-"Sólo se puede marcar como ejecutable una plantilla por plataforma."
+"Si está activado, el preset estará disponible para su uso en el despliegue "
+"con un clic.\n"
+"Sólo se puede marcar un preset por plataforma como ejecutable."
#: editor/project_export.cpp
msgid "Export Path"
@@ -9623,18 +9695,6 @@ msgstr ""
"(separados por comas, por ejemplo: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Parches"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Crear Patch"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Paquete de Archivos"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Características"
@@ -10438,19 +10498,16 @@ msgid "Batch Rename"
msgstr "Renombrar por lote"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "Reemplazar: "
+msgstr "Reemplazar:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "Prefijo"
+msgstr "Prefijo:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "Sufijo"
+msgstr "Sufijo:"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10497,9 +10554,9 @@ msgid "Per-level Counter"
msgstr "Contador Por Nivel"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "Si esta activo el contador reinicia por cada grupo de nodos hijos"
+msgstr ""
+"Si está activado, el contador se reinicia por cada grupo de nodos hijos."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10558,9 +10615,8 @@ msgid "Reset"
msgstr "Resetear"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "Error de Expresión Regular"
+msgstr "Error de Expresión Regular:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -12167,6 +12223,22 @@ msgstr ""
"\"."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12202,8 +12274,14 @@ msgstr ""
"de compilación de Android."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "No se ha generado ninguna compilación apk en: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12669,7 +12747,7 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "InterpolatedCamera ha sido desaprobado y será eliminado en Godot 4.0."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12984,6 +13062,42 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
msgid "Constants cannot be modified."
msgstr "Las constantes no pueden modificarse."
+#~ msgid "Move pivot"
+#~ msgstr "Mover pivote"
+
+#~ msgid "Move anchor"
+#~ msgstr "Mover ancla"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Redimensionar CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Polígono->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->Polígono"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Agregar puerto de entrada..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Agregar parches anteriores..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "¿Eliminar patch '%s' de la lista?"
+
+#~ msgid "Patches"
+#~ msgstr "Parches"
+
+#~ msgid "Make Patch"
+#~ msgstr "Crear Patch"
+
+#~ msgid "Pack File"
+#~ msgstr "Paquete de Archivos"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "No se ha generado ninguna compilación apk en: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Sistema de Archivo e Importación"
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index 6171c0e27d..899e5e8557 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -1611,6 +1611,37 @@ msgstr ""
"Activá 'Importar Etc' en Ajustes del Proyecto, o desactivá \"Controlador de "
"Respaldo Activado\"."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"La plataforma de destino requiere compresión de texturas 'ETC' para GLES2. "
+"Activá 'Import Etc' en Ajustes del Proyecto."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"La plataforma de destino requiere compresión de texturas 'ETC2' para GLES3. "
+"Activá 'Importar Etc 2' en Ajustes del Proyecto."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"La plataforma de destino requiere compresión de texturas 'ETC' para usar "
+"GLES2 como controlador de respaldo.\n"
+"Activá 'Importar Etc' en Ajustes del Proyecto, o desactivá \"Controlador de "
+"Respaldo Activado\"."
+
#: 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
@@ -2957,8 +2988,7 @@ msgstr "Administrar Plantillas de Exportación..."
msgid "Help"
msgstr "Ayuda"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4393,7 +4423,6 @@ msgid "Add Node to BlendTree"
msgstr "Agregar Nodo al BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Nodo Movido"
@@ -5228,27 +5257,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Crear Guías Horizontales y Verticales"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Mover pivote"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate %d CanvasItems"
msgstr "Rotar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Mover ancla"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "Rotar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Redimensionar CanvasItem"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Mover CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale %d CanvasItems"
msgstr "Escalar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr "Escalar CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Mover CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Mover CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6532,14 +6584,24 @@ msgid "Move Points"
msgstr "Mover Puntos"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Rotar"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Arrastrar: Rotar"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Mover Todos"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: Escalar"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Rotar"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: Escalar"
@@ -6582,12 +6644,14 @@ msgid "Radius:"
msgstr "Radio:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Polígono->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Crear Polígono y UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->Polígono"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Convertir a Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7035,11 +7099,6 @@ msgstr "Resaltador de Sintaxis"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Ir A"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Marcadores"
@@ -7047,6 +7106,11 @@ msgstr "Marcadores"
msgid "Breakpoints"
msgstr "Puntos de interrupción"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Ir A"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8134,6 +8198,15 @@ msgid "Paint Tile"
msgstr "Pintar Tile"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift + Clic izq: Dibujar línea\n"
+"Shift + Ctrl + Clic izq: Pintar Rectángulo"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8657,6 +8730,11 @@ msgid "Add Node to Visual Shader"
msgstr "Agregar Nodo al Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Nodo Movido"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Duplicar Nodos"
@@ -8674,6 +8752,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Se cambió el Tipo de Entrada de Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Asignar Nombre a Uniform"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vértice"
@@ -9390,6 +9473,10 @@ msgstr ""
"varyings, uniforms y constantes."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Sólo modo Fragmento/Luz) Función derivada escalar."
@@ -9461,18 +9548,6 @@ msgid "Runnable"
msgstr "Ejecutable"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Agregar puerto de entrada..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Agregar parches anteriores..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Eliminar parche '%s' de la lista?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Eliminar preset '%s'?"
@@ -9574,18 +9649,6 @@ msgstr ""
"(separados por comas, ej: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Parches"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Crear Parche"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Archivo \"Pack\""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Características"
@@ -12117,6 +12180,22 @@ msgstr ""
"\"."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12152,8 +12231,14 @@ msgstr ""
"de compilación de Android."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "No se ha generado ninguna compilación apk en: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12926,6 +13011,42 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
msgid "Constants cannot be modified."
msgstr "Las constantes no pueden modificarse."
+#~ msgid "Move pivot"
+#~ msgstr "Mover pivote"
+
+#~ msgid "Move anchor"
+#~ msgstr "Mover ancla"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Redimensionar CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Polígono->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->Polígono"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Agregar puerto de entrada..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Agregar parches anteriores..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Eliminar parche '%s' de la lista?"
+
+#~ msgid "Patches"
+#~ msgstr "Parches"
+
+#~ msgid "Make Patch"
+#~ msgstr "Crear Parche"
+
+#~ msgid "Pack File"
+#~ msgstr "Archivo \"Pack\""
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "No se ha generado ninguna compilación apk en: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Docks de Sistema de Archivos e Importación"
diff --git a/editor/translations/et.po b/editor/translations/et.po
index a8692d1332..0059926322 100644
--- a/editor/translations/et.po
+++ b/editor/translations/et.po
@@ -1570,6 +1570,36 @@ msgstr ""
"Lülitage projekti sätetes sisse „Impordi ETC†või keelake „Draiveri "
"tagasilangemine lubatudâ€."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Sihtplatvorm nõuab GLES2 jaoks 'ETC' tekstuuri tihendamist. Projekti "
+"seadetes lubage „Impordi ETCâ€."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Sihtplatvorm nõuab GLES3 jaoks 'ETC2' tekstuuri tihendamist. Projekti "
+"seadetes lubage „Impordi ETC2â€."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
@@ -2839,8 +2869,7 @@ msgstr ""
msgid "Help"
msgstr "Abi"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4221,7 +4250,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5034,27 +5062,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Move %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6293,7 +6337,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6301,6 +6345,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6339,11 +6391,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6785,16 +6837,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7872,6 +7924,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8375,6 +8433,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8392,6 +8454,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9046,6 +9112,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9106,18 +9176,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9205,18 +9263,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11607,6 +11653,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11631,7 +11693,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/eu.po b/editor/translations/eu.po
index 07923f26fb..7e4389b87b 100644
--- a/editor/translations/eu.po
+++ b/editor/translations/eu.po
@@ -1555,6 +1555,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2807,8 +2827,7 @@ msgstr "Kudeatu esportazio txantiloiak..."
msgid "Help"
msgstr "Laguntza"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4195,7 +4214,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5008,27 +5026,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6267,7 +6301,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6275,6 +6309,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6313,11 +6355,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6759,16 +6801,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7846,6 +7888,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8348,6 +8396,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8365,6 +8417,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9019,6 +9075,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9079,18 +9139,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9178,18 +9226,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Ezaugarriak"
@@ -11586,6 +11622,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11610,7 +11662,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index 2d17cc0abb..1ed888fded 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -15,12 +15,14 @@
# mohamad por <mohamad24xx@gmail.com>, 2020.
# Tetra Homer <tetrahomer@gmail.com>, 2020.
# Farshad Faemiyi <ffaemiyi@gmail.com>, 2020.
+# Pikhosh <pikhosh@gmail.com>, 2020.
+# MSKF <walkingdeadstudio@outlook.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-16 18:09+0000\n"
-"Last-Translator: Farshad Faemiyi <ffaemiyi@gmail.com>\n"
+"PO-Revision-Date: 2020-10-19 21:08+0000\n"
+"Last-Translator: Pikhosh <pikhosh@gmail.com>\n"
"Language-Team: Persian <https://hosted.weblate.org/projects/godot-engine/"
"godot/fa/>\n"
"Language: fa\n"
@@ -28,7 +30,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.3-dev\n"
+"X-Generator: Weblate 4.3.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1544,7 +1546,7 @@ 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
@@ -1594,6 +1596,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -1726,7 +1748,7 @@ msgstr "وارد کردن"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
-msgstr "صدور"
+msgstr "خروجی"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1823,7 +1845,7 @@ 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"
@@ -1948,7 +1970,7 @@ msgstr "به ارث رسیده به وسیله:"
#: editor/editor_help.cpp
msgid "Description"
-msgstr "توضیح"
+msgstr "تعریÙ"
#: editor/editor_help.cpp
msgid "Online Tutorials"
@@ -1980,7 +2002,7 @@ msgstr "شمارش ها"
#: editor/editor_help.cpp
msgid "Constants"
-msgstr "ثوابت"
+msgstr "ثابت ها"
#: editor/editor_help.cpp
msgid "Property Descriptions"
@@ -2318,7 +2340,7 @@ msgstr ""
#: editor/editor_node.cpp editor/filesystem_dock.cpp
msgid "Open Scene"
-msgstr "گشودن صحنه"
+msgstr "باز کردن صحنه"
#: editor/editor_node.cpp
msgid "Open Base Scene"
@@ -2450,7 +2472,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."
@@ -2715,12 +2737,12 @@ msgstr "پوینده‌ی منبع جااÙتاده"
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr "خروج به Ùهرست پروژه ها"
+msgstr "خروج به لیست پروژه‌ها"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
msgid "Debug"
-msgstr "اشکال زدا"
+msgstr "اشکال یابی"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
@@ -2809,7 +2831,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Take Screenshot"
-msgstr ""
+msgstr "گرÙتن اسکرین‌شات"
#: editor/editor_node.cpp
#, fuzzy
@@ -2854,8 +2876,7 @@ msgstr "مدیریت صدور قالب ها"
msgid "Help"
msgstr "راهنما"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -2883,7 +2904,7 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr "انجمن"
+msgstr "جامعه"
#: editor/editor_node.cpp
msgid "About"
@@ -2923,7 +2944,7 @@ msgstr "پخش سÙارشی صحنه"
#: editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr "پخش سÙارشی صحنه"
+msgstr "اجرای صحنه دلخواه"
#: editor/editor_node.cpp
msgid "Changing the video driver requires restarting the editor."
@@ -3036,15 +3057,15 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Open 2D Editor"
-msgstr "گشودن ویرایشگر دو بعدی"
+msgstr "باز کردن ویرایشگر دو بعدی"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
-msgstr "یگشودن ویرایشگر سه بعدی"
+msgstr "باز کردن ویرایشگر سه بعدی"
#: editor/editor_node.cpp
msgid "Open Script Editor"
-msgstr "گشودن ویرایشگر اسکریپت"
+msgstr "باز کردن ویرایشگر اسکریپت"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
@@ -3838,7 +3859,7 @@ msgstr "حذ٠گره(ها)"
#: editor/groups_editor.cpp editor/node_dock.cpp
msgid "Groups"
-msgstr ""
+msgstr "گروه ها"
#: editor/groups_editor.cpp
msgid "Nodes Not in Group"
@@ -4327,7 +4348,6 @@ msgid "Add Node to BlendTree"
msgstr "گره(ها) را از درخت اضاÙÙ‡ Ú©Ù†"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "نام گره:"
@@ -4399,9 +4419,8 @@ msgid "Audio Clips"
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
@@ -5198,28 +5217,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "ساختن راهنمای عمودی"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move pivot"
-msgstr "برداشتن نقطه"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Rotate %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6516,7 +6550,7 @@ msgid "Move Points"
msgstr "برداشتن نقطه"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6524,6 +6558,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6562,12 +6604,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "اتصال به گره:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7039,11 +7082,6 @@ 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 ""
@@ -7052,10 +7090,15 @@ msgstr ""
msgid "Breakpoints"
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 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
@@ -8196,6 +8239,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8764,6 +8813,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "نام گره:"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "تکرار کلید‌های انیمیشن"
@@ -8783,6 +8837,11 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "تغییر بده"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9451,6 +9510,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9514,20 +9577,6 @@ msgstr ""
#: editor/project_export.cpp
#, fuzzy
-msgid "Add initial export..."
-msgstr "اÙزودن عمل ورودی"
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Delete patch '%s' from list?"
-msgstr "حذ٠کن"
-
-#: editor/project_export.cpp
-#, fuzzy
msgid "Delete preset '%s'?"
msgstr "آیا پرونده‌های انتخاب شده حذ٠شود؟"
@@ -9583,7 +9632,7 @@ msgstr "صدور پروژه"
#: editor/project_export.cpp
msgid "Resources"
-msgstr ""
+msgstr "منابع"
#: editor/project_export.cpp
msgid "Export all resources in the project"
@@ -9618,20 +9667,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Patches"
-msgstr "تطبیق‌ها:"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Pack File"
-msgstr " پوشه ها"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -10146,7 +10181,7 @@ msgstr "اÙزودن رویداد"
#: editor/project_settings_editor.cpp
msgid "Button"
-msgstr "دکمه"
+msgstr "Button"
#: editor/project_settings_editor.cpp
msgid "Left Button."
@@ -10318,7 +10353,7 @@ msgstr "بازطرح‌شده‌ها توسط بومی‌سازی:"
#: editor/project_settings_editor.cpp
msgid "Locale"
-msgstr "بومی‌سازی"
+msgstr "بومی"
#: editor/project_settings_editor.cpp
msgid "Locales Filter"
@@ -10344,7 +10379,7 @@ msgstr "بومی‌سازی‌ها:"
#: editor/project_settings_editor.cpp
msgid "AutoLoad"
-msgstr "بارگیری خودکار"
+msgstr "AutoLoad"
#: editor/project_settings_editor.cpp
msgid "Plugins"
@@ -10792,7 +10827,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
-msgstr "اÙزودن گره Ùرزند"
+msgstr "اÙزودن node زیرمجموعه"
#: editor/scene_tree_dock.cpp
#, fuzzy
@@ -10822,7 +10857,7 @@ msgstr "ذخیرهٔ شاخه به عنوان صحنه"
#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
msgid "Copy Node Path"
-msgstr "رونوشت مسیر گره"
+msgstr "کپی کردن مسیر node"
#: editor/scene_tree_dock.cpp
msgid "Delete (No Confirm)"
@@ -11407,7 +11442,7 @@ msgstr ""
#: modules/gdnative/register_types.cpp
msgid "GDNative"
-msgstr ""
+msgstr "GDNative"
#: modules/gdscript/gdscript_functions.cpp
#, fuzzy
@@ -11999,7 +12034,7 @@ msgstr "انتخاب یا ساختن یک نقش در ویرایشگر گراÙ"
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
-msgstr "انتخاب شده را حذ٠کن"
+msgstr "حذ٠انتخاب شده"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -12194,6 +12229,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12218,7 +12269,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12934,6 +12991,26 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "ثوابت قابل تغییر نیستند."
+#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "برداشتن نقطه"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "اÙزودن عمل ورودی"
+
+#, fuzzy
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "حذ٠کن"
+
+#, fuzzy
+#~ msgid "Patches"
+#~ msgstr "تطبیق‌ها:"
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr " پوشه ها"
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Ùایل‌سیستم Ùˆ وارد‌کردن لنگرگاه"
diff --git a/editor/translations/fi.po b/editor/translations/fi.po
index 93bfde1e50..6531c986c9 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-09-05 09:37+0000\n"
+"PO-Revision-Date: 2020-10-03 15:29+0000\n"
"Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/"
"godot/fi/>\n"
@@ -900,9 +900,8 @@ msgid "Signals"
msgstr "Signaalit"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Suodata laattoja"
+msgstr "Suodata signaaleja"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1595,6 +1594,36 @@ msgstr ""
"Kytke 'Import Etc' päälle projektin asetuksista tai poista 'Driver Fallback "
"Enabled' asetus."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"GLES2 tarvitsee kohdealustalla 'ETC' tekstuuripakkausta. Kytke 'Import Etc' "
+"päälle projektin asetuksista."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"GLES3 tarvitsee kohdealustalla 'ETC' tekstuuripakkausta. Kytke 'Import Etc "
+"2' päälle projektin asetuksista."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"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
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
@@ -1637,9 +1666,8 @@ msgid "Node Dock"
msgstr "Solmutelakka"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "Tiedostojärjestelmä"
+msgstr "Tiedostojärjestelmätelakka"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2787,14 +2815,18 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Kun tämä asetus on päällä, yhden napin käyttöönotto saa suoritettavan "
+"ohjelman yrittämään yhteyttä tämän tietokoneen IP-osoitteeseen, jotta "
+"ajettavaa projektia voidaan debugata.\n"
+"Tämä valinta on tarkoitettu etädebuggaukseen (tyypillisesti mobiililaitteen "
+"kanssa).\n"
+"Sitä ei tarvitse asettaa päälle paikallista GDScriptin debuggausta varten."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "Kevyt käyttöönotto verkkolevyn avulla"
+msgstr "Kevyt käyttöönotto verkkolevyltä"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2803,72 +2835,68 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"Kun tämä on valittuna, vienti tai julkaisu tuottaa pienimmän mahdollisen "
-"käynnistystiedoston.\n"
-"Tiedostojärjestelmän tarjoaa projektin editori, verkon kautta. \n"
-"Androidilla julkaisu käyttää USB kaapelia nopeamman toimivuuden "
-"saavuttamiseksi. Tämä nopeuttaa testaamista varsinkin suurempien pelien "
-"kohdalla."
+"Kun tämä on valittuna, yhden napsautuksen käyttöönotto Androidille vie "
+"ainoastaan suoritettavan tiedoston ilman projektin dataa.\n"
+"Editori välittää tiedostojärjestelmän projektilta verkon yli.\n"
+"Androidilla käyttöönotto käyttää USB-kaapelia nopeampaa suorituskykyä "
+"varten. Tämä valinta nopeuttaa testaamista projekteilla, jotka sisältävät "
+"suuria resursseja."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "Näytä törmäysmuodot"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"Törmäysmuodot ja raycast-solmut (2D ja 3D) ovat näkyvillä peliä ajettaessa "
-"tämän ollessa valittuna."
+"Kun tämä on valittuna, törmäysmuodot ja raycast-solmut (2D ja 3D) ovat "
+"näkyvillä peliä ajettaessa."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "Näkyvä navigaatio"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"Navigointiverkot ja niiden polygonit ovat näkyvillä peliä ajettaessa tämän "
-"ollessa valittuna."
+"Kun tämä on valittuna, navigointiverkot ja polygonit ovat näkyvillä peliä "
+"ajettaessa."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Synkronoi skenen muutokset"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Tämän ollessa valittuna, kaikki skeneen tehdyt muutokset toteutetaan myös "
-"käynnissä olevassa pelissä.\n"
-"Mikäli peliä ajetaan etälaitteella, on tehokkaampaa käyttää verkkolevyä."
+"Tämän ollessa valittuna, kaikki editorissa skeneen tehdyt muutokset "
+"replikoidaan käynnissä olevaan projektiin.\n"
+"Mikäli peliä ajetaan etälaitteella, tämä on tehokkaampaa silloin kun "
+"verkkolevyvalinta on päällä."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
msgstr "Synkronoi skriptin muutokset"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Jos tämä on valittu, kaikki tallennetut skriptit ladataan uudelleen pelin "
-"käynnistyessä.\n"
-"Mikäli peliä ajetaan etälaitteella, on tehokkaampaa käyttää verkkolevyä."
+"Kun tämä on valittuna, kaikki tallennetut skriptit ladataan uudelleen "
+"käynnissä olevassa pelissä.\n"
+"Mikäli peliä ajetaan etälaitteella, tämä on tehokkaampaa kun "
+"verkkolevyvalinta on päällä."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -2922,8 +2950,7 @@ msgstr "Hallinnoi vientimalleja..."
msgid "Help"
msgstr "Ohje"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3345,14 +3372,14 @@ msgid "Add Key/Value Pair"
msgstr "Lisää avain/arvopari"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
-"Käynnistettävää vientipohjaa ei löytynyt tälle alustalle.\n"
-"Lisää sellainen vientivalikosta."
+"Tälle alustalle ei löytynyt ajettavaa viennin esiasetusta.\n"
+"Ole hyvä ja lisää ajettava esiasetus Vienti-valikosta tai määrittele "
+"olemassa oleva esiasetus ajettavaksi."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -4353,7 +4380,6 @@ msgid "Add Node to BlendTree"
msgstr "Lisää BlendTree solmu"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Solmu siirretty"
@@ -5184,27 +5210,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Luo vaaka- ja pystysuorat apuviivat"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Siirrä keskikohtaa"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "Kierrä CanvasItemiä"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "Kierrä CanvasItemiä"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Siirrä ankkuri"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Siirrä CanvasItemiä"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Muokkaa CanvasItemin kokoa"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "Skaalaa CanvasItemiä"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Skaalaa CanvasItemiä"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Siirrä CanvasItemiä"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Siirrä CanvasItemiä"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6486,14 +6535,24 @@ msgid "Move Points"
msgstr "Siirrä pisteitä"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Kierrä"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Vedä: Kierrä"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Siirrä kaikkia"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: Skaalaa"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Kierrä"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: Skaalaa"
@@ -6535,12 +6594,14 @@ msgid "Radius:"
msgstr "Säde:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Polygoni->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Luo polygoni ja UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->Polygoni"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Muunna Polygon2D solmuksi"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6988,11 +7049,6 @@ msgstr "Syntaksin korostaja"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Mene"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Kirjanmerkit"
@@ -7000,6 +7056,11 @@ msgstr "Kirjanmerkit"
msgid "Breakpoints"
msgstr "Keskeytyskohdat"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Mene"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7273,7 +7334,7 @@ msgstr "Oikea näkymä."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right"
-msgstr "OIkea"
+msgstr "Oikea"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
@@ -7767,9 +7828,8 @@ msgid "New Animation"
msgstr "Uusi animaatio"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "Nopeus (FPS):"
+msgstr "Nopeus:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8089,6 +8149,15 @@ msgid "Paint Tile"
msgstr "Maalaa laatta"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+Hiiren vasen: Piirrä viiva\n"
+"Shift+Ctrl+Hiiren vasen: Suorakaidemaalaus"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8614,6 +8683,11 @@ msgid "Add Node to Visual Shader"
msgstr "Lisää solmu Visual Shaderiin"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Solmu siirretty"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Kahdenna solmut"
@@ -8631,6 +8705,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Visual Shaderin syötteen tyyppi vaihdettu"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Aseta uniformin nimi"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Kärkipiste"
@@ -9340,6 +9419,10 @@ msgstr ""
"uniformeja ja vakioita."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Vain Fragment/Light tilat) Skalaariderivaattafunktio."
@@ -9412,18 +9495,6 @@ msgid "Runnable"
msgstr "Suoritettava"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Lisää ensimmäinen vienti..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Lisää edelliset päivitykset..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Poista päivitys '%s' listasta?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Poista esiasetus '%s'?"
@@ -9523,18 +9594,6 @@ msgstr ""
"(pilkulla erotettuna, esim. *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Päivitykset"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Luo päivitys"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Pakkaa tiedosto"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Ominaisuudet"
@@ -10333,19 +10392,16 @@ msgid "Batch Rename"
msgstr "Niputettu uudelleennimeäminen"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "Korvaa: "
+msgstr "Korvaa:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "Etuliite"
+msgstr "Etuliite:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "Pääte"
+msgstr "Pääte:"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10392,9 +10448,8 @@ msgid "Per-level Counter"
msgstr "Per taso -laskuri"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "Jos asetettu, laskuri alkaa alusta jokaiselle alisolmujen ryhmälle"
+msgstr "Jos asetettu, laskuri alkaa alusta jokaiselle alisolmujen ryhmälle."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10453,9 +10508,8 @@ msgid "Reset"
msgstr "Palauta"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "Säännöllisen lausekkeen virhe"
+msgstr "Säännöllisen lausekkeen virhe:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -12058,6 +12112,22 @@ msgstr ""
"\"Oculus Mobile VR\"."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12091,8 +12161,14 @@ msgstr ""
"käännösdokumentaatio."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Käännöksen apk:ta ei generoitu: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12542,7 +12618,7 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "InterpolatedCamera on vanhentunut ja poistetaan Godot 4.0 versiossa."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12851,6 +12927,42 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa."
msgid "Constants cannot be modified."
msgstr "Vakioita ei voi muokata."
+#~ msgid "Move pivot"
+#~ msgstr "Siirrä keskikohtaa"
+
+#~ msgid "Move anchor"
+#~ msgstr "Siirrä ankkuri"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Muokkaa CanvasItemin kokoa"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Polygoni->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->Polygoni"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Lisää ensimmäinen vienti..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Lisää edelliset päivitykset..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Poista päivitys '%s' listasta?"
+
+#~ msgid "Patches"
+#~ msgstr "Päivitykset"
+
+#~ msgid "Make Patch"
+#~ msgstr "Luo päivitys"
+
+#~ msgid "Pack File"
+#~ msgstr "Pakkaa tiedosto"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Käännöksen apk:ta ei generoitu: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Tiedostojärjestelmä- ja tuontitelakat"
diff --git a/editor/translations/fil.po b/editor/translations/fil.po
index de981e7625..2db2e9676c 100644
--- a/editor/translations/fil.po
+++ b/editor/translations/fil.po
@@ -1557,6 +1557,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2809,8 +2829,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4193,7 +4212,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5008,27 +5026,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6270,7 +6304,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6278,6 +6312,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6316,11 +6358,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6762,16 +6804,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7849,6 +7891,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8352,6 +8400,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8369,6 +8421,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9024,6 +9080,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9084,18 +9144,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9183,18 +9231,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11589,6 +11625,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11613,7 +11665,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index c39d4c7e0c..75d4c1cfea 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -79,7 +79,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-08 13:44+0200\n"
+"PO-Revision-Date: 2020-09-28 11:18+0000\n"
"Last-Translator: Nathan <bonnemainsnathan@gmail.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
"godot/fr/>\n"
@@ -88,7 +88,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: Poedit 2.4.1\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -978,9 +978,8 @@ msgid "Signals"
msgstr "Signaux"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Filtrer les tuiles"
+msgstr "Filtrer les signaux"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1674,6 +1673,37 @@ msgstr ""
"Activez 'Import Etc' dans les paramètres du projet, ou désactivez 'Driver "
"Fallback Enabled'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"La plate-forme cible nécessite une compression de texture 'ETC' pour GLES2. "
+"Activez 'Import Etc' dans les paramètres du projet."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"La plate-forme cible nécessite une compression de texture 'ETC2' pour GLES3. "
+"Activez 'Import Etc 2' dans les Paramètres du projet."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"La plate-forme cible nécessite une compression de texture ' ETC ' pour le "
+"fallback pilote de GLES2.\n"
+"Activez 'Import Etc' dans les paramètres du projet, ou désactivez 'Driver "
+"Fallback Enabled'."
+
#: 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
@@ -1715,9 +1745,8 @@ msgid "Node Dock"
msgstr "Dock nœud"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "Système de fichiers"
+msgstr "Dock du système de fichiers"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2886,14 +2915,19 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Lorsque cette option est activée, l'utilisation de l'option déployer en un "
+"clic permet à l'exécutable de tenter de se connecter à l'IP de cet "
+"ordinateur afin que le projet en cours puisse être débogué.\n"
+"Cette option est destinée à être utilisée pour le débogage à distance "
+"(généralement avec un appareil mobile).\n"
+"Il n'est pas nécessaire de l'activer pour utiliser le débogueur GDScript en "
+"local."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
msgstr "Déploiement minime avec système de fichier réseau"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2915,7 +2949,6 @@ msgid "Visible Collision Shapes"
msgstr "Formes de collision visibles"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
@@ -2928,7 +2961,6 @@ msgid "Visible Navigation"
msgstr "Navigation visible"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
@@ -2937,12 +2969,10 @@ msgstr ""
"option est activée."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Synchroniser les modifications des scènes"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
@@ -2955,12 +2985,10 @@ msgstr ""
"plus efficace avec le système de fichiers réseau."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
msgstr "Synchroniser les modifications des scripts"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
@@ -3025,8 +3053,7 @@ msgstr "Gérer les modèles d'exportation..."
msgid "Help"
msgstr "Aide"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3450,7 +3477,6 @@ msgid "Add Key/Value Pair"
msgstr "Ajouter une paire clé/valeur"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
@@ -4466,7 +4492,6 @@ msgid "Add Node to BlendTree"
msgstr "Ajouter un nœud au BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Nœud déplacé"
@@ -5302,27 +5327,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Créer de nouveaux guides horizontaux et verticaux"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Déplacer le pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "Pivoter l'élément de canevas"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "Pivoter l'élément de canevas"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Déplacer l'ancre"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Déplacer l'élément de canevas"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Redimensionner l'élément de canevas"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "Mise à l'échelle de CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Mise à l'échelle de CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Déplacer l'élément de canevas"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Déplacer l'élément de canevas"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6619,14 +6667,24 @@ msgid "Move Points"
msgstr "Déplacer de points"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl : Tourner"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Glisser : tourner"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Maj : Tout déplacer"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Maj+Contrôle : Mettre à l'échelle"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl : Tourner"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Maj+Contrôle : Mettre à l'échelle"
@@ -6668,12 +6726,14 @@ msgid "Radius:"
msgstr "Rayon :"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Polygone -> UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Créer un polygone & UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV -> Polygone"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Convertir en Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7122,11 +7182,6 @@ msgstr "Coloration syntaxique"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Atteindre"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Signets"
@@ -7134,6 +7189,11 @@ msgstr "Signets"
msgid "Breakpoints"
msgstr "Point d'arrêts"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Atteindre"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7906,9 +7966,8 @@ msgid "New Animation"
msgstr "Nouvelle animation"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "Vitesse (IPS) :"
+msgstr "Vitesse :"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8226,6 +8285,15 @@ msgid "Paint Tile"
msgstr "Peindre la tuile"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift + Clic gauche : Dessiner une ligne\n"
+"Shift + Ctrl + Clic gauche : Dessiner un rectangle"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8753,6 +8821,11 @@ msgid "Add Node to Visual Shader"
msgstr "Ajouter un nœud au Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Nœud déplacé"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Dupliquer le(s) nœud(s)"
@@ -8770,6 +8843,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Type d’entrée Visual Shader changée"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Définir le nom de l'uniforme"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vertex"
@@ -9488,6 +9566,10 @@ msgstr ""
"constantes."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Mode Fragment/Light uniquement) Fonction dérivée Scalaire."
@@ -9560,18 +9642,6 @@ msgid "Runnable"
msgstr "Exécutable"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Ajouter l'exportation initiale...."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Ajouter les correctifs précédents....."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Supprimer le patch « %s » de la liste ?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Supprimer le pré-réglage « %s » ?"
@@ -9671,18 +9741,6 @@ msgstr ""
"(séparés par des virgules, par exemple : *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Patchs"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Conçevoir un patch"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Fichiers Pack"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Fonctionnalités"
@@ -10489,19 +10547,16 @@ msgid "Batch Rename"
msgstr "Renommer par lot"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "Remplacer : "
+msgstr "Remplacer :"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "Préfixe"
+msgstr "Préfixe :"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "Suffixe"
+msgstr "Suffixe :"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10548,9 +10603,8 @@ msgid "Per-level Counter"
msgstr "Compteur par niveau"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "Si défini, le compteur redémarre pour chaque groupe de nœuds enfant"
+msgstr "Si défini, le compteur redémarre pour chaque groupe de nœuds enfant."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10609,9 +10663,8 @@ msgid "Reset"
msgstr "Réinitialiser"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "Erreur dans l'expression régulière"
+msgstr "Erreur dans l'expression régulière :"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -12224,6 +12277,22 @@ msgstr ""
"Xr » est « Oculus Mobile VR »."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12259,8 +12328,14 @@ msgstr ""
"Android."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Aucune build apk générée à : "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12727,7 +12802,7 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "InterpolatedCamera a été déprécié et sera supprimé dans Godot 4.0."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -13046,6 +13121,42 @@ 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 "Move pivot"
+#~ msgstr "Déplacer le pivot"
+
+#~ msgid "Move anchor"
+#~ msgstr "Déplacer l'ancre"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Redimensionner l'élément de canevas"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Polygone -> UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV -> Polygone"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Ajouter l'exportation initiale...."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Ajouter les correctifs précédents....."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Supprimer le patch « %s » de la liste ?"
+
+#~ msgid "Patches"
+#~ msgstr "Patchs"
+
+#~ msgid "Make Patch"
+#~ msgstr "Conçevoir un patch"
+
+#~ msgid "Pack File"
+#~ msgstr "Fichiers Pack"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Aucune build apk générée à : "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Module d'importation et système de fichiers"
diff --git a/editor/translations/ga.po b/editor/translations/ga.po
index d727d2a1fa..17b0134def 100644
--- a/editor/translations/ga.po
+++ b/editor/translations/ga.po
@@ -1551,6 +1551,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2804,8 +2824,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4189,7 +4208,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5005,27 +5023,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6264,7 +6298,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6272,6 +6306,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6310,11 +6352,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6756,16 +6798,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7845,6 +7887,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8349,6 +8397,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8366,6 +8418,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9020,6 +9076,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9080,18 +9140,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9179,18 +9227,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11586,6 +11622,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11610,7 +11662,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/he.po b/editor/translations/he.po
index 3a508c0d6d..1a4c5ee05d 100644
--- a/editor/translations/he.po
+++ b/editor/translations/he.po
@@ -16,12 +16,13 @@
# Daniel Kariv <danielkariv98@gmail.com>, 2020.
# Ziv D <wizdavid@gmail.com>, 2020.
# yariv benj <yariv4400@gmail.com>, 2020.
+# Guy Dadon <guydadon14@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-24 12:43+0000\n"
-"Last-Translator: Ziv D <wizdavid@gmail.com>\n"
+"PO-Revision-Date: 2020-10-27 18:26+0000\n"
+"Last-Translator: Guy Dadon <guydadon14@gmail.com>\n"
"Language-Team: Hebrew <https://hosted.weblate.org/projects/godot-engine/"
"godot/he/>\n"
"Language: he\n"
@@ -30,7 +31,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
-"X-Generator: Weblate 4.3-dev\n"
+"X-Generator: Weblate 4.3.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -386,12 +387,13 @@ msgid "Anim Create & Insert"
msgstr "יצירה והוספה של הנפשה"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Anim Insert Track & Key"
-msgstr ""
+msgstr "הכנס טר×ק & מפתח ל×נימציה"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Key"
-msgstr ""
+msgstr "הכנס מפתח ל×נימציה"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -564,38 +566,35 @@ msgstr "העתקת רצועות"
#: editor/animation_track_editor.cpp
msgid "Scale Selection"
-msgstr ""
+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 "מעבר לצעד הב×"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Previous Step"
msgstr "מעבר לצעד הקוד×"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
-msgstr "מטוב ההנפשה"
+msgstr "מיטוב ההנפשה"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation"
@@ -603,31 +602,31 @@ msgstr "ניקוי ההנפשה"
#: editor/animation_track_editor.cpp
msgid "Pick the node that will be animated:"
-msgstr ""
+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"
-msgstr "מטוב"
+msgstr "מיטוב"
#: editor/animation_track_editor.cpp
msgid "Remove invalid keys"
@@ -635,7 +634,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"
@@ -643,20 +642,19 @@ msgstr "ניקוי כל ההנפשות"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr ""
+msgstr "ניקוי הנפשות (×œ×œ× ×‘×™×˜×•×œ!)"
#: editor/animation_track_editor.cpp
msgid "Clean-Up"
-msgstr ""
+msgstr "ניקוי"
#: editor/animation_track_editor.cpp
msgid "Scale Ratio:"
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
@@ -665,25 +663,23 @@ 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 "העתקה"
#: 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"
@@ -750,17 +746,17 @@ msgstr "החלפת תצוגת חלונית סקריפטי×"
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom In"
-msgstr "להתקרב"
+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 "להתרחק"
+msgstr "התרחקות"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr "×יפוס התקריב"
+msgstr "×יפוס זו×"
#: editor/code_editor.cpp
msgid "Warnings"
@@ -768,40 +764,37 @@ msgstr "×זהרות"
#: editor/code_editor.cpp
msgid "Line and column numbers."
-msgstr ""
+msgstr "מספרי שורה ועמודה."
#: editor/connections_dialog.cpp
msgid "Method in target node must be specified."
-msgstr ""
+msgstr "מתודה במפרק המטרה חייבת להיות מוגדרת."
#: editor/connections_dialog.cpp
msgid "Method name must be a valid identifier."
-msgstr ""
+msgstr "×©× ×ž×ª×•×“×” חייב להיות מזהה חוקי."
#: editor/connections_dialog.cpp
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 "התחברות למפרק:"
#: 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
@@ -822,11 +815,11 @@ 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
msgid "Receiver Method:"
@@ -834,29 +827,28 @@ msgstr "שיטת המקלט:"
#: editor/connections_dialog.cpp
msgid "Advanced"
-msgstr ""
+msgstr "מתקד×"
#: editor/connections_dialog.cpp
msgid "Deferred"
-msgstr ""
+msgstr "דחוי"
#: editor/connections_dialog.cpp
msgid ""
"Defers the signal, storing it in a queue and only firing it at idle time."
-msgstr ""
+msgstr "דחיית ×”×ות ו×חסונו בתור, השידור ×™×”×™×” רק כש×ין פעילות (idle)."
#: 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
-#, fuzzy
msgid "Cannot connect signal"
-msgstr "שגי×ת חיבור"
+msgstr "×ין ×פשרות לחבר ×ות"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/export_template_manager.cpp editor/groups_editor.cpp
@@ -874,20 +866,19 @@ msgstr "סגירה"
#: editor/connections_dialog.cpp
msgid "Connect"
-msgstr ""
+msgstr "התחברות"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Signal:"
-msgstr "×ותות:"
+msgstr "×ות:"
#: editor/connections_dialog.cpp
msgid "Connect '%s' to '%s'"
-msgstr ""
+msgstr "חיבור '%s' ל- '%s'"
#: editor/connections_dialog.cpp
msgid "Disconnect '%s' from '%s'"
-msgstr ""
+msgstr "ניתוק '%s' מ-'%s'"
#: editor/connections_dialog.cpp
msgid "Disconnect all from signal: '%s'"
@@ -1611,6 +1602,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2408,7 +2419,7 @@ 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..."
@@ -2436,7 +2447,7 @@ msgstr "×™×™×¦×•× Mesh Library"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
-msgstr "×œ× × ×™×ª×Ÿ לבצע פעולה זו ×œ×œ× ×ž×¤×¨×§ עליון."
+msgstr "×œ× × ×™×ª×Ÿ לבצע פעולה זו ×œ×œ× ×ž×¤×¨×§ שורש."
#: editor/editor_node.cpp
msgid "Export Tile Set"
@@ -2938,8 +2949,7 @@ msgstr "ניהול תבניות ייצו×..."
msgid "Help"
msgstr "עזרה"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4251,7 +4261,7 @@ msgstr ""
#: 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
@@ -4393,7 +4403,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "×©× ×”×ž×¤×¨×§:"
@@ -4453,46 +4462,42 @@ 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
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
msgid "Edit Filtered Tracks:"
-msgstr ""
+msgstr "עריכת סינון רצועות:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Enable Filtering"
-msgstr "שינוי"
+msgstr "×יפשור סינון"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
-msgstr ""
+msgstr "הפעלת/ביטול הפעלה ×וטומטית"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
@@ -4500,51 +4505,50 @@ msgstr "×©× ×”× ×¤×©×” חדשה:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
-msgstr ""
+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
msgid "Remove Animation"
-msgstr ""
+msgstr "הסרת הנפשה"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Invalid animation name!"
msgstr "×©× ×”× ×¤×©×” ×œ× ×—×•×§×™!"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Animation name already exists!"
-msgstr "הפעולה ‚%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"
-msgstr ""
+msgstr "טעינת הנפשה"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Duplicate Animation"
-msgstr ""
+msgstr "שכפול הנפשה"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation to copy!"
@@ -4556,11 +4560,11 @@ 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!"
@@ -4568,23 +4572,23 @@ msgstr "×ין הנפשה לעריכה!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
-msgstr ""
+msgstr "ניגון ל×חור של ההנפשה שנבחרה ×ž×”×ž×™×§×•× ×”× ×•×›×—×™. (A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr ""
+msgstr "ניגון ל×חור של ההנפשה שנבחרה מהסוף. (Shift+A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Stop animation playback. (S)"
-msgstr ""
+msgstr "עצירת ניגון ההנפשה. (S)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from start. (Shift+D)"
-msgstr ""
+msgstr "ניגון ההנפשה שנבחרה מההתחלה. (Shift+D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from current pos. (D)"
-msgstr ""
+msgstr "ניגון ההנפשה שנבחרה ×ž×”×ž×™×§×•× ×”× ×•×›×—×™. (D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation position (in seconds)."
@@ -5250,29 +5254,44 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move pivot"
-msgstr "העברה למעלה"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Rotate %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move anchor"
-msgstr "העברה למטה"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "הטיה של %s מעלות."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5746,7 +5765,7 @@ msgstr ""
#: 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
@@ -6573,7 +6592,8 @@ msgid "Move Points"
msgstr "הזזת נקודה"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+#, fuzzy
+msgid "Command: Rotate"
msgstr "Ctrl: הטייה"
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6581,6 +6601,15 @@ msgid "Shift: Move All"
msgstr "Shift: הזזת הכול"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: קנה מידה"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: הטייה"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: קנה מידה"
@@ -6619,12 +6648,14 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr ""
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "יצירת מצולע"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "הזזת מצולע"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7083,11 +7114,6 @@ 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 ""
@@ -7096,6 +7122,11 @@ msgstr ""
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8235,6 +8266,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8459,9 +8496,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete selected Rect."
-msgstr "למחוק ×ת ×”×§×‘×¦×™× ×”× ×‘×—×¨×™×?"
+msgstr "מחיקת המרובע שנבחר."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -8802,6 +8838,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "×©× ×”×ž×¤×¨×§:"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "שכפול"
@@ -8821,6 +8862,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "משתנה השתנה"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Vertex"
msgstr "קודקודי×"
@@ -9486,6 +9532,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9547,19 +9597,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "מועדפי×:"
-
-#: 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 ""
@@ -9649,18 +9686,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "קובץ ×רכיון"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -10472,9 +10497,8 @@ msgid "Current scene name"
msgstr "×©× ×¡×¦× ×” נוכחית"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Root node name"
-msgstr "שינוי ש×"
+msgstr "שינוי ×©× ×ž×¤×¨×§ השורש"
#: editor/rename_dialog.cpp
msgid ""
@@ -10596,72 +10620,73 @@ 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 ""
+"×ין ×פשרות לעשות מופע לסצינה '%s' ×›×™ הסצנה הנוכחית קיימת בתוך ×חד ×”×ž×¤×¨×§×™× "
+"שלה."
#: editor/scene_tree_dock.cpp
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
-#, fuzzy
msgid "Detach Script"
-msgstr "יצירת סקריפט"
+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 and any children?"
-msgstr "מחיקת שורה"
+msgstr "מחיקת %d ×ž×¤×¨×§×™× ×•×›×œ צ×צ××™×”×?"
#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
@@ -10669,11 +10694,11 @@ 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
msgid "Delete node \"%s\"?"
@@ -10681,116 +10706,112 @@ 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 ""
+"ביטול \"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 ""
+"הפעלת \"Load As Placeholder\" תבטל ×ת \"Editable Children\" ×•×ª×’×¨×•× ×œ×”×—×–×¨×ª כל "
+"מ×פייני המפרק לברירת המחדל שלה×."
#: 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 "סצנה דו ממדית"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "3D Scene"
-msgstr "סצנה"
+msgstr "סצנה תלת ממדית"
#: 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
-#, fuzzy
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
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 "פתיחת התיעוד המקוון של Godot"
+msgstr "פתיחת התיעוד"
#: editor/scene_tree_dock.cpp
msgid ""
@@ -10798,165 +10819,170 @@ msgid ""
"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 ""
+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 to the selected node."
-msgstr ""
+msgstr "חיבור סקריפט חדש ×ו ×§×™×™× ×œ×ž×¤×¨×§ שנבחר."
#: editor/scene_tree_dock.cpp
msgid "Detach the script from the selected node."
-msgstr ""
+msgstr "ניתוק הסקריפט מהמפרק שנבחר."
#: editor/scene_tree_dock.cpp
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 "מצב הזזה (W)"
+msgstr "ביטול נעילת מפרק"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Button Group"
-msgstr "כפתור 7"
+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"
+"לחיצה תציג ×ת פנל ×”×ותות."
#: 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 "הצגה/הסתרה"
#: 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
msgid "Path is empty."
@@ -10971,99 +10997,88 @@ msgid "Path is not local."
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
msgid "Error loading template '%s'"
-msgstr ""
+msgstr "שגי××” בטעינת תבנית '%s'"
#: editor/script_create_dialog.cpp
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
msgid "Overrides"
-msgstr ""
+msgstr "דריסה"
#: editor/script_create_dialog.cpp
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
msgid "File exists, it will be reused."
-msgstr ""
+msgstr "הקובץ קיי×, יעשה בו שימוש חוזר."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid path."
-msgstr "נתיב שגוי."
+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
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 "יצירת %s חדש"
+msgstr "יצירת קובץ סקריפט חדש."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Will load an existing script file."
-msgstr "טעינת פריסת ×פיקי שמע."
+msgstr "טעינת קובץ סקריפט קיי×."
#: editor/script_create_dialog.cpp
msgid "Script file already exists."
@@ -11074,196 +11089,184 @@ 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
msgid "Attach Node Script"
-msgstr ""
+msgstr "חיבור סקריפט למפרק"
#: editor/script_editor_debugger.cpp
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
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
msgid "Copy Error"
-msgstr ""
+msgstr "שגי×ת העתקה"
#: editor/script_editor_debugger.cpp
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 ""
+msgstr "ערך"
#: editor/script_editor_debugger.cpp
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
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
msgid "Export list to a CSV file"
-msgstr "×™×™×¦×•× ×ž×™×–×"
+msgstr "×™×™×¦×•× ×¨×©×™×ž×” לקובץ CSV"
#: 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 "שונות"
#: editor/script_editor_debugger.cpp
msgid "Clicked Control:"
-msgstr ""
+msgstr "בקר שנלחץ:"
#: editor/script_editor_debugger.cpp
msgid "Clicked Control Type:"
-msgstr ""
+msgstr "סוג הבקר שנלחץ:"
#: 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
msgid "Erase Shortcut"
-msgstr ""
+msgstr "מחיקת מקש קיצור"
#: editor/settings_config_dialog.cpp
msgid "Restore Shortcut"
-msgstr ""
+msgstr "שחזור מקש קיצור"
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Change Shortcut"
-msgstr "שינוי הערה"
+msgstr "שינוי מקש קיצור"
#: editor/settings_config_dialog.cpp
msgid "Editor Settings"
@@ -11271,176 +11274,175 @@ 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 "שינוי זווית הפליטה של AudioStreamPlayer3D"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Camera FOV"
-msgstr ""
+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
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
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
msgid "Change Cylinder Radius"
-msgstr ""
+msgstr "שינוי רדיוס גליל"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Height"
-msgstr ""
+msgstr "שינוי גובה גליל"
#: modules/csg/csg_gizmos.cpp
msgid "Change Torus Inner Radius"
-msgstr ""
+msgstr "שינוי רדיוס פנימי של טבעת"
#: modules/csg/csg_gizmos.cpp
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
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 "GDNativeLibrary"
#: 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
msgid "Step argument is zero!"
-msgstr ""
+msgstr "×רגומנט הצעד ×”×•× ×פס!"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not a script with an instance"
-msgstr ""
+msgstr "×ין סקריפט ×¢× ×”×ž×•×¤×¢"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not based on a script"
-msgstr ""
+msgstr "×œ× ×ž×‘×•×¡×¡ על סקריפט"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not based on a resource file"
-msgstr ""
+msgstr "×œ× ×ž×‘×•×¡×¡ על קובץ מש×ב"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (missing @path)"
-msgstr ""
+msgstr "תבנית יצירת מילון ×œ× ×—×•×§×™×ª (חסר @path)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (can't load script at @path)"
-msgstr ""
+msgstr "תבנית יצירת מילון ×œ× ×—×•×§×™×ª (×œ× × ×™×ª×Ÿ לטעון סקריפט מ-@path)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr ""
+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
msgid "Next Plane"
@@ -11452,57 +11454,55 @@ 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
msgid "GridMap Fill Selection"
-msgstr "כל הבחירה"
+msgstr "GridMap מילוי הבחירה"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Paste Selection"
-msgstr "כל הבחירה"
+msgstr "GridMap הדבקת הבחירה"
#: 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 "קליפ מושבת"
#: 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"
@@ -11545,106 +11545,102 @@ msgid "Cursor Clear Rotation"
msgstr "מחיקת הטיית מצביע"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Paste Selects"
-msgstr "כל הבחירה"
+msgstr "הדבקה ובחירה"
#: modules/gridmap/grid_map_editor_plugin.cpp
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
msgid "GridMap Settings"
-msgstr ""
+msgstr "הגדרות GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Pick Distance:"
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 "יש לחבר מש×ב MeshLibrary ל- GridMap ×”×–×” כדי להשתמש ברשתות שלו."
#: 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 "×פיית NavMesh"
#: modules/recast/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
-msgstr ""
+msgstr "ניקוי רשת הניווט."
#: 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 "יצירת שדה גובה..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
-msgstr ""
+msgstr "סימון ×ž×©×•×œ×©×™× ×”× ×™×ª× ×™× ×œ×”×œ×™×›×”..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
-msgstr ""
+msgstr "בונה שדה גובה קומפקטי..."
#: 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 "המרה לרשת ניווט מקומית..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
-msgstr ""
+msgstr "הגדרת מחולל רשת ניווט:"
#: 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
-#, fuzzy
msgid ""
"A node yielded without working memory, please read the docs on how to yield "
"properly!"
@@ -12150,6 +12146,22 @@ msgid ""
msgstr "\"Focus Awareness\" תקף רק ×›×שר \"מצב Xr\" ×”×•× \"Oculus Mobile VR\"."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12183,8 +12195,14 @@ msgstr ""
"לחלופין, ×§×™×™× ×‘- docs.godotengine.org תיעוד לבניית ×נדרו×יד."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "×œ× × ×•×¦×¨ apk ב: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12763,7 +12781,7 @@ msgstr "הנתיב שהוגדר ל-AnimationPlayer ×ינו מוביל למפר×
#: scene/animation/animation_tree.cpp
msgid "The AnimationPlayer root node is not a valid node."
-msgstr "המפרק AnimationPlayer העליון ×ינו צומת חוקי."
+msgstr "מפרק השורש AnimationPlayer ×ינו צומת חוקי."
#: scene/animation/animation_tree_player.cpp
msgid "This node has been deprecated. Use AnimationTree instead."
@@ -12903,6 +12921,24 @@ msgid "Constants cannot be modified."
msgstr "××™ ×פשר לשנות קבועי×."
#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "העברה למעלה"
+
+#, fuzzy
+#~ msgid "Move anchor"
+#~ msgstr "העברה למטה"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "מועדפי×:"
+
+#~ msgid "Pack File"
+#~ msgstr "קובץ ×רכיון"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "×œ× × ×•×¦×¨ apk ב: "
+
+#, fuzzy
#~ msgid "FileSystem and Import Docks"
#~ msgstr "מערכת קבצי×"
diff --git a/editor/translations/hi.po b/editor/translations/hi.po
index 3c8f54033a..26513d484f 100644
--- a/editor/translations/hi.po
+++ b/editor/translations/hi.po
@@ -1591,6 +1591,36 @@ msgstr ""
"'Import Etc' को पà¥à¤°à¥‹à¤œà¥‡à¤•à¥à¤Ÿ सेटिनà¥à¤—स मे सकà¥à¤°à¤¿à¤¯ करे, या 'Driver Fallback Enabled' को "
"निषà¥à¤•à¥à¤°à¤¿à¤¯ करे."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"GLES2 के लिये टारà¥à¤—ेट पà¥à¤²à¥à¤Ÿà¥ˆà¥žà¥‹à¤°à¥à¤® को 'ETC' टेâ€à¤•à¥à¤¸à¤šà¤° कोमà¥à¤ªà¥à¤°à¥‡à¤¶à¤¨ की आवशà¥à¤¯à¤•à¤¤à¤¾ है. 'Import Etc' "
+"को पà¥à¤°à¥‹à¤œà¥‡à¤•à¥à¤Ÿ सेटिनà¥à¤—स मे सकà¥à¤°à¤¿à¤¯ करे."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"GLES3 के लिये टारà¥à¤—ेट पà¥à¤²à¥à¤Ÿà¥ˆà¥žà¥‹à¤°à¥à¤® को 'ETC2' टेâ€à¤•à¥à¤¸à¤šà¤° कोमà¥à¤ªà¥à¤°à¥‡à¤¶à¤¨ की आवशà¥à¤¯à¤•à¤¤à¤¾ है. 'Import Etc "
+"2' को पà¥à¤°à¥‹à¤œà¥‡à¤•à¥à¤Ÿ सेटिनà¥à¤—स मे सकà¥à¤°à¤¿à¤¯ करे."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"GLES2 के लिये टारà¥à¤—ेट पà¥à¤²à¥à¤Ÿà¥ˆà¥žà¥‹à¤°à¥à¤® को 'ETC' टेâ€à¤•à¥à¤¸à¤šà¤° कोमà¥à¤ªà¥à¤°à¥‡à¤¶à¤¨ की आवशà¥à¤¯à¤•à¤¤à¤¾ है. \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
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
@@ -2901,8 +2931,7 @@ msgstr "निरà¥à¤¯à¤¾à¤¤ टेमà¥à¤ªà¤²à¥‡à¤Ÿà¥à¤¸ का पà¥à¤°à¤¬
msgid "Help"
msgstr "मदद"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4306,7 +4335,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5119,27 +5147,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Rotate %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6388,7 +6432,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6396,6 +6440,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6434,12 +6486,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6894,11 +6947,6 @@ 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 ""
@@ -6907,6 +6955,11 @@ msgstr ""
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8001,6 +8054,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8538,6 +8597,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "नोड हटाया गया"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿"
@@ -8556,6 +8620,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9219,6 +9287,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9279,19 +9351,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "पसंदीदा:"
-
-#: 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 ""
@@ -9379,18 +9438,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11830,6 +11877,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11854,7 +11917,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12493,6 +12562,10 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "पसंदीदा:"
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "फाइलसिसà¥à¤Ÿà¥‡à¤® और इंपोरà¥à¤Ÿ डोकà¥à¤¸"
diff --git a/editor/translations/hr.po b/editor/translations/hr.po
index ff82f3aafc..f5d71148a5 100644
--- a/editor/translations/hr.po
+++ b/editor/translations/hr.po
@@ -4,12 +4,13 @@
# This file is distributed under the same license as the Godot source code.
# Unlimited Creativity <marinosah1@gmail.com>, 2019.
# Patik <patrikfs5@gmail.com>, 2019.
-# Nikola Bunjevac <nikola.bunjevac@gmail.com>, 2019.
+# Nikola Bunjevac <nikola.bunjevac@gmail.com>, 2019, 2020.
+# LeoClose <leoclose575@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2019-09-11 03:10+0000\n"
-"Last-Translator: Nikola Bunjevac <nikola.bunjevac@gmail.com>\n"
+"PO-Revision-Date: 2020-10-19 21:08+0000\n"
+"Last-Translator: LeoClose <leoclose575@gmail.com>\n"
"Language-Team: Croatian <https://hosted.weblate.org/projects/godot-engine/"
"godot/hr/>\n"
"Language: hr\n"
@@ -17,46 +18,46 @@ 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 3.9-dev\n"
+"X-Generator: Weblate 4.3.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 "Neispravan argument za convert(), upotrijebi konstantu TYPE_*."
+msgstr "Neispravni argument za convert(), upotrijebite konstantu TYPE_* ."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "OÄekivan string dužine jednog karaktera."
#: 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 "Nedovoljno byte-ova za dekodiranje byte-ova, ili neispravni format."
+msgstr "Nedovoljno bajtova za dekodiranje ili neispravan format."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "Neispravni ulaz %i (nije proslijeđen) u izrazu"
+msgstr "Neispravan unos %i (nije uspio) u izrazu"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "'self' nije moguće koristiti jer je instanca null (ništa)"
+msgstr "self nije moguće koristiti jer je jedinka null (nije uspio)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr "Nevažeći operatori za operator %s, %s i %s."
+msgstr "Nedozvoljen operator do operatora %s, %s i %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr "Nevažeći indeks za tip %s baznog tipa %s"
+msgstr "Nedozvoljen indeks tipa %s za bazni tip %s"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr "NevažeÄi imenovani indeks '%s' za bazni tip %s"
+msgstr "Neispravno imenovan indeks '%s' za bazni tip %s"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr "Nevažeći argumenti za konstrukciju '%s'"
+msgstr "Neispravni argumenti za konstrukciju '%s'"
#: core/math/expression.cpp
msgid "On call to '%s':"
@@ -64,31 +65,31 @@ msgstr "Pri pozivu '%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"
@@ -100,7 +101,7 @@ msgstr "Balansiran"
#: editor/animation_bezier_editor.cpp
msgid "Mirror"
-msgstr "Zrcaljenje"
+msgstr "Zrcalo"
#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
msgid "Time:"
@@ -120,7 +121,7 @@ msgstr "Duplikati Odabranih KljuÄeva"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr "Brisati odabrani kljuÄ/odabrane kljuÄeve"
+msgstr "Brisanje Odabranih KljuÄeva"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
@@ -132,19 +133,19 @@ msgstr "Pomakni Bezier ToÄke"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr ""
+msgstr "Animacija - Dupliciraj stanke"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
-msgstr ""
+msgstr "Animacija - Obriši stanke"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Time"
-msgstr ""
+msgstr "Animacija - Promijeni vrijeme stanke kadra"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
-msgstr ""
+msgstr "Animacija - Promijeni prijelaz"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
@@ -217,7 +218,6 @@ msgid "Animation length (frames)"
msgstr "Trajanje animacije (u sekundama)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation length (seconds)"
msgstr "Trajanje animacije (u sekundama)"
@@ -314,7 +314,7 @@ msgstr ""
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr "Umetni KljuÄ"
+msgstr "Umetni KljuÄ(Key)"
#: editor/animation_track_editor.cpp
msgid "Duplicate Key(s)"
@@ -552,11 +552,11 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Delete Selection"
-msgstr ""
+msgstr "Izbriši Odabir"
#: editor/animation_track_editor.cpp
msgid "Go to Next Step"
-msgstr ""
+msgstr "Idi na sljedeći korak"
#: editor/animation_track_editor.cpp
msgid "Go to Previous Step"
@@ -592,7 +592,7 @@ msgstr "Najveća kutna pogreška:"
#: editor/animation_track_editor.cpp
msgid "Max Optimizable Angle:"
-msgstr ""
+msgstr "Najveći optimirajući kut:"
#: editor/animation_track_editor.cpp
msgid "Optimize"
@@ -608,15 +608,15 @@ msgstr "Ukloni nepronađene i prazne trake"
#: editor/animation_track_editor.cpp
msgid "Clean-up all animations"
-msgstr ""
+msgstr "OÄistiti sve animacije"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr ""
+msgstr "OÄistiti sve animacije (NEMA POVRATKA!)"
#: editor/animation_track_editor.cpp
msgid "Clean-Up"
-msgstr ""
+msgstr "OÄistiti"
#: editor/animation_track_editor.cpp
msgid "Scale Ratio:"
@@ -633,11 +633,11 @@ 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 "Kopiraj"
#: editor/animation_track_editor.cpp
msgid "Select All/None"
-msgstr ""
+msgstr "Odaberi Sve/Ništa"
#: editor/animation_track_editor_plugins.cpp
msgid "Add Audio Track Clip"
@@ -672,9 +672,8 @@ msgid "Line Number:"
msgstr "Broj linije:"
#: editor/code_editor.cpp
-#, fuzzy
msgid "%d replaced."
-msgstr "Zamijeni"
+msgstr "%d zamijenjen."
#: editor/code_editor.cpp editor/editor_help.cpp
msgid "%d match."
@@ -686,7 +685,7 @@ msgstr "%d pojavljivanja."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
-msgstr ""
+msgstr "Podudari veliÄinu slova"
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Whole Words"
@@ -707,7 +706,7 @@ msgstr "Samo odabir"
#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp
#: editor/plugins/text_editor.cpp
msgid "Standard"
-msgstr ""
+msgstr "Standardno"
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
@@ -727,7 +726,7 @@ msgstr "Odzumiraj"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr "Resetiraj zoom"
+msgstr "Resetiraj zum"
#: editor/code_editor.cpp
msgid "Warnings"
@@ -742,9 +741,8 @@ msgid "Method in target node must be specified."
msgstr "Metoda u ciljnom Ävoru mora biti odreÄ‘ena."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "Metoda u ciljnom Ävoru mora biti odreÄ‘ena."
+msgstr "Ime metode mora biti validni identifikator."
#: editor/connections_dialog.cpp
msgid ""
@@ -800,9 +798,8 @@ msgid "Receiver Method:"
msgstr ""
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Advanced"
-msgstr "Balansiran"
+msgstr "Napredno"
#: editor/connections_dialog.cpp
msgid "Deferred"
@@ -885,9 +882,8 @@ msgid "Signals"
msgstr "Signali"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Iz signala:"
+msgstr "Filtriraj signale"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -982,7 +978,7 @@ msgstr "Resurs"
#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp
#: editor/project_manager.cpp editor/project_settings_editor.cpp
msgid "Path"
-msgstr ""
+msgstr "Put"
#: editor/dependency_editor.cpp
msgid "Dependencies:"
@@ -998,7 +994,7 @@ msgstr "UreÄ‘ivaÄ ovisnosti"
#: editor/dependency_editor.cpp
msgid "Search Replacement Resource:"
-msgstr ""
+msgstr "Traži zamjenu resursa:"
#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp
#: editor/editor_help_search.cpp editor/editor_node.cpp
@@ -1012,7 +1008,7 @@ msgstr "Otvori"
#: editor/dependency_editor.cpp
msgid "Owners Of:"
-msgstr ""
+msgstr "Vlasnici:"
#: editor/dependency_editor.cpp
msgid "Remove selected files from the project? (Can't be restored)"
@@ -1082,7 +1078,7 @@ msgstr "Posjeduje"
#: editor/dependency_editor.cpp
msgid "Resources Without Explicit Ownership:"
-msgstr ""
+msgstr "Resursi bez izriÄitog vlasniÅ¡tva:"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Key"
@@ -1132,14 +1128,12 @@ msgid "Gold Sponsors"
msgstr "Zlatni sponzori"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Silver Sponsors"
-msgstr "Srebrni donatori"
+msgstr "Srebrni Sponzori"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Bronze Sponsors"
-msgstr "BronÄani donatori"
+msgstr "BronÄani Sponzori"
#: editor/editor_about.cpp
msgid "Mini Sponsors"
@@ -1297,7 +1291,7 @@ 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 "Dupliciraj"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
@@ -1305,11 +1299,11 @@ msgstr ""
#: editor/editor_audio_buses.cpp
msgid "Delete Effect"
-msgstr ""
+msgstr "Obriši Efekat"
#: editor/editor_audio_buses.cpp
msgid "Audio"
-msgstr ""
+msgstr "Audio"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
@@ -1321,11 +1315,11 @@ msgstr ""
#: editor/editor_audio_buses.cpp
msgid "Delete Audio Bus"
-msgstr ""
+msgstr "Obriši Audio Bus"
#: editor/editor_audio_buses.cpp
msgid "Duplicate Audio Bus"
-msgstr ""
+msgstr "Dupliciraj Audio Bus"
#: editor/editor_audio_buses.cpp
msgid "Reset Bus Volume"
@@ -1333,7 +1327,7 @@ msgstr ""
#: editor/editor_audio_buses.cpp
msgid "Move Audio Bus"
-msgstr ""
+msgstr "Premjesti Audio Bus"
#: editor/editor_audio_buses.cpp
msgid "Save Audio Bus Layout As..."
@@ -1349,7 +1343,7 @@ msgstr ""
#: editor/editor_audio_buses.cpp
msgid "There is no '%s' file."
-msgstr ""
+msgstr "Datoteka '%s' ne postoji."
#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp
msgid "Layout"
@@ -1360,13 +1354,12 @@ msgid "Invalid file, not an audio bus layout."
msgstr ""
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Error saving file: %s"
-msgstr "PogreÅ¡ka uÄitavanja:"
+msgstr "Pogreška prilikom spremanja datoteke: %s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
-msgstr ""
+msgstr "Dodaj Kontroler"
#: editor/editor_audio_buses.cpp
msgid "Add a new Audio Bus to this layout."
@@ -1376,7 +1369,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Load"
-msgstr ""
+msgstr "UÄitaj"
#: editor/editor_audio_buses.cpp
msgid "Load an existing Bus Layout."
@@ -1384,7 +1377,7 @@ msgstr ""
#: editor/editor_audio_buses.cpp
msgid "Save As"
-msgstr ""
+msgstr "Spremi Kao"
#: editor/editor_audio_buses.cpp
msgid "Save this Bus Layout to a file."
@@ -1392,23 +1385,23 @@ msgstr ""
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
-msgstr ""
+msgstr "UÄitaj Zadano"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr ""
+msgstr "UÄitaj zadani Bus Izgled."
#: editor/editor_audio_buses.cpp
msgid "Create a new Bus Layout."
-msgstr ""
+msgstr "Kreiraj novi Bus izgled."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
-msgstr ""
+msgstr "Nevažeće ime."
#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
-msgstr ""
+msgstr "Važeći znakovi:"
#: editor/editor_autoload_settings.cpp
msgid "Must not collide with an existing engine class name."
@@ -1428,11 +1421,11 @@ msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
-msgstr ""
+msgstr "Autoload '%s' već postoji!"
#: editor/editor_autoload_settings.cpp
msgid "Rename Autoload"
-msgstr ""
+msgstr "Preimenuj Autoload"
#: editor/editor_autoload_settings.cpp
msgid "Toggle AutoLoad Globals"
@@ -1440,27 +1433,27 @@ msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Move Autoload"
-msgstr ""
+msgstr "Premjesti Autoload"
#: editor/editor_autoload_settings.cpp
msgid "Remove Autoload"
-msgstr ""
+msgstr "Ukloni Autoload"
#: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp
msgid "Enable"
-msgstr ""
+msgstr "Omogući"
#: editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
-msgstr ""
+msgstr "Preuredi Autoload-ove"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr ""
+msgstr "Nije moguće dodati autoload:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
-msgstr ""
+msgstr "Dodaj Autoload"
#: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp
@@ -1471,17 +1464,17 @@ msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Node Name:"
-msgstr ""
+msgstr "Naziv ÄŒvora(node):"
#: 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 "Ime"
#: editor/editor_autoload_settings.cpp
msgid "Singleton"
-msgstr ""
+msgstr "Sajngleton"
#: editor/editor_data.cpp editor/inspector_dock.cpp
msgid "Paste Params"
@@ -1569,6 +1562,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -1805,11 +1818,11 @@ msgstr "Spremi datoteku"
#: editor/editor_file_dialog.cpp
msgid "Go Back"
-msgstr "Natrag"
+msgstr "Idi Natrag"
#: editor/editor_file_dialog.cpp
msgid "Go Forward"
-msgstr "Naprijed"
+msgstr "Idi Naprijed"
#: editor/editor_file_dialog.cpp
msgid "Go Up"
@@ -1857,7 +1870,7 @@ msgstr "Osvježi datoteke."
#: editor/editor_file_dialog.cpp
msgid "(Un)favorite current folder."
-msgstr ""
+msgstr "(Od)favoriziraj trenutni folder."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Toggle the visibility of hidden files."
@@ -1865,7 +1878,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails."
-msgstr ""
+msgstr "Prikaži stavke kao reÅ¡etku sliÄica."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a list."
@@ -1887,7 +1900,7 @@ msgstr "Datoteka:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Must use a valid extension."
-msgstr ""
+msgstr "Nastavak mora biti ispravan."
#: editor/editor_file_system.cpp
msgid "ScanSources"
@@ -1921,9 +1934,8 @@ msgid "Inherited by:"
msgstr ""
#: editor/editor_help.cpp
-#, fuzzy
msgid "Description"
-msgstr "Opis:"
+msgstr "Opis"
#: editor/editor_help.cpp
msgid "Online Tutorials"
@@ -1962,9 +1974,8 @@ msgid "Property Descriptions"
msgstr ""
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "Vrijednost:"
+msgstr "(vrijednost)"
#: editor/editor_help.cpp
msgid ""
@@ -2032,9 +2043,8 @@ msgid "Class"
msgstr ""
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Method"
-msgstr "Idi na metodu"
+msgstr "Metoda"
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
msgid "Signal"
@@ -2374,9 +2384,8 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "Stvori"
+msgstr "Ponovno uÄitaj spremljenu scenu"
#: editor/editor_node.cpp
msgid ""
@@ -2824,8 +2833,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -2908,9 +2916,8 @@ msgid "Spins when the editor window redraws."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Continuously"
-msgstr "Kontinuirano"
+msgstr "Kontinuirano ažuriraj"
#: editor/editor_node.cpp
msgid "Update When Changed"
@@ -3024,9 +3031,8 @@ msgid "Open the previous Editor"
msgstr ""
#: editor/editor_node.h
-#, fuzzy
msgid "Warning!"
-msgstr "Upozorenja"
+msgstr "Upozorenje!"
#: editor/editor_path.cpp
msgid "No sub-resources found."
@@ -3041,9 +3047,8 @@ msgid "Thumbnail..."
msgstr ""
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Main Script:"
-msgstr "Spoji sa skriptom:"
+msgstr "Glavna skripta:"
#: editor/editor_plugin_settings.cpp
msgid "Edit Plugin"
@@ -3659,9 +3664,8 @@ msgid "Overwrite"
msgstr ""
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Create Scene"
-msgstr "Stvori"
+msgstr "Kreiraj Scenu"
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
@@ -3857,9 +3861,8 @@ msgid "Saving..."
msgstr ""
#: editor/import_dock.cpp
-#, fuzzy
msgid "%d Files"
-msgstr "Datoteka:"
+msgstr "%d Fajlovi"
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
@@ -4211,7 +4214,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -4267,19 +4269,16 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Anim Clips"
-msgstr "Animacijski Klipovi:"
+msgstr "IsjeÄci Animacija"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Audio Clips"
-msgstr "Audio Klipovi:"
+msgstr "Audio Klipovi"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Functions"
-msgstr "Funkcije:"
+msgstr "Funkcije"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
@@ -4310,34 +4309,34 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
-msgstr ""
+msgstr "Nova Animacija"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Animation Name:"
-msgstr ""
+msgstr "Promijeni Ime Animacije:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Animation?"
-msgstr ""
+msgstr "Obrisati Animaciju?"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Remove Animation"
-msgstr ""
+msgstr "Obriši Animaciju"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Invalid animation name!"
-msgstr ""
+msgstr "Neispravan naziv animacije!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation name already exists!"
-msgstr ""
+msgstr "Animacija sa ovim imenom već postoji!"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Rename Animation"
-msgstr ""
+msgstr "Preimenuj animaciju"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
@@ -4349,15 +4348,15 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load Animation"
-msgstr ""
+msgstr "UÄitaj Animaciju"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Duplicate Animation"
-msgstr ""
+msgstr "Dupliciraj Animaciju"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation to copy!"
-msgstr ""
+msgstr "Nema animacije za kopirati!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation resource on clipboard!"
@@ -4365,39 +4364,39 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
-msgstr ""
+msgstr "Animacija Zalijepljena"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Paste Animation"
-msgstr ""
+msgstr "Zalijepi Animaciju"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation to edit!"
-msgstr ""
+msgstr "Nema dostupne animacije za urediti!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
-msgstr ""
+msgstr "Reproduciraj odabranu animaciju unatrag od trenutne pozicije. (A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr ""
+msgstr "Reproduciraj odabranu animaciju unatrag od kraja. (Shift + A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Stop animation playback. (S)"
-msgstr ""
+msgstr "Zaustavite reprodukciju animacije. (S)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from start. (Shift+D)"
-msgstr ""
+msgstr "Reproduciraj odabranu animaciju od poÄetka. (Shift + D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from current pos. (D)"
-msgstr ""
+msgstr "Reproduciraj odabranu animaciju od trenutne pozicije. (D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation position (in seconds)."
-msgstr ""
+msgstr "Pozicija animacije (u sekundama)."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Scale animation playback globally for the node."
@@ -4405,67 +4404,67 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
-msgstr ""
+msgstr "Alati Za Animiranje"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation"
-msgstr ""
+msgstr "Animacija"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Edit Transitions..."
-msgstr ""
+msgstr "Uredi Tranzicije..."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Open in Inspector"
-msgstr ""
+msgstr "Otvori u Inspektoru"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Display list of animations in player."
-msgstr ""
+msgstr "Prikaz popisa animacija u playeru."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Autoplay on Load"
-msgstr ""
+msgstr "Automatska reprodukcija pri uÄitavanju"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Omogući \"Onion Skinning\""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning Options"
-msgstr ""
+msgstr "\"Onion Skinning\" Opcije"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Directions"
-msgstr ""
+msgstr "Direkcije"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Past"
-msgstr ""
+msgstr "Prošlost"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Future"
-msgstr ""
+msgstr "Budućnost"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Dubina"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 korak"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 koraka"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 koraka"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Samo Razlike"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
@@ -4473,26 +4472,26 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "UkljuÄi Gizmos (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pin AnimationPlayer"
-msgstr ""
+msgstr "Pinuj AnimationPlayer"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
-msgstr ""
+msgstr "Kreiraj Novu Animaciju"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Name:"
-msgstr ""
+msgstr "Ime Animacije:"
#: 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 ""
+msgstr "Greška!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Times:"
@@ -4500,7 +4499,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Next (Auto Queue):"
-msgstr ""
+msgstr "Sljedeće (Auto Queue):"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
@@ -4508,7 +4507,7 @@ msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Move Node"
-msgstr ""
+msgstr "Premjesti Ävor(node)"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Transition exists!"
@@ -4595,9 +4594,8 @@ msgid "Transition: "
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Play Mode:"
-msgstr "NaÄin Interpolacije"
+msgstr "NaÄin reprodukcije:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -4869,14 +4867,12 @@ msgid "Name (Z-A)"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (A-Z)"
-msgstr "Licenca"
+msgstr "Licenca (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (Z-A)"
-msgstr "Licenca"
+msgstr "Licenca (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "First"
@@ -5022,36 +5018,51 @@ msgid "Create Horizontal Guide"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Horizontal Guide"
-msgstr "Pomakni Bezier ToÄke"
+msgstr "Makni Vodoravne Upute"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Move %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5107,18 +5118,16 @@ msgid "Center"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Left Wide"
-msgstr "Linearno"
+msgstr "Lijevo Å iroko"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Top Wide"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Right Wide"
-msgstr "Linearno"
+msgstr "Desno Å iroko"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Bottom Wide"
@@ -5274,9 +5283,8 @@ msgid "Pan Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Ruler Mode"
-msgstr "NaÄin Interpolacije"
+msgstr "NaÄin Ravnala"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle smart snapping."
@@ -5457,9 +5465,8 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Animation Key and Pose Options"
-msgstr "Trajanje animacije (u sekundama)"
+msgstr "KljuÄevi animacije i opcije poze"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
@@ -5578,9 +5585,8 @@ msgstr ""
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Directed Border Pixels"
-msgstr "Direktoriji i datoteke:"
+msgstr "Usmjereni graniÄni pikseli"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -5639,24 +5645,20 @@ msgid "Load Curve Preset"
msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Add Point"
msgstr "Dodaj Bezier ToÄku"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove Point"
-msgstr "Pomakni Bezier ToÄke"
+msgstr "ObriÅ¡i Bezier ToÄku"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Left Linear"
-msgstr "Linearno"
+msgstr "Lijevo Linearno"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Right Linear"
-msgstr "Linearno"
+msgstr "Desno Linearno"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load Preset"
@@ -6206,7 +6208,6 @@ msgid "Split Segment (in curve)"
msgstr ""
#: editor/plugins/physical_bone_plugin.cpp
-#, fuzzy
msgid "Move Joint"
msgstr "Pomakni Bezier ToÄke"
@@ -6300,7 +6301,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6308,6 +6309,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6346,11 +6355,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6792,16 +6801,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7414,9 +7423,8 @@ msgid "Create Mesh2D"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Mesh2D Preview"
-msgstr "Pregled:"
+msgstr "Mesh2D Pregled"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Polygon2D"
@@ -7547,9 +7555,8 @@ msgid "(empty)"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Move Frame"
-msgstr "Pomakni favorita gore"
+msgstr "Premjesti Okvir"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Animations:"
@@ -7881,6 +7888,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -7953,23 +7966,20 @@ msgid "Select the previous shape, subtile, or Tile."
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Region"
-msgstr "NaÄin Interpolacije"
+msgstr "Regija"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Collision"
-msgstr "NaÄin Interpolacije"
+msgstr "Collision"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Occlusion"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Navigation"
-msgstr "NaÄin Interpolacije"
+msgstr "Navigacija"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Bitmask"
@@ -8396,6 +8406,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8413,6 +8427,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9067,6 +9085,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9127,18 +9149,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9226,19 +9236,6 @@ msgid ""
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 "Otvori datoteku"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -9295,9 +9292,8 @@ msgid "Export All"
msgstr ""
#: editor/project_export.cpp editor/project_manager.cpp
-#, fuzzy
msgid "ZIP File"
-msgstr "Datoteka:"
+msgstr "ZIP Datoteka"
#: editor/project_export.cpp
msgid "Godot Game Pack"
@@ -9984,9 +9980,8 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "Zamijeni"
+msgstr "Zamijeni:"
#: editor/rename_dialog.cpp
msgid "Prefix:"
@@ -10167,9 +10162,8 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach Script"
-msgstr "Spoji sa skriptom:"
+msgstr "Odspoji Skriptu"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10204,14 +10198,12 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete %d nodes and any children?"
-msgstr "ObriÅ¡i kljuÄ(eve)"
+msgstr "ObriÅ¡i %d Ävorove(nodes) i njihove podÄvorove(children)?"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete %d nodes?"
-msgstr "ObriÅ¡i kljuÄ(eve)"
+msgstr "ObriÅ¡i %d Ävorove?"
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
@@ -10222,9 +10214,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "ObriÅ¡i kljuÄ(eve)"
+msgstr "ObriÅ¡i Ävor \"%s\"?"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -10490,14 +10481,12 @@ msgid "Select a Node"
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Path is empty."
-msgstr "Međuspremnik je prazan"
+msgstr "Međuspremnik je prazan."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Filename is empty."
-msgstr "Međuspremnik je prazan"
+msgstr "Naziv datoteke je prazan."
#: editor/script_create_dialog.cpp
msgid "Path is not local."
@@ -10623,14 +10612,12 @@ msgid "Bytes:"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Warning:"
-msgstr "Upozorenja"
+msgstr "Upozorenje:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Error:"
-msgstr "Zrcaljenje"
+msgstr "Greška:"
#: editor/script_editor_debugger.cpp
msgid "C++ Error"
@@ -10645,9 +10632,8 @@ msgid "C++ Source"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Source:"
-msgstr "Resurs"
+msgstr "Izvor:"
#: editor/script_editor_debugger.cpp
msgid "C++ Source:"
@@ -11441,23 +11427,20 @@ msgid "Members:"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Base Type:"
-msgstr "Promijeni tip %s"
+msgstr "Promijeni vrstu baze:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Nodes..."
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function..."
-msgstr "Funkcije:"
+msgstr "Dodaj funkciju..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "function_name"
-msgstr "Funkcije:"
+msgstr "ime_funkcije"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit its graph."
@@ -11480,9 +11463,8 @@ msgid "Cut Nodes"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Function"
-msgstr "Funkcije:"
+msgstr "Napravi Funkciju"
#: modules/visual_script/visual_script_editor.cpp
msgid "Refresh Graph"
@@ -11651,6 +11633,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11675,7 +11673,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12297,11 +12301,15 @@ msgstr ""
#: servers/visual/shader_language.cpp
msgid "Varyings can only be assigned in vertex function."
-msgstr ""
+msgstr "Varijacije se mogu dodijeliti samo u vertex funkciji."
#: servers/visual/shader_language.cpp
msgid "Constants cannot be modified."
-msgstr ""
+msgstr "Konstante se ne mogu mijenjati."
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr "Otvori datoteku"
#~ msgid "Replaced %d occurrence(s)."
#~ msgstr "Zamijenjeno %d pojavljivanja."
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index cac984d6d6..9f62027231 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -1593,6 +1593,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2938,8 +2958,7 @@ msgstr "Exportálási sablonok kezelése..."
msgid "Help"
msgstr "Súgó"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4345,7 +4364,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5170,27 +5188,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Vízszintes és függőleges segédvonalak létrehozása"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Forgatási pont áthelyezése"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "CanvasItem forgatása"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "CanvasItem forgatása"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Horgony áthelyezése"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "CanvasItem áthelyezése"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "CanvasItem átméretezése"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "CanvasItem méretezése"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "CanvasItem méretezése"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "CanvasItem áthelyezése"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "CanvasItem áthelyezése"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6444,14 +6485,24 @@ msgid "Move Points"
msgstr "Pontok mozgatása"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Forgatás"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Húzás: Forgatás"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Mind Mozgatása"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift + Ctrl: Skálázás"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Forgatás"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift + Ctrl: Skálázás"
@@ -6490,12 +6541,14 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Sokszög -> UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Sokszög és UV létrehozása"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV -> Sokszög"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Csontok szinkronizálása a sokszöggel"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6939,11 +6992,6 @@ 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 ""
@@ -6951,6 +6999,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Töréspontok"
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8032,6 +8085,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8538,6 +8597,11 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Node eltávolítva"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Node-ok duplikálása"
@@ -8555,6 +8619,11 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "A paraméter megváltozott"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9219,6 +9288,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9279,19 +9352,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Kezdeti exportálás hozzáadása..."
-
-#: 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 ""
@@ -9380,18 +9440,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Csomagfájl"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11800,6 +11848,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11824,7 +11888,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12461,6 +12531,28 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Move pivot"
+#~ msgstr "Forgatási pont áthelyezése"
+
+#~ msgid "Move anchor"
+#~ msgstr "Horgony áthelyezése"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "CanvasItem átméretezése"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Sokszög -> UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV -> Sokszög"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Kezdeti exportálás hozzáadása..."
+
+#~ msgid "Pack File"
+#~ msgstr "Csomagfájl"
+
#~ msgid ""
#~ "When exporting or deploying, the resulting executable will attempt to "
#~ "connect to the IP of this computer in order to be debugged."
diff --git a/editor/translations/id.po b/editor/translations/id.po
index 7e94f233c1..f27203f1d7 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -31,8 +31,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-08-12 08:00+0000\n"
-"Last-Translator: MonsterGila <fikrirazor@outlook.co.id>\n"
+"PO-Revision-Date: 2020-10-03 15:29+0000\n"
+"Last-Translator: zephyroths <ridho.hikaru@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/"
"godot/id/>\n"
"Language: id\n"
@@ -40,7 +40,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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -922,9 +922,8 @@ msgid "Signals"
msgstr "Sinyal"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Filter tile"
+msgstr "Filter sinyal"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1169,7 +1168,6 @@ msgid "Gold Sponsors"
msgstr "Sponsor Emas"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Silver Sponsors"
msgstr "Donatur Perak"
@@ -1496,7 +1494,7 @@ msgstr "Mengatur kembali Autoload-autoload"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr ""
+msgstr "Tidak dapat menambahkan autoload:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1617,6 +1615,37 @@ msgstr ""
"Aktifkan 'Impor Lainnya' di Pengaturan Proyek, atau matikan 'Driver Fallback "
"Enabled'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Platform target membutuhkan kompresi tekstur 'ETC' untuk GLES2. Aktifkan "
+"'Impor Lainnya' di Pengaturan Proyek."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Platform target membutuhkan kompresi tekstur 'ETC2' untuk GLES3. Aktifkan "
+"'Impor Lainnya 2' di Pengaturan Proyek."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Platform target membutuhkan kompressi tekstur 'ETC' untuk mengembalikan "
+"driver ke GLES2. \n"
+"Aktifkan 'Impor Lainnya' di Pengaturan Proyek, atau matikan 'Driver Fallback "
+"Enabled'."
+
#: 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
@@ -1658,7 +1687,6 @@ msgid "Node Dock"
msgstr "Dok Node"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
msgstr "Berkas Sistem"
@@ -2450,9 +2478,8 @@ msgid "Can't reload a scene that was never saved."
msgstr "Tidak bisa memuat ulang skena yang belum pernah disimpan."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "Simpan Skena"
+msgstr "Muat ulang scene yang sudah disimpan"
#: editor/editor_node.cpp
#, fuzzy
@@ -2815,6 +2842,13 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Saat pilihan ini diaktifkan, menggunakan 'one-click deploy' akan membuat "
+"file yang bisa dieksekusi mencoba untuk terhubung ke IP komputer ini, "
+"sehingga proyek yang sedang berajalan dapat didebug.\n"
+"Pilihan ini dimaksudkan untuk digunakan sebagai cara men-debug jarak jauh "
+"(biasanya menggunakan perangkat selular).\n"
+"Kamu tidak perlu mengaktifkan ini jika menggunakan GDScript debugger secara "
+"lokal."
#: editor/editor_node.cpp
#, fuzzy
@@ -2951,8 +2985,7 @@ msgstr "Kelola Templat Ekspor…"
msgid "Help"
msgstr "Bantuan"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4377,7 +4410,6 @@ msgid "Add Node to BlendTree"
msgstr "Tambah Node ke BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Node Dipindahkan"
@@ -5203,27 +5235,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Buat Panduan Horisontal dan Vertikal"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Pindahkan poros"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate %d CanvasItems"
msgstr "Putar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Pindahkan jangkar"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "Putar CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Pindahkan CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Ubah Ukuran CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale %d CanvasItems"
msgstr "Skalakan CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr "Skalakan CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Pindahkan CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Pindahkan CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6507,14 +6562,24 @@ msgid "Move Points"
msgstr "Geser Titik"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Putar"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Geser: Putar"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Geser Semua"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: Skala"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Putar"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: Skala"
@@ -6555,12 +6620,14 @@ msgid "Radius:"
msgstr "Radius:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Poligon->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Buat Poligon & UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->Poligon"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Konversikan menjadi Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7010,11 +7077,6 @@ msgstr "Penyorot Sintaks"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Pergi Ke"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Bilah Marka"
@@ -7022,6 +7084,11 @@ msgstr "Bilah Marka"
msgid "Breakpoints"
msgstr "Breakpoint"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Pergi Ke"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8105,6 +8172,15 @@ msgid "Paint Tile"
msgstr "Cat Tile"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift + Klik Kiri: Menggambar Garis\n"
+"Shift + Ctrl + Klik Kiri: Cat Persegi Panjang"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8631,6 +8707,11 @@ msgid "Add Node to Visual Shader"
msgstr "Tambah Node ke Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Node Dipindahkan"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Duplikat Node"
@@ -8648,6 +8729,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Tipe Input Visual Shader Berubah"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Tetapkan Nama Uniform"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Titik"
@@ -9366,6 +9452,10 @@ msgstr ""
"variasi, seragam, dan konstanta."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Khusus mode Fragmen / Cahaya) Fungsi skalar turunan."
@@ -9438,18 +9528,6 @@ msgid "Runnable"
msgstr "Dapat dijalankan"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Tambah ekspor awal..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Tambahkan patch sebelumnya..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Hapus entri penambalan '%s' dari daftar?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Hapus preset '%s'?"
@@ -9549,18 +9627,6 @@ msgstr ""
"(pisahkan dengan koma, contoh: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Tambalan"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Buat Tambalan"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Berkas Pack"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Fitur"
@@ -12081,6 +12147,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12113,8 +12195,14 @@ msgstr ""
"Atau kunjungi docs.godotengine.org untuk dokumentasi build Android."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Tak ada build apk yang dihasilkan di: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12865,6 +12953,42 @@ msgstr "Variasi hanya bisa ditetapkan dalam fungsi vertex."
msgid "Constants cannot be modified."
msgstr "Konstanta tidak dapat dimodifikasi."
+#~ msgid "Move pivot"
+#~ msgstr "Pindahkan poros"
+
+#~ msgid "Move anchor"
+#~ msgstr "Pindahkan jangkar"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Ubah Ukuran CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Poligon->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->Poligon"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Tambah ekspor awal..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Tambahkan patch sebelumnya..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Hapus entri penambalan '%s' dari daftar?"
+
+#~ msgid "Patches"
+#~ msgstr "Tambalan"
+
+#~ msgid "Make Patch"
+#~ msgstr "Buat Tambalan"
+
+#~ msgid "Pack File"
+#~ msgstr "Berkas Pack"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Tak ada build apk yang dihasilkan di: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Dok Impor dan Berkas Sistem"
diff --git a/editor/translations/is.po b/editor/translations/is.po
index b39913e3c6..446b94d017 100644
--- a/editor/translations/is.po
+++ b/editor/translations/is.po
@@ -1585,6 +1585,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2844,8 +2864,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4234,7 +4253,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5061,27 +5079,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6332,7 +6366,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6340,6 +6374,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6378,12 +6420,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Breyta Viðbót"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6824,16 +6867,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7923,6 +7966,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8446,6 +8495,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Duplicate Nodes"
msgstr "Tvíteknir lyklar"
@@ -8465,6 +8518,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9122,6 +9179,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9182,18 +9243,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9281,18 +9330,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11707,6 +11744,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11731,7 +11784,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/it.po b/editor/translations/it.po
index b16db7243d..435789e66e 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -59,7 +59,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-22 03:23+0000\n"
+"PO-Revision-Date: 2020-09-28 11:18+0000\n"
"Last-Translator: Mirko <miknsop@gmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot/it/>\n"
@@ -951,9 +951,8 @@ msgid "Signals"
msgstr "Segnali"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Filtra tiles"
+msgstr "Filtra segnali"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1646,6 +1645,37 @@ msgstr ""
"Attivare 'Import Etc' nelle impostazioni del progetto, oppure disattivare "
"'Driver Fallback Enabled'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"La piattaforma di destinazione richiede la compressione 'ETC' delle texture "
+"per GLES2. Attiva 'Import Etc' nelle impostazioni del progetto."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"La piattaforma di destinazione richiede la compressione 'ETC2' delle texture "
+"per GLES3. Attiva 'Import Etc 2' nelle impostazioni del progetto."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"La piattaforma di destinazione richiede la compressione 'ETC' delle texture "
+"per il fallback del driver a GLES2.\n"
+"Attivare 'Import Etc' nelle impostazioni del progetto, oppure disattivare "
+"'Driver Fallback Enabled'."
+
#: 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
@@ -1688,9 +1718,8 @@ msgid "Node Dock"
msgstr "Nodo"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "Filesystem"
+msgstr "Riquadro FileSystem"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2855,14 +2884,18 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Quando questa opzione è abilitata, usare il deploy one-click farà tentare "
+"l'eseguibile di connettersi all'indirizzo IP di questo computer permettendo "
+"il debug del progetto in esecuzione .\n"
+"L'intesa di questa opzione è quella di essere usata per il debug remoto "
+"(normalmente un dispositivo mobile).\n"
+"Non c'è bisogno di abilitarla se utilizzi il debugger GDScript normale."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "Piccola distribuzione con la rete FS"
+msgstr "Small Deploy con Filesystem della rete"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2871,74 +2904,67 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"Quando questa opzione è abilitata, l'esportazione o distribuzione produrrà "
-"un eseguibile minimale.\n"
-"Il filesystem sarà provvisto dal progetto via l'editor dal network.\n"
-"Su Android, la distribuzione utilizzerà il cavo USB per una performance "
-"migliore. Questa opzione incrementerà la velocità di testing per i giochi "
-"più complessi."
+"Quando questa impostazione è abilitata, usare il deploy one-click per "
+"Android esporterà soltanto un eseguibile senza i dati del progetto.\n"
+"Il filesystem sarà provvisto dal progetto dell'editor nella rete.\n"
+"Su Android, il deploy userà il cavo USB per performance migliori. Questa "
+"impostazione rende i progetti con asset pesanti più veloci."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "Forme di collisione visibili"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"Le forme di collisione e i nodi di raycast (per il 2D e 3D) saranno visibili "
-"nel gioco in esecuzione se l'opzione è attiva."
+"Quando questa opzione è abilitata, le forme di collisione ed i nodi raycast "
+"(per il 2D e 3D) sarrano visibili nel progetto in esecuzione."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "Navigazione Visibile"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"Le mesh e i poligoni di navigazione saranno visibili nel gioco in esecuzione "
-"se l'opzione è attiva."
+"Quando questa opzione è abilitata, le mesh di navigazione ed i poligoni "
+"saranno visibili nel progetto in esecuzione."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
-msgstr "Sincronizza cambiamenti scena"
+msgstr "Sincronizza Cambi Scena"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Quando questa opzione è attiva, qualsiasi cambiamento fatto alla scena "
-"nell'editor sarà replicato nel gioco in esecuzione.\n"
-"Quando usata in remoto su un dispositivo, sarà più efficiente con un "
-"filesystem in rete."
+"Quando questa opzione è abilitata, ogni modifica fatta alla scena "
+"nell'editor sarà replicata nel progetto in esecuzione.\n"
+"Quando usata in remoto su un dispositivo, si può aumentare l'efficacia "
+"abilitando l'opzione \"network filesystem\"."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
-msgstr "Sincronizza cambiamenti script"
+msgstr "Sincronizza Modifiche Script"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Quando questa opzione è attiva, qualsiasi script salvato verrà ricaricato "
-"nel gioco in esecuzione.\n"
-"Quando usata in remoto su un dispositivo, sarà più efficiente con un "
-"filesystem in rete."
+"Quando questa opzione è abilitata, qualsiasi script salvato sarà ricaricato "
+"nel progetto in esecuzione.\n"
+"Quando usato in remoto su un dispositivo, si potrà aumentarne l'efficacia "
+"abilitando anche l'opzione \"network filesystem\"."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -2993,8 +3019,7 @@ msgstr "Gestisci Modello d'Esportazione…"
msgid "Help"
msgstr "Aiuto"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3418,15 +3443,14 @@ msgid "Add Key/Value Pair"
msgstr "Aggiungi Coppia Chiave/Valore"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
-"Non sono stati trovati dei modelli di export eseguibili per questa "
-"piattaforma.\n"
-"Prego aggiungere un modello di export eseguibile nel menu export."
+"Nessuna esportazione eseguibile trovata per questa piattaforma.\n"
+"Per favore, aggiungi un preset eseguibile nel menù Export oppure definisci "
+"un preset già esistente come \"eseguibile\"."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -4429,7 +4453,6 @@ msgid "Add Node to BlendTree"
msgstr "Aggiungi Nodo al BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Nodo Spostato"
@@ -5264,27 +5287,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Crea Guide Orizzontali e Verticali"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Sposta pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "Ruota CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "Ruota CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Sposta punto di ancoraggio"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Sposta CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Ridimensiona CanvasItem"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "Scala CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Scala CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Sposta CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Sposta CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6576,14 +6622,24 @@ msgid "Move Points"
msgstr "Sposta Punti"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Ruota"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Trascina: Ruota"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Muovi Tutti"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: Scala"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Ruota"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: Scala"
@@ -6626,12 +6682,14 @@ msgid "Radius:"
msgstr "Raggio:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Poligono->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Crea Poligono e UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->Poligono"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Converti in Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7078,11 +7136,6 @@ msgstr "Evidenziatore di Sintassi"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Vai a"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Segnalibri"
@@ -7090,6 +7143,11 @@ msgstr "Segnalibri"
msgid "Breakpoints"
msgstr "Breakpoint"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Vai a"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7860,9 +7918,8 @@ msgid "New Animation"
msgstr "Nuova Animazione"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "Velocità (FPS):"
+msgstr "Velocità:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8181,6 +8238,15 @@ msgid "Paint Tile"
msgstr "Disegna tile"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift + LMB: Traccia una linea\n"
+"Shift + Ctrl + LMB: Colora il rettangolo"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8709,6 +8775,11 @@ msgid "Add Node to Visual Shader"
msgstr "Aggiungi Nodo a Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Nodo Spostato"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Duplica Nodi"
@@ -8726,6 +8797,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Tipo di Input Visual Shader Cambiato"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Imposta Nome Uniforme"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vertice"
@@ -9443,6 +9519,10 @@ msgstr ""
"dichiarare varianti, uniformi e costanti."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Solo modalità Fragment/Light) Fuzione derivata scalare."
@@ -9515,18 +9595,6 @@ msgid "Runnable"
msgstr "Eseguibile"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Aggiungi esportazione iniziale…"
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Aggiungi patch precedenti…"
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Eliminare patch '%s' dalla lista?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Eliminare preset '%s'?"
@@ -9627,18 +9695,6 @@ msgstr ""
"(separati da virgole, per sempio: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Patches"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Crea Patch"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "File Pacchetto"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Funzionalità"
@@ -10442,19 +10498,16 @@ msgid "Batch Rename"
msgstr "Rinomina in blocco"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "Sostituisci: "
+msgstr "Sostituisci:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "Prefisso"
+msgstr "Prefisso:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "Suffisso"
+msgstr "Suffisso:"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10501,9 +10554,9 @@ msgid "Per-level Counter"
msgstr "Contatore per Livello"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "Se impostato, il contatore si riavvia per ogni gruppo di nodi figlio"
+msgstr ""
+"Se impostato, il contatore si riavvierà per ciascun gruppo di nodi figlio."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10562,9 +10615,8 @@ msgid "Reset"
msgstr "Reset"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "Errore Espressione Regolare"
+msgstr "Errore Espressione Regolare:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -12164,6 +12216,22 @@ msgstr ""
"Mobile VR\"."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12199,8 +12267,14 @@ msgstr ""
"build Android."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Nessun apk build generato a: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12670,7 +12744,7 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "\"InterpolatedCamera\" è stata deprecata e sarà rimossa in Godot 4.0."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12978,6 +13052,42 @@ msgstr "Varyings può essere assegnato soltanto nella funzione del vertice."
msgid "Constants cannot be modified."
msgstr "Le constanti non possono essere modificate."
+#~ msgid "Move pivot"
+#~ msgstr "Sposta pivot"
+
+#~ msgid "Move anchor"
+#~ msgstr "Sposta punto di ancoraggio"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Ridimensiona CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Poligono->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->Poligono"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Aggiungi esportazione iniziale…"
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Aggiungi patch precedenti…"
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Eliminare patch '%s' dalla lista?"
+
+#~ msgid "Patches"
+#~ msgstr "Patches"
+
+#~ msgid "Make Patch"
+#~ msgstr "Crea Patch"
+
+#~ msgid "Pack File"
+#~ msgstr "File Pacchetto"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Nessun apk build generato a: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Filesystem e dock di importazione"
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index d1a368346d..8282aa0de2 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -36,7 +36,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-22 03:23+0000\n"
+"PO-Revision-Date: 2020-10-19 21:08+0000\n"
"Last-Translator: Wataru Onuki <bettawat@yahoo.co.jp>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/"
"godot/ja/>\n"
@@ -45,7 +45,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.3-dev\n"
+"X-Generator: Weblate 4.3.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -927,9 +927,8 @@ msgid "Signals"
msgstr "シグナル"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "タイルを絞り込む"
+msgstr "シグナルを絞り込む"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1619,6 +1618,37 @@ msgstr ""
"プロジェクト設定より 'Import Etc' をオンã«ã™ã‚‹ã‹ã€'Fallback To Gles 2' をオフ"
"ã«ã—ã¦ãã ã•ã„。"
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"対象プラットフォームã§ã¯GLES2ã®ãŸã‚ã«'ETC'テクスãƒãƒ£åœ§ç¸®ãŒå¿…è¦ã§ã™ã€‚プロジェ"
+"クト設定より 'Import Etc' をオンã«ã—ã¦ãã ã•ã„。"
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"対象プラットフォームã§ã¯GLES3ã®ãŸã‚ã«'ETC2'テクスãƒãƒ£åœ§ç¸®ãŒå¿…è¦ã§ã™ã€‚プロジェ"
+"クト設定より 'Import Etc 2' をオンã«ã—ã¦ãã ã•ã„。"
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"対象プラットフォームã§ã¯GLES2ã¸ãƒ•ã‚©ãƒ¼ãƒ«ãƒãƒƒã‚¯ã™ã‚‹ãŸã‚ã«'ETC'テクスãƒãƒ£åœ§ç¸®ãŒ"
+"å¿…è¦ã§ã™ã€‚\n"
+"プロジェクト設定より 'Import Etc' をオンã«ã™ã‚‹ã‹ã€'Fallback To Gles 2' をオフ"
+"ã«ã—ã¦ãã ã•ã„。"
+
#: 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
@@ -1661,9 +1691,8 @@ msgid "Node Dock"
msgstr "ノードドック"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "ファイルシステム"
+msgstr "ファイルシステム ドック"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2817,14 +2846,18 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€ãƒ¯ãƒ³ã‚¯ãƒªãƒƒã‚¯ãƒ»ãƒ‡ãƒ—ロイをã™ã‚‹ã¨ãã«å®Ÿè¡Œãƒ•ã‚¡ã‚¤ãƒ«"
+"ãŒã“ã®ã‚³ãƒ³ãƒ”ュータ㮠IP ã«æŽ¥ç¶šã—よã†ã¨ã™ã‚‹ã®ã§ã€å®Ÿè¡Œä¸­ã®ãƒ—ロジェクトをデãƒãƒƒ"
+"ã‚°ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚\n"
+"ã“ã®ã‚ªãƒ—ションã¯ã€ãƒªãƒ¢ãƒ¼ãƒˆãƒ‡ãƒãƒƒã‚°ã«ä½¿ç”¨ã™ã‚‹ã“ã¨ã‚’æ„図ã—ã¦ã„ã¾ã™ (通常ã¯ãƒ¢ãƒ"
+"イルデãƒã‚¤ã‚¹ã«ãŠã„ã¦)。\n"
+"ローカル㧠GDScript デãƒãƒƒã‚¬ã‚’使用ã™ã‚‹ãŸã‚ã«ã¯æœ‰åŠ¹ã«ã™ã‚‹å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“。"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã§ã‚¹ãƒ¢ãƒ¼ãƒ«ãƒ‡ãƒ—ロイ"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2833,46 +2866,42 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã¾ãŸã¯ãƒ‡ãƒ—ロイ時ã«æœ€å°é™ã®å®Ÿè¡Œå¯èƒ½"
-"ファイルãŒç”Ÿæˆã•ã‚Œã¾ã™ã€‚\n"
-"ファイルシステムã¯ã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ä¸Šã®ã‚¨ãƒ‡ã‚£ã‚¿ã«ã‚ˆã£ã¦ãƒ—ロジェクトã‹ã‚‰æä¾›ã•ã‚Œ"
-"ã¾ã™ã€‚\n"
-"Androidã§ã¯USBケーブルã®åˆ©ç”¨ã§ã‚ˆã‚Šé«˜é€Ÿã«ãªã‚Šã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã¯å¤§ããªã‚²ãƒ¼"
-"ムã®ãƒ†ã‚¹ãƒˆã‚’高速化ã§ãã¾ã™ã€‚"
+"ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€Androidã¸ã®ãƒ¯ãƒ³ã‚¯ãƒªãƒƒã‚¯ãƒ»ãƒ‡ãƒ—ロイ時ã«ãƒ—ロジェク"
+"ト用データ無ã—ã®å®Ÿè¡Œå¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«ã®ã¿ã‚’エクスãƒãƒ¼ãƒˆã—ã¾ã™ã€‚\n"
+"ファイルシステムã¯ã€ã‚¨ãƒ‡ã‚£ã‚¿ã«ã‚ˆã£ã¦ãƒ—ロジェクトã‹ã‚‰ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚’通ã˜ã¦ä¾›çµ¦"
+"ã•ã‚Œã¾ã™ã€‚\n"
+"Androidã§ã¯ã€ãƒ‡ãƒ—ロイã¯USBケーブルã®åˆ©ç”¨ã§ã•ã‚‰ã«é«˜é€Ÿã«ãªã‚Šã¾ã™ã€‚ã“ã®ã‚ªãƒ—ショ"
+"ンã¯å¤§ããªã‚¢ã‚»ãƒƒãƒˆã®ã‚るプロジェクトã§ãƒ†ã‚¹ãƒˆã‚’高速化ã§ãã¾ã™ã€‚"
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "コリジョン形状ã®è¡¨ç¤º"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€ã‚³ãƒªã‚¸ãƒ§ãƒ³å½¢çŠ¶ã¨ãƒ¬ã‚¤ã‚­ãƒ£ã‚¹ãƒˆãƒŽãƒ¼ãƒ‰ãŒã€ã‚²ãƒ¼ãƒ å®Ÿ"
-"行中ã«ã‚‚表示ã•ã‚Œã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚"
+"ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€ã‚³ãƒªã‚¸ãƒ§ãƒ³å½¢çŠ¶ã¨ãƒ¬ã‚¤ã‚­ãƒ£ã‚¹ãƒˆãƒŽãƒ¼ãƒ‰ (2DãŠã‚ˆã³"
+"3D) ãŒã€ã‚²ãƒ¼ãƒ å®Ÿè¡Œä¸­ã«ã‚‚表示ã•ã‚Œã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚"
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "ナビゲーションã®è¡¨ç¤º"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€ãƒŠãƒ“ゲーションメッシュãŒã€ã‚²ãƒ¼ãƒ å®Ÿè¡Œä¸­ã«ã‚‚表示"
-"ã•ã‚Œã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚"
+"ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€ãƒŠãƒ“ゲーションメッシュãŠã‚ˆã³ãƒãƒªã‚´ãƒ³ãŒã€ã‚²ãƒ¼ãƒ "
+"実行中ã«ã‚‚表示ã•ã‚Œã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "シーンã®å¤‰æ›´ã‚’åŒæœŸ"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
@@ -2880,25 +2909,25 @@ msgid ""
"filesystem option is enabled."
msgstr ""
"ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€ã‚¨ãƒ‡ã‚£ã‚¿ã‹ã‚‰ã‚·ãƒ¼ãƒ³ã«åŠ ãˆã‚‰ã‚ŒãŸå¤‰æ›´ãŒã€å®Ÿè¡Œä¸­ã®"
-"ゲームã«å映ã•ã‚Œã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚\n"
-"リモート実行ã®å ´åˆã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã‚’使ã†ã¨ã‚ˆã‚ŠåŠ¹æžœçš„ã§ã™ã€‚"
+"プロジェクトã«å映ã•ã‚Œã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚\n"
+"リモートã®ãƒ‡ãƒã‚¤ã‚¹ä¸Šã§ä½¿ç”¨ã™ã‚‹å ´åˆã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã®ã‚ªãƒ—ション"
+"も有効ã§ã‚ã‚Œã°ã‚ˆã‚ŠåŠ¹çŽ‡çš„ã«ãªã‚Šã¾ã™ã€‚"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
msgstr "スクリプトã®å¤‰æ›´ã‚’åŒæœŸ"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€ä¿å­˜ã—ãŸã‚¹ã‚¯ãƒªãƒ—トãŒã€å®Ÿè¡Œä¸­ã®ã‚²ãƒ¼ãƒ ã«å映ã•ã‚Œ"
-"るよã†ã«ãªã‚Šã¾ã™ã€‚\n"
-"リモート実行ã®å ´åˆã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã‚’使ã†ã¨ã‚ˆã‚ŠåŠ¹æžœçš„ã§ã™ã€‚"
+"ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€ä¿å­˜ã—ãŸã‚¹ã‚¯ãƒªãƒ—トãŒã€å®Ÿè¡Œä¸­ã®ãƒ—ロジェクトã§å†"
+"読ã¿è¾¼ã¿ã•ã‚Œã¾ã™ã€‚\n"
+"リモートã®ãƒ‡ãƒã‚¤ã‚¹ä¸Šã§ä½¿ç”¨ã™ã‚‹å ´åˆã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã®ã‚ªãƒ—ション"
+"も有効ã§ã‚ã‚Œã°ã‚ˆã‚ŠåŠ¹çŽ‡çš„ã«ãªã‚Šã¾ã™ã€‚"
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -2952,8 +2981,7 @@ msgstr "エクスãƒãƒ¼ãƒˆãƒ†ãƒ³ãƒ—レートã®ç®¡ç†..."
msgid "Help"
msgstr "ヘルプ"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3375,14 +3403,14 @@ msgid "Add Key/Value Pair"
msgstr "キー/値ã®ãƒšã‚¢ã‚’追加"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
"ã“ã®ãƒ—ラットフォームã§å®Ÿè¡Œå¯èƒ½ãªã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆãƒ—リセットãŒã‚ã‚Šã¾ã›ã‚“。\n"
-"エクスãƒãƒ¼ãƒˆãƒ¡ãƒ‹ãƒ¥ãƒ¼ã«å®Ÿè¡Œå¯èƒ½ãªãƒ—リセットを追加ã—ã¦ãã ã•ã„。"
+"エクスãƒãƒ¼ãƒˆãƒ¡ãƒ‹ãƒ¥ãƒ¼ã«å®Ÿè¡Œå¯èƒ½ãªãƒ—リセットを追加ã™ã‚‹ã‹ã€æ—¢å­˜ã®ãƒ—リセットを実"
+"è¡Œå¯èƒ½ã«ã—ã¦ãã ã•ã„。"
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -4375,7 +4403,6 @@ msgid "Add Node to BlendTree"
msgstr "BlendTreeã«ãƒŽãƒ¼ãƒ‰ã‚’追加"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "ノードを移動"
@@ -5204,27 +5231,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "水平垂直ガイドを作æˆ"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "ピボットを移動"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "CanvasItemを回転"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "CanvasItemを回転"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "アンカーを移動"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "CanvasItemを移動"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "CanvasItemをリサイズ"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "キャンãƒã‚¹ã‚¢ã‚¤ãƒ†ãƒ ã®æ‹¡å¤§/縮å°"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "キャンãƒã‚¹ã‚¢ã‚¤ãƒ†ãƒ ã®æ‹¡å¤§/縮å°"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "CanvasItemを移動"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "CanvasItemを移動"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6502,14 +6552,24 @@ msgid "Move Points"
msgstr "ãƒã‚¤ãƒ³ãƒˆã‚’移動"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: 回転"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "ドラッグ: 回転"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: ã™ã¹ã¦ç§»å‹•"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: スケール"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: 回転"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: スケール"
@@ -6550,12 +6610,14 @@ msgid "Radius:"
msgstr "åŠå¾„:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "ãƒãƒªã‚´ãƒ³->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "ãƒãƒªã‚´ãƒ³ã¨UVを生æˆ"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->ãƒãƒªã‚´ãƒ³"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Polygon2Dã«å¤‰æ›ã™ã‚‹"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7005,11 +7067,6 @@ 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 "ブックマーク"
@@ -7017,6 +7074,11 @@ msgstr "ブックマーク"
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7783,9 +7845,8 @@ msgid "New Animation"
msgstr "æ–°è¦ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "速度(FPS):"
+msgstr "速度:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8105,6 +8166,15 @@ msgid "Paint Tile"
msgstr "タイルをペイント"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+左マウスボタン: ç›´ç·šã«æã\n"
+"Shift+Ctrl+左マウスボタン: 長方形ペイント"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8630,6 +8700,11 @@ msgid "Add Node to Visual Shader"
msgstr "ビジュアルシェーダã«ãƒŽãƒ¼ãƒ‰ã‚’追加"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "ノードを移動"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "ノードを複製"
@@ -8647,6 +8722,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "ビジュアルシェーダã®å…¥åŠ›ã‚¿ã‚¤ãƒ—ãŒå¤‰æ›´ã•ã‚Œã¾ã—ãŸ"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "統一åを設定"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "頂点"
@@ -9350,6 +9430,10 @@ msgstr ""
"æ•°ã€uniform変数ã€å®šæ•°ã‚’宣言ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(フラグメント/ライトモードã®ã¿)スカラー導関数。"
@@ -9420,18 +9504,6 @@ msgid "Runnable"
msgstr "実行å¯èƒ½"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "åˆå›žã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã‚’追加…"
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "å‰å›žã®ãƒ‘ッãƒã‚’追加…"
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "パッム'%s' をリストã‹ã‚‰å‰Šé™¤ã—ã¾ã™ã‹?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "プリセット '%s' を削除ã—ã¾ã™ã‹?"
@@ -9534,18 +9606,6 @@ msgstr ""
"(コンマã§åŒºåˆ‡ã‚‹ã€ 例: *.json,*.txt,docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "パッãƒ"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "パッãƒç”Ÿæˆ"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "パックファイル"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "特徴"
@@ -10345,19 +10405,16 @@ msgid "Batch Rename"
msgstr "åå‰ã®ä¸€æ‹¬å¤‰æ›´"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "ç½®æ›: "
+msgstr "ç½®æ›:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "プレフィックス"
+msgstr "接頭辞:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "サフィックス"
+msgstr "接尾辞:"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10404,9 +10461,8 @@ msgid "Per-level Counter"
msgstr "レベルã”ã¨ã®ã‚«ã‚¦ãƒ³ã‚¿ãƒ¼"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "設定ã™ã‚‹ã¨ã€å­ãƒŽãƒ¼ãƒ‰ã®ã‚°ãƒ«ãƒ¼ãƒ—ã”ã¨ã«ã‚«ã‚¦ãƒ³ã‚¿ãŒå†èµ·å‹•ã—ã¾ã™"
+msgstr "設定ã™ã‚‹ã¨ã€å­ãƒŽãƒ¼ãƒ‰ã®ã‚°ãƒ«ãƒ¼ãƒ—ã”ã¨ã«ã‚«ã‚¦ãƒ³ã‚¿ãŒå†èµ·å‹•ã—ã¾ã™ã€‚"
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10465,9 +10521,8 @@ msgid "Reset"
msgstr "リセット"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "æ­£è¦è¡¨ç¾ã‚¨ãƒ©ãƒ¼"
+msgstr "æ­£è¦è¡¨ç¾ã‚¨ãƒ©ãƒ¼:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -11114,7 +11169,7 @@ msgstr "CSVファイルã«ãƒªã‚¹ãƒˆã‚’エクスãƒãƒ¼ãƒˆ"
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
-msgstr "リソースã®ãƒ‘ス(ResourcePath)"
+msgstr "リソース パス"
#: editor/script_editor_debugger.cpp
msgid "Type"
@@ -12060,6 +12115,22 @@ msgstr ""
"ãªã‚Šã¾ã™ã€‚"
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12094,8 +12165,14 @@ msgstr ""
"ã„。"
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "ビルドAPKã¯ç”Ÿæˆã•ã‚Œã¦ã„ã¾ã›ã‚“: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12548,7 +12625,7 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "InterpolatedCamera ã¯å»ƒæ­¢äºˆå®šã§ã‚ã‚Šã€Godot 4.0ã§é™¤åŽ»ã•ã‚Œã¾ã™ã€‚"
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12794,9 +12871,9 @@ msgid ""
"Use a container as child (VBox, HBox, etc.), or a Control and set the custom "
"minimum size manually."
msgstr ""
-"ScrollContainer ã¯å­ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ã²ã¨ã¤ã®ã¿ã§å‹•ä½œã™ã‚‹ã‚ˆã†ã«ãªã£ã¦ã„ã¾ã™ã€‚\n"
-"コンテナ (VBox, HBoxãªã©) ã‚’å­ã¨ã™ã‚‹ã‹ã€ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ã‚’カスタム最å°ã‚µã‚¤ã‚ºã‚’手"
-"動設定ã—ã¦ä½¿ç”¨ã—ã¦ãã ã•ã„。"
+"ScrollContainer ã¯ã²ã¨ã¤ã®å­Controlã¨åˆã‚ã›ã¦å‹•ä½œã™ã‚‹ã‚ˆã†ã«ãªã£ã¦ã„ã¾ã™ã€‚\n"
+"コンテナ (VBox, HBoxãªã©) ã‚’å­ã¨ã™ã‚‹ã‹ã€Controlをカスタム最å°ã‚µã‚¤ã‚ºã‚’手動設定"
+"ã—ã¦ä½¿ç”¨ã—ã¦ãã ã•ã„。"
#: scene/gui/tree.cpp
msgid "(Other)"
@@ -12854,6 +12931,42 @@ msgstr "Varying変数ã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã
msgid "Constants cannot be modified."
msgstr "定数ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。"
+#~ msgid "Move pivot"
+#~ msgstr "ピボットを移動"
+
+#~ msgid "Move anchor"
+#~ msgstr "アンカーを移動"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "CanvasItemをリサイズ"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "ãƒãƒªã‚´ãƒ³->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->ãƒãƒªã‚´ãƒ³"
+
+#~ msgid "Add initial export..."
+#~ msgstr "åˆå›žã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã‚’追加…"
+
+#~ msgid "Add previous patches..."
+#~ msgstr "å‰å›žã®ãƒ‘ッãƒã‚’追加…"
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "パッム'%s' をリストã‹ã‚‰å‰Šé™¤ã—ã¾ã™ã‹?"
+
+#~ msgid "Patches"
+#~ msgstr "パッãƒ"
+
+#~ msgid "Make Patch"
+#~ msgstr "パッãƒç”Ÿæˆ"
+
+#~ msgid "Pack File"
+#~ msgstr "パックファイル"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "ビルドAPKã¯ç”Ÿæˆã•ã‚Œã¦ã„ã¾ã›ã‚“: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "ファイルシステムã¨ã‚¤ãƒ³ãƒãƒ¼ãƒˆãƒ‰ãƒƒã‚¯"
diff --git a/editor/translations/ka.po b/editor/translations/ka.po
index a59a42333f..da05c4d847 100644
--- a/editor/translations/ka.po
+++ b/editor/translations/ka.po
@@ -1641,6 +1641,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2927,8 +2947,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4342,7 +4361,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5186,27 +5204,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Move %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6474,7 +6508,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6482,6 +6516,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6520,12 +6562,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "შექმნáƒ"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6980,11 +7023,6 @@ 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 ""
@@ -6993,6 +7031,11 @@ msgstr ""
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8094,6 +8137,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8637,6 +8686,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "მáƒáƒ¨áƒáƒ áƒ”ბáƒ"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ¡áƒáƒ¦áƒ”ბების áƒáƒ¡áƒšáƒ˜áƒ¡ შექმნáƒ"
@@ -8655,6 +8709,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9322,6 +9380,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9382,19 +9444,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "სáƒáƒ§áƒ•áƒáƒ áƒšáƒ”ბი:"
-
-#: 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 ""
@@ -9482,18 +9531,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11939,6 +11976,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11963,7 +12016,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12604,6 +12663,10 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "სáƒáƒ§áƒ•áƒáƒ áƒšáƒ”ბი:"
+
#~ msgid "Replaced %d occurrence(s)."
#~ msgstr "შეცვლილირ%d დáƒáƒ›áƒ—ხვევები."
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index d39f172539..267d5682be 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -19,12 +19,13 @@
# Myeongjin Lee <aranet100@gmail.com>, 2020.
# Doyun Kwon <caen4516@gmail.com>, 2020.
# Jun Hyung Shin <shmishmi79@gmail.com>, 2020.
+# Yongjin Jo <wnrhd114@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-16 18:09+0000\n"
-"Last-Translator: Ch. <ccwpc@hanmail.net>\n"
+"PO-Revision-Date: 2020-10-05 01:02+0000\n"
+"Last-Translator: Yongjin Jo <wnrhd114@gmail.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/"
"godot/ko/>\n"
"Language: ko\n"
@@ -913,9 +914,8 @@ msgid "Signals"
msgstr "시그ë„"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "íƒ€ì¼ í•„í„°"
+msgstr "ì‹œê·¸ë„ í•„í„°"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1604,6 +1604,37 @@ msgstr ""
"프로ì íŠ¸ 설정ì—ì„œ 'Import Etc' ì„¤ì •ì„ í™œì„±í™” 하거나, 'Driver Fallback "
"Enabled' ì„¤ì •ì„ ë¹„í™œì„±í™” 하세요."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"ëŒ€ìƒ í”Œëž«í¼ì—ì„œ GLES2 ìš© 'ETC' í…스처 ì••ì¶•ì´ í•„ìš”í•©ë‹ˆë‹¤. 프로ì íŠ¸ 설정ì—ì„œ "
+"'Import Etc' ì„¤ì •ì„ ì¼œì„¸ìš”."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"ëŒ€ìƒ í”Œëž«í¼ì—ì„œ GLES3 ìš© 'ETC2' í…스처 ì••ì¶•ì´ í•„ìš”í•©ë‹ˆë‹¤. 프로ì íŠ¸ 설정ì—ì„œ "
+"'Import Etc 2' ì„¤ì •ì„ ì¼œì„¸ìš”."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"ëŒ€ìƒ í”Œëž«í¼ì—ì„œ ë“œë¼ì´ë²„ê°€ GLES2ë¡œ í´ë°±í•˜ê¸° 위해 'ETC' í…스처 ì••ì¶•ì´ í•„ìš”í•©ë‹ˆ"
+"다.\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
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
@@ -1645,9 +1676,8 @@ msgid "Node Dock"
msgstr "노드 ë„킹"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "íŒŒì¼ ì‹œìŠ¤í…œ"
+msgstr "íŒŒì¼ ì‹œìŠ¤í…œ ë…"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2928,8 +2958,7 @@ msgstr "내보내기 템플릿 관리..."
msgid "Help"
msgstr "ë„움ë§"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4345,7 +4374,6 @@ msgid "Add Node to BlendTree"
msgstr "BlendTreeì— ë…¸ë“œ 추가"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "노드 ì´ë™ë¨"
@@ -5172,27 +5200,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "ìˆ˜í‰ ë° ìˆ˜ì§ ê°€ì´ë“œ 만들기"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "피벗 ì´ë™"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate %d CanvasItems"
msgstr "CanvasItem 회전"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "앵커 ì´ë™"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "CanvasItem 회전"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "CanvasItem ì´ë™"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "CanvasItem í¬ê¸° ì¡°ì ˆ"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "CanvasItem 규모"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "CanvasItem 규모"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "CanvasItem ì´ë™"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "CanvasItem ì´ë™"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6461,14 +6512,24 @@ msgid "Move Points"
msgstr "ì  ì´ë™"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: 회전"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "드래그: 회전"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: ëª¨ë‘ ì´ë™"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: í¬ê¸° ì¡°ì ˆ"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: 회전"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: í¬ê¸° ì¡°ì ˆ"
@@ -6509,12 +6570,14 @@ msgid "Radius:"
msgstr "반지름:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "í´ë¦¬ê³¤->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "í´ë¦¬ê³¤ & UV 만들기"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->í´ë¦¬ê³¤"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Polygon2D로 변환"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6962,11 +7025,6 @@ 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 "ë¶ë§ˆí¬"
@@ -6974,6 +7032,11 @@ msgstr "ë¶ë§ˆí¬"
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8060,6 +8123,15 @@ msgid "Paint Tile"
msgstr "íƒ€ì¼ ì¹ í•˜ê¸°"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+ìš°í´ë¦­: ì„  그리기\n"
+"Shift+Ctrl+ìš°í´ë¦­: ì‚¬ê° ì˜ì—­ 페ì¸íŠ¸"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8582,6 +8654,11 @@ msgid "Add Node to Visual Shader"
msgstr "노드를 비주얼 ì…°ì´ë”ì— ì¶”ê°€"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "노드 ì´ë™ë¨"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "노드 복제"
@@ -8599,6 +8676,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "비주얼 ì…°ì´ë” ìž…ë ¥ 유형 변경ë¨"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Uniform ì´ë¦„ 설정"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "꼭짓ì "
@@ -9296,6 +9378,10 @@ msgstr ""
"수 있습니다."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(프래그먼트/조명 모드만 가능) ìŠ¤ì¹¼ë¼ ë¯¸ë¶„ 함수."
@@ -9358,18 +9444,6 @@ msgid "Runnable"
msgstr "실행가능"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "초기 내보내기 추가..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "ì´ì „ 패치 추가..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "'%s'ì„(를) 패치 목ë¡ì—ì„œ 삭제할까요?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "'%s' í”„ë¦¬ì…‹ì„ ì‚­ì œí• ê¹Œìš”?"
@@ -9467,18 +9541,6 @@ msgstr ""
"(쉼표로 구분, 예: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "패치"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "패치 만들기"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "팩 파ì¼"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "기능"
@@ -11975,6 +12037,22 @@ msgstr ""
"니다."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12007,8 +12085,14 @@ msgstr ""
"ë˜ëŠ” docs.godotengine.orgì—ì„œ 안드로ì´ë“œ 빌드 문서를 찾아 보세요."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "ì—¬ê¸°ì— ë¹Œë“œ apk를 만들지 ì•ŠìŒ: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12746,6 +12830,42 @@ msgstr "Varyingì€ ê¼­ì§“ì  í•¨ìˆ˜ì—만 지정할 수 있습니다."
msgid "Constants cannot be modified."
msgstr "ìƒìˆ˜ëŠ” 수정할 수 없습니다."
+#~ msgid "Move pivot"
+#~ msgstr "피벗 ì´ë™"
+
+#~ msgid "Move anchor"
+#~ msgstr "앵커 ì´ë™"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "CanvasItem í¬ê¸° ì¡°ì ˆ"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "í´ë¦¬ê³¤->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->í´ë¦¬ê³¤"
+
+#~ msgid "Add initial export..."
+#~ msgstr "초기 내보내기 추가..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "ì´ì „ 패치 추가..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "'%s'ì„(를) 패치 목ë¡ì—ì„œ 삭제할까요?"
+
+#~ msgid "Patches"
+#~ msgstr "패치"
+
+#~ msgid "Make Patch"
+#~ msgstr "패치 만들기"
+
+#~ msgid "Pack File"
+#~ msgstr "팩 파ì¼"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "ì—¬ê¸°ì— ë¹Œë“œ apk를 만들지 ì•ŠìŒ: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "íŒŒì¼ ì‹œìŠ¤í…œê³¼ 가져오기 ë…"
diff --git a/editor/translations/lt.po b/editor/translations/lt.po
index c723a4ebb5..ce1f7b4a6a 100644
--- a/editor/translations/lt.po
+++ b/editor/translations/lt.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-22 03:23+0000\n"
+"PO-Revision-Date: 2020-09-28 11:18+0000\n"
"Last-Translator: Kornelijus TvarijanaviÄius <kornelitvari@protonmail.com>\n"
"Language-Team: Lithuanian <https://hosted.weblate.org/projects/godot-engine/"
"godot/lt/>\n"
@@ -107,7 +107,6 @@ msgid "Mirror"
msgstr "AtspindÄ—ti"
#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
-#, fuzzy
msgid "Time:"
msgstr "TrukmÄ—:"
@@ -224,9 +223,8 @@ msgid "Animation Playback Track"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation length (frames)"
-msgstr "Animacija"
+msgstr "Animacijos trukmÄ— (kadrais)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
@@ -448,9 +446,8 @@ msgid "Add Transform Track Key"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track Key"
-msgstr "Animacija: Pridėti Takelį"
+msgstr "Pridėti Takelį"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
@@ -1594,6 +1591,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2883,8 +2900,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4310,7 +4326,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "Naujas pavadinimas:"
@@ -5160,27 +5175,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Move %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6444,7 +6475,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6452,6 +6483,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6490,12 +6529,14 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr ""
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Keisti Poligono SkalÄ™"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Keisti Poligono SkalÄ™"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6952,11 +6993,6 @@ 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 ""
@@ -6965,6 +7001,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Sukurti"
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8067,6 +8108,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8612,6 +8659,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Naujas pavadinimas:"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "Duplikuoti"
@@ -8630,6 +8682,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9293,6 +9349,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9354,19 +9414,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "MÄ—gstamiausi:"
-
-#: 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 ""
@@ -9455,18 +9502,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11912,6 +11947,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11936,7 +11987,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12581,6 +12638,10 @@ msgid "Constants cannot be modified."
msgstr ""
#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "MÄ—gstamiausi:"
+
+#, fuzzy
#~ msgid "Brief Description"
#~ msgstr "Aprašymas:"
diff --git a/editor/translations/lv.po b/editor/translations/lv.po
index faf22e8f4e..6fc7c196e7 100644
--- a/editor/translations/lv.po
+++ b/editor/translations/lv.po
@@ -1591,6 +1591,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2843,8 +2863,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4225,7 +4244,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5038,27 +5056,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6301,7 +6335,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6309,6 +6343,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6347,12 +6389,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Izveidot"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6799,11 +6842,6 @@ 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 ""
@@ -6812,6 +6850,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Izveidot"
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7910,6 +7953,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8443,6 +8492,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Mezgls Noņemts"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "Dublicēt atslēgvietnes"
@@ -8461,6 +8515,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9116,6 +9174,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9176,18 +9238,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Pievienot sÄkuma eksportu..."
-
-#: 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 ""
@@ -9275,18 +9325,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11705,6 +11743,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11729,7 +11783,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12367,6 +12427,9 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Add initial export..."
+#~ msgstr "Pievienot sÄkuma eksportu..."
+
#, fuzzy
#~ msgid "Brief Description"
#~ msgstr "Apraksts:"
diff --git a/editor/translations/mi.po b/editor/translations/mi.po
index d0e967f5bd..cfa15d7032 100644
--- a/editor/translations/mi.po
+++ b/editor/translations/mi.po
@@ -1541,6 +1541,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2792,8 +2812,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4174,7 +4193,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -4987,27 +5005,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6246,7 +6280,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6254,6 +6288,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6292,11 +6334,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6738,16 +6780,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7825,6 +7867,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8326,6 +8374,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8343,6 +8395,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -8997,6 +9053,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9057,18 +9117,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9156,18 +9204,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11556,6 +11592,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11580,7 +11632,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/ml.po b/editor/translations/ml.po
index 25ae499eac..0fc2207a60 100644
--- a/editor/translations/ml.po
+++ b/editor/translations/ml.po
@@ -1551,6 +1551,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2804,8 +2824,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4186,7 +4205,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5002,27 +5020,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6262,7 +6296,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6270,6 +6304,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6308,11 +6350,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6754,16 +6796,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7841,6 +7883,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8342,6 +8390,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8359,6 +8411,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9013,6 +9069,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9073,18 +9133,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9172,18 +9220,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11573,6 +11609,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11597,7 +11649,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/mr.po b/editor/translations/mr.po
index c17092697d..8a4f7da346 100644
--- a/editor/translations/mr.po
+++ b/editor/translations/mr.po
@@ -1548,6 +1548,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2799,8 +2819,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4181,7 +4200,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -4994,27 +5012,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6253,7 +6287,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6261,6 +6295,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6299,11 +6341,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6745,16 +6787,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7832,6 +7874,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8333,6 +8381,11 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "नोड काढला"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8350,6 +8403,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9004,6 +9061,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9064,18 +9125,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9163,18 +9212,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11563,6 +11600,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11587,7 +11640,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/ms.po b/editor/translations/ms.po
index 19d36c70cd..fcafe6a26c 100644
--- a/editor/translations/ms.po
+++ b/editor/translations/ms.po
@@ -1601,6 +1601,37 @@ msgstr ""
"Aktifkan 'Import Etc' dalam Tetapan Projek, atau nyahaktifkan 'Driver "
"Fallback Enabled'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Platform sasaran memerlukan pemampatan tekstur 'ETC' untuk GLES2. Aktifkan "
+"'Import Etc' dalam Tetapan Projek."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Platform sasaran memerlukan pemampatan tekstur 'ETC2' untuk GLES3. Aktifkan "
+"'Import Etc 2' dalam Tetapan Projek."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Platform sasaran memerlukan pemampatan tekstur 'ETC' untuk sandaran pemandu "
+"ke GLES2.\n"
+"Aktifkan 'Import Etc' dalam Tetapan Projek, atau nyahaktifkan 'Driver "
+"Fallback Enabled'."
+
#: 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
@@ -2891,8 +2922,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4275,7 +4305,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5093,27 +5122,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Move %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6357,7 +6402,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6365,6 +6410,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6403,11 +6456,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6849,16 +6902,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7943,6 +7996,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8450,6 +8509,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Duplicate Nodes"
msgstr "Anim Menduakan Kunci"
@@ -8469,6 +8532,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9123,6 +9190,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9183,18 +9254,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9282,18 +9341,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11693,6 +11740,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11717,7 +11780,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index 33758ee5cd..f8862919b2 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-22 06:40+0000\n"
+"PO-Revision-Date: 2020-10-09 05:49+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"
@@ -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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1675,6 +1675,37 @@ msgstr ""
"Aktiver 'Importer Etc' i Prosjektinnstillinger, eller deaktiver "
"'Drivertilbakefall Aktivert'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"MÃ¥lplatform krever 'ETC' teksturkomprimering for GLES2. Aktiver 'Importer "
+"Etc' i Prosjektinnstillinger."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"MÃ¥lplatform krever 'ETC' teksturkomprimering for GLES3. Aktiver 'Importer "
+"Etc 2' i Prosjektinnstillinger."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"MÃ¥lplatform krever 'ETC' teksturkomprimering for drivertilbakefallet til "
+"GLES2.\n"
+"Aktiver 'Importer Etc' i Prosjektinnstillinger, eller deaktiver "
+"'Drivertilbakefall Aktivert'."
+
#: 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
@@ -3085,8 +3116,7 @@ msgstr "HÃ¥ndter Eksportmaler"
msgid "Help"
msgstr "Hjelp"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4609,7 +4639,6 @@ msgid "Add Node to BlendTree"
msgstr "Legg til node(r) fra tre"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "Flytt Modus"
@@ -5492,33 +5521,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Lag ny horisontal og vertikal veileder"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move pivot"
-msgstr "Flytt Pivot"
+msgid "Rotate %d CanvasItems"
+msgstr "Endre CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Rotate CanvasItem"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "Endre CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move anchor"
-msgstr "Flytt Handling"
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Endre CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Resize CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr "Endre CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Scale CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Endre CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move CanvasItem"
+msgid "Move %d CanvasItems"
+msgstr "Endre CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Endre CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6853,14 +6899,24 @@ msgid "Move Points"
msgstr "Flytt Punkt"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Roter"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Dra: Roter"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Flytt Alle"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: Skaler"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Roter"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: Skaler"
@@ -6899,12 +6955,14 @@ msgid "Radius:"
msgstr "Radius:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr ""
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Lag Poly"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Flytt Polygon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7118,7 +7176,7 @@ msgstr "Lagre Tema Som..."
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
msgid "%s Class Reference"
-msgstr " Klassereferanse"
+msgstr "%s-klassereferanse"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -7383,11 +7441,6 @@ 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 ""
@@ -7396,6 +7449,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Slett punkter"
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8542,6 +8600,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -9121,6 +9185,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Flytt Modus"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "Anim Dupliser Nøkler"
@@ -9139,6 +9208,11 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Forandre"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9809,6 +9883,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9871,19 +9949,6 @@ msgid "Runnable"
msgstr "Kjørbar"
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Legg til Input"
-
-#: 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 ""
@@ -9973,19 +10038,6 @@ msgid ""
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 " Filer"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -10046,9 +10098,8 @@ msgid "Export All"
msgstr "Eksporter"
#: editor/project_export.cpp editor/project_manager.cpp
-#, fuzzy
msgid "ZIP File"
-msgstr " Filer"
+msgstr "ZIP-fil"
#: editor/project_export.cpp
msgid "Godot Game Pack"
@@ -12551,6 +12602,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12575,7 +12642,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -13223,6 +13296,25 @@ msgid "Constants cannot be modified."
msgstr "Konstanter kan ikke endres."
#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "Flytt Pivot"
+
+#, fuzzy
+#~ msgid "Move anchor"
+#~ msgstr "Flytt Handling"
+
+#, fuzzy
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Endre CanvasItem"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Legg til Input"
+
+#~ msgid "Pack File"
+#~ msgstr "Pakkefil"
+
+#, fuzzy
#~ msgid "FileSystem and Import Docks"
#~ msgstr "FilSystem"
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index 122782e1b0..f8289c4c55 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -1638,6 +1638,37 @@ msgstr ""
"Schakel 'Import Etc' in bij de Projectinstellingen, of schakel de optie "
"'Driver Fallback Enabled' uit."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Doelplatform vereist 'ETC' textuurcompressie voor GLES2. Schakel 'Import "
+"Etc' in bij de Projectinstellingen."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Doelplatform vereist 'ETC2' textuurcompressie voor GLES3. Schakel 'Import "
+"Etc 2' in de Projectinstellingen in."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Doelplatform vereist 'ETC' textuurcompressie zodat het stuurprogramma kan "
+"terugvallen op GLES2.\n"
+"Schakel 'Import Etc' in bij de Projectinstellingen, of schakel de optie "
+"'Driver Fallback Enabled' uit."
+
#: 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
@@ -2973,8 +3004,7 @@ msgstr "Exportsjablonen beheren..."
msgid "Help"
msgstr "Help"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4407,7 +4437,6 @@ msgid "Add Node to BlendTree"
msgstr "Voeg knoop toe aan BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Knoop verplaatst"
@@ -5236,27 +5265,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Maak nieuwe horizontale en verticale gidsen"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Draaipunt verplaatsen"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate %d CanvasItems"
msgstr "CanvasItem roteren"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Anker verplaatsen"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "CanvasItem roteren"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Formaat van CanvasItem wijzigen"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Verplaats CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale %d CanvasItems"
msgstr "Schaal CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr "Schaal CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Verplaats CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Verplaats CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6543,14 +6595,24 @@ msgid "Move Points"
msgstr "Beweeg Punten"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Roteer"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Sleep: Roteer"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Beweeg alles"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: Schaal"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Roteer"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: Schaal"
@@ -6593,12 +6655,14 @@ msgid "Radius:"
msgstr "Radius:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Polygon→UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Creëer Polygon & UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV→Polygon"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Naar Polygon2D omzetten"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7044,11 +7108,6 @@ msgstr "Syntax Markeren"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Ga Naar"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Favorieten"
@@ -7056,6 +7115,11 @@ msgstr "Favorieten"
msgid "Breakpoints"
msgstr "Breekpunten"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Ga Naar"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8145,6 +8209,15 @@ msgid "Paint Tile"
msgstr "Teken Tegel"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+LMB: Lijn Tekenen\n"
+"Shift+Ctrl+LMB: Vierkant Tekenen"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8671,6 +8744,11 @@ msgid "Add Node to Visual Shader"
msgstr "VisualShader-knoop toevoegen"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Knoop verplaatst"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Knopen dupliceren"
@@ -8688,6 +8766,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Visuele Shader Invoertype Gewijzigd"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Uniforme naam instellen"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vertex"
@@ -9412,6 +9495,10 @@ msgstr ""
"constanten declareren."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Alleen voor fragment/light-modus) Scalaire afgeleide functie."
@@ -9484,18 +9571,6 @@ msgid "Runnable"
msgstr "Uitvoerbaar"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Voer initiële export toe..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Voeg vorige patches toe..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Verwijder patch '%s' van lijst?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Verwijder voorinstelling '%s'?"
@@ -9594,18 +9669,6 @@ msgstr ""
"(scheiden met een komma, bijv.: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Patches"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Maak Patch"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Pakket Bestand"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Functionaliteiten"
@@ -12125,6 +12188,22 @@ msgstr ""
"staat."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12157,8 +12236,14 @@ msgstr ""
"Zie anders Android bouwdocumentatie op docs.godotengine.org."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Geen build APK gegeneerd op: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12920,6 +13005,42 @@ msgstr "Varyings kunnen alleen worden toegewezenin vertex functies."
msgid "Constants cannot be modified."
msgstr "Constanten kunnen niet worden aangepast."
+#~ msgid "Move pivot"
+#~ msgstr "Draaipunt verplaatsen"
+
+#~ msgid "Move anchor"
+#~ msgstr "Anker verplaatsen"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Formaat van CanvasItem wijzigen"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Polygon→UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV→Polygon"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Voer initiële export toe..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Voeg vorige patches toe..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Verwijder patch '%s' van lijst?"
+
+#~ msgid "Patches"
+#~ msgstr "Patches"
+
+#~ msgid "Make Patch"
+#~ msgstr "Maak Patch"
+
+#~ msgid "Pack File"
+#~ msgstr "Pakket Bestand"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Geen build APK gegeneerd op: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Bestandssysteem- en Importtablad"
diff --git a/editor/translations/or.po b/editor/translations/or.po
index 11fc082ecd..1144d93efd 100644
--- a/editor/translations/or.po
+++ b/editor/translations/or.po
@@ -1547,6 +1547,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2798,8 +2818,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4180,7 +4199,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -4993,27 +5011,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6252,7 +6286,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6260,6 +6294,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6298,11 +6340,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6744,16 +6786,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7831,6 +7873,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8332,6 +8380,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8349,6 +8401,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9003,6 +9059,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9063,18 +9123,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9162,18 +9210,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11562,6 +11598,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11586,7 +11638,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index 7be793ffd2..114e37d50a 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -48,8 +48,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-22 03:23+0000\n"
-"Last-Translator: Zatherz <zatherz@linux.pl>\n"
+"PO-Revision-Date: 2020-10-27 18:26+0000\n"
+"Last-Translator: Tomek <kobewi4e@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot/pl/>\n"
"Language: pl\n"
@@ -58,7 +58,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.3-dev\n"
+"X-Generator: Weblate 4.3.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -938,9 +938,8 @@ msgid "Signals"
msgstr "Sygnały"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Filtruj kafelki"
+msgstr "Filtruj sygnały"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1630,6 +1629,37 @@ msgstr ""
"Włącz \"Import Etc\" w Ustawieniach Projektu lub wyłącz \"Driver Fallback "
"Enabled\"."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Platforma docelowa wymaga dla GLES2 kompresji tekstur \"ETC\". WÅ‚Ä…cz "
+"\"Import Etc\" w Ustawieniach Projektu."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Platforma docelowa wymaga dla GLES3 kompresji tekstur \"ETC2\". WÅ‚Ä…cz "
+"\"Import Etc 2\" w Ustawieniach Projektu."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Platforma docelowa wymaga kompresji tekstur \"ETC\", by sterownik awaryjny "
+"GLES2 mógł zadziałać.\n"
+"Włącz \"Import Etc\" w Ustawieniach Projektu lub wyłącz \"Driver Fallback "
+"Enabled\"."
+
#: 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
@@ -1671,7 +1701,6 @@ msgid "Node Dock"
msgstr "Dok węzła"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
msgstr "System plików"
@@ -2106,7 +2135,7 @@ msgstr "Sygnał"
#: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constant"
-msgstr "Stałe"
+msgstr "Stała"
#: editor/editor_help_search.cpp
msgid "Property"
@@ -2822,14 +2851,18 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Kiedy ta opcja jest zaznaczona, użycie szybkiego wdrażania sprawi, że gra "
+"spróbuje połączyć się z IP tego komputera, żeby uruchomiony projekt mógł być "
+"debugowany.\n"
+"Ta opcja jest przeznaczona do użytku ze zdalnym debugowaniem (zazwyczaj z "
+"urzÄ…dzeniem mobilnym).\n"
+"Nie potrzebujesz jej włączać, by używać debugera GDScript lokalnie."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "Testuj z sieciowym systemem plików"
+msgstr "Małe wdrożenie z sieciowym systemem plików"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2838,10 +2871,10 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"Gdy ta opcja jest zaznaczona, eksportowanie utworzy jak najmniejszy plik "
-"wykonywalny.\n"
-"System plików będzie udostępniony przez ten edytor poprzez sieć.\n"
-"Na Androidzie eksport użyje kabla USB dla lepszej wydajności. Opcja ta "
+"Gdy ta opcja jest zaznaczona, szybkie wdrożenie na Androida eksportuje tylko "
+"plik wykonywalny bez danych projektu.\n"
+"System plików będzie udostępniony z projektu przez edytor poprzez sieć.\n"
+"Na Androidzie, wdrożenie użyje kabla USB dla szybszej wydajności. Opcja ta "
"znacznie przyspiesza testowanie dużych gier."
#: editor/editor_node.cpp
@@ -2849,52 +2882,46 @@ msgid "Visible Collision Shapes"
msgstr "Widoczne kształty kolizji"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"Kształty kolizji i promienie raycast (2D i 3D) będą widoczne, jeśli ta opcja "
-"będzie zaznaczona."
+"Jeśli ta opcja jest zaznaczona, kształty kolizji i węzły RayCast (2D i 3D) "
+"będą widoczne w uruchomionym projekcie."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "Widoczna nawigacja"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"Kształty i poligony nawigacyjne będą widoczne, jeśli ta opcja będzie "
-"zaznaczona."
+"Jeśli ta opcja jest zaznaczona, siatki i wielokąty nawigacyjne będą widoczne "
+"w uruchomionym projekcie."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
-msgstr "Synchronizuj zmiany w scenie"
+msgstr "Synchronizuj zmiany na scenie"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Kiedy ta opcja jest włączona, wszystkie zmiany na scenie w edytorze będą "
+"Kiedy ta opcja jest zaznaczona, wszystkie zmiany na scenie w edytorze będą "
"powtórzone w uruchomionej grze.\n"
-"Kiedy używane zdalnie na urządzeniu, ta opcja jest wydajniejsza w sieciowym "
-"systemie plików."
+"Kiedy używane zdalnie na urządzeniu, ta opcja jest wydajniejsza kiedy "
+"sieciowy system plików jest włączony."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
-msgstr "Synchronizuj zmiany skryptów"
+msgstr "Synchronizuj zmiany w skryptach"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
@@ -2903,8 +2930,8 @@ msgid ""
msgstr ""
"Kiedy ta opcja jest włączona, każdy zapisany skrypt będzie przeładowany w "
"uruchomionej grze.\n"
-"Kiedy używane zdalnie na urządzeniu, ta opcja jest wydajniejsza w sieciowym "
-"systemie plików."
+"Kiedy używane zdalnie na urządzeniu, ta opcja jest wydajniejsza kiedy "
+"sieciowy system plików jest włączony."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -2958,8 +2985,7 @@ msgstr "ZarzÄ…dzaj szablonami eksportu..."
msgid "Help"
msgstr "Pomoc"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3379,15 +3405,14 @@ msgid "Add Key/Value Pair"
msgstr "Dodaj parę klucz/wartość"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
-"Nie znaleziono możliwego do uruchomienia profilu eksportu dla tej "
-"platformy.\n"
-"Dodaj poprawny profil z menu eksportu."
+"Nie znaleziono uruchamialnego profilu eksportu dla tej platformy.\n"
+"Dodaj uruchamialny profil w menu eksportu lub zdefiniuj istniejÄ…cy profil "
+"jako uruchamialny."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -4387,7 +4412,6 @@ msgid "Add Node to BlendTree"
msgstr "Dodaj węzeł do BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Węzeł przesunięty"
@@ -5219,27 +5243,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Utwórz poziomą i pionową prowadnicę"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Przesuń oś"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "Obróć CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "Obróć CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Przesuń zakotwiczenie"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Przesuń CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Zmień rozmiar CanvasItem"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "Skaluj CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Skaluj CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Przesuń CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Przesuń CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6522,14 +6569,24 @@ msgid "Move Points"
msgstr "Przesuń punkty"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Obróć"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Przeciągnij: Obróć"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Przesuń wszystko"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: Skaluj"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Obróć"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: Skaluj"
@@ -6570,12 +6627,14 @@ msgid "Radius:"
msgstr "Promień:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "WielokÄ…t->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Utwórz wielokąt i UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->WielokÄ…t"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Zamień na Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7023,11 +7082,6 @@ msgstr "Podświetlacz składni"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Idź do"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Zakładki"
@@ -7035,6 +7089,11 @@ msgstr "Zakładki"
msgid "Breakpoints"
msgstr "Punkty wstrzymania"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Idź do"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7803,9 +7862,8 @@ msgid "New Animation"
msgstr "Nowa animacja"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "Prędkość (FPS):"
+msgstr "Szybkość:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -7946,7 +8004,7 @@ msgstr "Utwórz pusty szablon"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Editor Template"
-msgstr "Utworzyć pusty szablon edytora"
+msgstr "Utwórz pusty szablon edytora"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create From Current Editor Theme"
@@ -8124,6 +8182,15 @@ msgid "Paint Tile"
msgstr "Maluj kafelek"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+LPM: Rysowanie linii\n"
+"Shift+Ctrl+LPM: Malowanie prostokÄ…ta"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8647,6 +8714,11 @@ msgid "Add Node to Visual Shader"
msgstr "Dodaj Węzeł do Wizualnego Shadera"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Węzeł przesunięty"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Duplikuj węzły"
@@ -8664,6 +8736,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Typ wejścia shadera wizualnego zmieniony"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Ustaw nazwÄ™ uniformu"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Wierzchołki"
@@ -9377,6 +9454,10 @@ msgstr ""
"i stałe."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Tylko tryb fragmentów/światła) Skalarna pochodna funkcji."
@@ -9449,18 +9530,6 @@ msgid "Runnable"
msgstr "Uruchamiany"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Dodaj wstępny eksport..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Dodaj poprzednie Å‚atki..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Usunąć ścieżkę \"%s\" z listy?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Usunąć profil \"%s\"?"
@@ -9559,18 +9628,6 @@ msgstr ""
"(oddzielone przecinkami, np. *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Åatki"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Utwórz ścieżkę"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Plik paczki"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Funkcje"
@@ -10372,19 +10429,16 @@ msgid "Batch Rename"
msgstr "Grupowa zmiana nazwy"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "ZastÄ…p: "
+msgstr "ZastÄ…p:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "Przedrostek"
+msgstr "Przedrostek:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "Przyrostek"
+msgstr "Przyrostek:"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10431,9 +10485,8 @@ msgid "Per-level Counter"
msgstr "Oddzielny licznik na poziom"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "Gdy ustawione, licznik restartuje dla każdej grupy węzłów potomnych"
+msgstr "Gdy ustawione, licznik restartuje dla każdej grupy węzłów potomnych."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10492,9 +10545,8 @@ msgid "Reset"
msgstr "Resetuj"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "Błąd wyrażenia regularnego"
+msgstr "Błąd wyrażenia regularnego:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -12089,6 +12141,22 @@ msgstr ""
"VR\"."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12122,8 +12190,14 @@ msgstr ""
"Androida."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Nie wygenerowano budowanego apk w: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12585,6 +12659,7 @@ msgstr ""
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
msgstr ""
+"Węzeł InterpolatedCamera jest przestarzały i będzie usunięty w Godocie 4.0."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12889,6 +12964,42 @@ 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 "Move pivot"
+#~ msgstr "Przesuń oś"
+
+#~ msgid "Move anchor"
+#~ msgstr "Przesuń zakotwiczenie"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Zmień rozmiar CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "WielokÄ…t->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->WielokÄ…t"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Dodaj wstępny eksport..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Dodaj poprzednie Å‚atki..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Usunąć ścieżkę \"%s\" z listy?"
+
+#~ msgid "Patches"
+#~ msgstr "Åatki"
+
+#~ msgid "Make Patch"
+#~ msgstr "Utwórz ścieżkę"
+
+#~ msgid "Pack File"
+#~ msgstr "Plik paczki"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Nie wygenerowano budowanego apk w: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Doki systemu plików i importowania"
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index d1b82cffe6..b66652b18b 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -1599,6 +1599,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2890,8 +2910,7 @@ msgstr "Discharge ye' Variable"
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4331,7 +4350,6 @@ msgid "Add Node to BlendTree"
msgstr "Add Node(s) From yer Tree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "Find ye Node Type"
@@ -5168,28 +5186,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move pivot"
-msgstr "Discharge ye' Signal"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6460,7 +6493,7 @@ msgid "Move Points"
msgstr "Discharge ye' Signal"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6468,6 +6501,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6506,12 +6547,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Discharge ye' Function"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6965,11 +7007,6 @@ 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 ""
@@ -6978,6 +7015,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Yar, Blow th' Selected Down!"
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8096,6 +8138,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8646,6 +8694,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Find ye Node Type"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "Rename Variable"
@@ -8664,6 +8717,11 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Change"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9323,6 +9381,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9385,19 +9447,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Add Signal"
-
-#: 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 ""
@@ -9486,18 +9535,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11992,6 +12029,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12016,7 +12069,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12655,6 +12714,14 @@ msgid "Constants cannot be modified."
msgstr ""
#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "Discharge ye' Signal"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Add Signal"
+
+#, fuzzy
#~ msgid "Class Description"
#~ msgstr "Yar, Blow th' Selected Down!"
diff --git a/editor/translations/pt.po b/editor/translations/pt.po
index 6b6a15dda7..e22a5e7818 100644
--- a/editor/translations/pt.po
+++ b/editor/translations/pt.po
@@ -16,20 +16,22 @@
# ssantos <ssantos@web.de>, 2018, 2019, 2020.
# Gonçalo Dinis Guerreiro João <goncalojoao205@gmail.com>, 2019.
# Manuela Silva <mmsrs@sky.com>, 2020.
+# Murilo Gama <murilovsky2030@gmail.com>, 2020.
+# Ricardo Subtil <ricasubtil@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-24 12:43+0000\n"
-"Last-Translator: ssantos <ssantos@web.de>\n"
-"Language-Team: Portuguese <https://hosted.weblate.org/projects/"
-"godot-engine/godot/pt/>\n"
+"PO-Revision-Date: 2020-10-19 21:08+0000\n"
+"Last-Translator: João Lopes <linux-man@hotmail.com>\n"
+"Language-Team: Portuguese <https://hosted.weblate.org/projects/godot-engine/"
+"godot/pt/>\n"
"Language: pt\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.3-dev\n"
+"X-Generator: Weblate 4.3.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -38,7 +40,7 @@ msgstr "Tipo de argumento inválido para convert(), utilize constantes TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "Esperado uma \"string\" de comprimento 1 (um caráter)."
+msgstr "Esperado uma cadeia de comprimento 1 (um caráter)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -912,9 +914,8 @@ msgid "Signals"
msgstr "Sinais"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Filtrar Tiles"
+msgstr "Filtrar sinais"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1606,6 +1607,37 @@ msgstr ""
"Ative 'Importar Etc' nas Configurações do Projeto, ou desative 'Driver de "
"Recurso ativo'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Plataforma Alvo exige compressão de textura 'ETC' para GLES2. Ative "
+"'Importar Etc' nas Configurações do Projeto."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Plataforma Alvo exige compressão de textura 'ETC2' para GLES3. Ative "
+"'Importar Etc 2' nas Configurações do Projeto."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Plataforma Alvo exige compressão de textura 'ETC' para o driver de recurso "
+"em GLES2.\n"
+"Ative 'Importar Etc' nas Configurações do Projeto, ou desative 'Driver de "
+"Recurso ativo'."
+
#: 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
@@ -1648,9 +1680,8 @@ msgid "Node Dock"
msgstr "Doca de Nó"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "Sistema de Ficheiros"
+msgstr "Doca de Sistema de Ficheiros"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2792,7 +2823,7 @@ msgstr "Depurar"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
-msgstr "Implementar com Depuração Remota"
+msgstr "Distribuir com Depuração Remota"
#: editor/editor_node.cpp
msgid ""
@@ -2803,14 +2834,18 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Quando esta opção é ativada, ao usar distribuição por um clique o executável "
+"irá tentar ligar-se ao endereço IP deste computador, para que o projeto "
+"possa ser depurado.\n"
+"Esta opção foi criada para ser usada pela depuração remota (tipicamente com "
+"um dispositivo móvel).\n"
+"Não é necessário ativá-la para usar o depurador de GDScript localmente."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "Pequena distribuição com Network FS"
+msgstr "Distribuição pequena com Sistema de Ficheiros em Rede"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2819,8 +2854,8 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"Quando esta opção é ativada, exportação ou distribuição criará um executável "
-"mínimo.\n"
+"Quando esta opção é ativada, a distribuição por um clique para Android vai "
+"exportar um executável sem os dados do projeto.\n"
"O Sistema de Ficheiros será fornecido ao Projeto pelo Editor sobre a rede.\n"
"Em Android, a distribuição irá usar a ligação USB para melhor performance. "
"Esta opção acelera o teste de jogos pesados."
@@ -2830,51 +2865,46 @@ msgid "Visible Collision Shapes"
msgstr "Formas de Colisão Visíveis"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
"Com esta opção ativa, formas de colisão e nós raycast (para 2D e 3D) serão "
-"visíveis no jogo em execução."
+"visíveis no projeto em execução."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "Navegação Visível"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"Com esta opção ativa, Meshes e Polígonos serão visíveis no jogo em execução."
+"Com esta opção ativa, Meshes e Polígonos de navegação serão visíveis no "
+"projeto em execução."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Sincronizar Alterações de Cena"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Com esta opção ativa, alterações da cena no editor serão replicadas no jogo "
-"em execução.\n"
-"Quando usada num aparelho remoto, é mais eficiente com um sistema de "
-"ficheiros em rede."
+"Quando esta opção está ativada, quaisquer alterações feitas a uma cena no "
+"editor serão propagadas no projeto em execução.\n"
+"Quando é usada remotamente num dispositivo, é mais eficiente quando a opção "
+"do sistema de ficheiros em rede está ativa."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
-msgstr "Sincronizar Alterações de Script"
+msgstr "Sicronizar alterações de script"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
@@ -2883,8 +2913,8 @@ msgid ""
msgstr ""
"Com esta opção ativa, qualquer Script guardado será recarregado no jogo em "
"execução.\n"
-"Quando usada num aparelho remoto, é mais eficiente com um Sistema de "
-"Ficheiros em rede."
+"Quando usada num aparelho remoto, é mais eficiente quando a opção sistema de "
+"ficheiros em rede está ativa."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -2939,8 +2969,7 @@ msgstr "Gerir Modelos de Exportação..."
msgid "Help"
msgstr "Ajuda"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3361,14 +3390,15 @@ msgid "Add Key/Value Pair"
msgstr "Adicionar Par Chave/Valor"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
-"Não foi encontrado um executável de exportação para esta plataforma.\n"
-"Adicione um executável pré-definido no menu de exportação."
+"Não foi encontrado um executável de exportação pré-definido para esta "
+"plataforma.\n"
+"Adicione um executável pré-definido no menu de exportação ou defina um pré-"
+"definido existente como executável."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -4367,7 +4397,6 @@ msgid "Add Node to BlendTree"
msgstr "Adicionar Nó a BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Nó Movido"
@@ -5196,27 +5225,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Criar Guias Horizontais e Verticais"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Mover pivô"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "Rodar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "Rodar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Mover âncora"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Mover CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Redimensionar CanvasItem"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "Escalar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Escalar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Mover CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Mover CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6493,14 +6545,24 @@ msgid "Move Points"
msgstr "Mover Ponto"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Rodar"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Arrastar: Rotação"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Mover tudo"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: Escalar"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Rodar"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: Escalar"
@@ -6543,12 +6605,14 @@ msgid "Radius:"
msgstr "Raio:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Polígono->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Criar Polígono & UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->Polígono"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Converter para Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6993,11 +7057,6 @@ msgstr "Destaque de Sintaxe"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Ir Para"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Marcadores"
@@ -7005,6 +7064,11 @@ msgstr "Marcadores"
msgid "Breakpoints"
msgstr "Pontos de paragem"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Ir Para"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7772,9 +7836,8 @@ msgid "New Animation"
msgstr "Nova Animação"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "Velocidade (FPS):"
+msgstr "Velocidade:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8092,6 +8155,15 @@ msgid "Paint Tile"
msgstr "Pintar Tile"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+LMB: Desenho de Linha\n"
+"Shift+Ctrl+LMB: Pintura de Retângulo"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8615,6 +8687,11 @@ msgid "Add Node to Visual Shader"
msgstr "Adicionar Nó ao Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Nó Movido"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Duplicar Nós"
@@ -8632,6 +8709,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Alterado Tipo de Entrada do Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Definir Nome do Uniform"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vértice"
@@ -9341,6 +9423,10 @@ msgstr ""
"Expressões. Também pode declarar variantes, uniformes e constantes."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Apenas modo Fragment/Light) Função derivada escalar."
@@ -9410,18 +9496,6 @@ msgid "Runnable"
msgstr "Executável"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Adicionar exportação inicial..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Aplicar correções anteriores..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Apagar correção '%s' da lista?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Apagar predefinição '%s'?"
@@ -9522,18 +9596,6 @@ msgstr ""
"(separados por vírgula, ex: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Correções"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Fazer Correção"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Ficheiro Pacote"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Características"
@@ -10336,19 +10398,16 @@ msgid "Batch Rename"
msgstr "Renomear em massa"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "Substituir: "
+msgstr "Substituir:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "Prefixo"
+msgstr "Prefixo:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "Sufixo"
+msgstr "Sufixo:"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10395,9 +10454,8 @@ msgid "Per-level Counter"
msgstr "Contador por nível"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "Se definido o contador reinicia para cada grupo de nós filhos"
+msgstr "Se definido, o contador reinicia para cada grupo de nós filhos."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10456,9 +10514,8 @@ msgid "Reset"
msgstr "Repor"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "Erro em Expressão Regular"
+msgstr "Erro em Expressão Regular:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -11931,7 +11988,7 @@ msgid ""
"(error)."
msgstr ""
"Retorno de valor inválido a partir do _step(), tem de ser inteiro (seq out), "
-"ou string (error)."
+"ou cadeia (error)."
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search VisualScript"
@@ -12057,6 +12114,22 @@ msgstr ""
"\"."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12090,8 +12163,14 @@ msgstr ""
"compilação Android."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Nenhum apk gerado em: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12542,7 +12621,7 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "A InterpolatedCamerda foi deprecada e será removida no Godot 4.0."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12848,6 +12927,42 @@ 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 "Move pivot"
+#~ msgstr "Mover pivô"
+
+#~ msgid "Move anchor"
+#~ msgstr "Mover âncora"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Redimensionar CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Polígono->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->Polígono"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Adicionar exportação inicial..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Aplicar correções anteriores..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Apagar correção '%s' da lista?"
+
+#~ msgid "Patches"
+#~ msgstr "Correções"
+
+#~ msgid "Make Patch"
+#~ msgstr "Fazer Correção"
+
+#~ msgid "Pack File"
+#~ msgstr "Ficheiro Pacote"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Nenhum apk gerado em: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Sistema de Ficheiros e Docas de Importação"
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index 29b0350e10..1b81b4f77f 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -100,12 +100,13 @@
# Gabriela Araújo <Gabirin@outlook.com.br>, 2020.
# Jairo Tuboi <tuboi.jairo@gmail.com>, 2020.
# Felipe Fetter <felipetfetter@gmail.com>, 2020.
+# Rafael Henrique Capati <rhcapati@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: 2016-05-30\n"
-"PO-Revision-Date: 2020-09-12 00:46+0000\n"
-"Last-Translator: Felipe Fetter <felipetfetter@gmail.com>\n"
+"PO-Revision-Date: 2020-10-05 01:02+0000\n"
+"Last-Translator: Rafael Henrique Capati <rhcapati@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
@@ -140,7 +141,7 @@ msgstr "self não pode ser usado porque a instância é nula (não passada)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr "Operandos inválidos para operador %s, %s e %s."
+msgstr "Operandos inválidos para o operador %s, %s e %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
@@ -993,9 +994,8 @@ msgid "Signals"
msgstr "Sinais"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Filtros do tile"
+msgstr "Filtrar sinais"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1686,6 +1686,37 @@ msgstr ""
"Ativar 'Importar Etc' em Configurações do Projeto ou desabilitar 'Driver "
"Fallback Enabled' (Recuperação de driver ativada)."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"A plataforma alvo requer compressão de texturas 'ETC' para GLES2. Habilite "
+"'Import Etc' nas Configurações de Projeto."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"A plataforma de destino requer compactação de textura 'ETC2' para GLES3. "
+"Ativar 'Importar Etc 2' nas Configurações do Projeto."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"A plataforma de destino requer compactação de textura 'ETC' para o driver "
+"retornar ao GLES2.\n"
+"Ativar 'Importar Etc' em Configurações do Projeto ou desabilitar 'Driver "
+"Fallback Enabled' (Recuperação de driver ativada)."
+
#: 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
@@ -1727,9 +1758,8 @@ msgid "Node Dock"
msgstr "Painel de Nós"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "Arquivos"
+msgstr "Painel de Sistema de Arquivos"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2885,14 +2915,18 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Quando esta opção está ativa, usando o deploy em um clique fará com que o "
+"executável tente se conectar ao IP deste computador e então o projeto em "
+"execução poderá ser debugado.\n"
+"Esta opção é indicada para debug remoto (tipicamente com um dispositivo "
+"móvel).\n"
+"Você não precisa ativá-la para usar o debugger do GDScript localmente."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "Pequena DIstribuição com Sistema de Arquivos de Rede"
+msgstr "Pequena Implantação com Sistema de Arquivos de Rede"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2901,73 +2935,68 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"Quando esta opção está habilitada, a exportação ou instalação produzirá um "
-"executável mínimo.\n"
-"O sistema de arquivos será fornecido ao projeto pelo editor via rede.\n"
-"No Android, a instalação usará o cabo USB para melhor desempenho. Esta opção "
-"acelera os testes de jogos com muito conteúdo."
+"Quando esta opção está ativada, o uso de implantação com um clique para o "
+"Android exportará apenas um executável sem os dados do projeto.\n"
+"O sistema de arquivos será fornecido a partir do projeto pelo editor na "
+"rede.\n"
+"No Android, a implantação usará o cabo USB para desempenho mais rápido. Esta "
+"opção acelera o teste de projetos com grandes ativos."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "Formas de Colisão Visíveis"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"Formas de colisão e nós do tipo RayCast (2D e 3D) serão visíveis durante a "
-"execução do jogo caso esta opção esteja habilitada."
+"Quando esta opção está ativa, formas de colisão e nós do tipo RayCast (2D e "
+"3D) serão visíveis durante a execução do projeto."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "Navegação Visível"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"Malhas e polígonos de navegação serão visíveis no jogo em execução se esta "
-"opção estiver ligada."
+"Quando esta opção está ativa, malhas e polígonos de navegação serão visíveis "
+"durante o projeto em execução."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Sincronizar Mudanças de Cena"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Quando essa opção está ativa, quaisquer alterações feitas à cena no editor "
-"serão replicadas no jogo em execução.\n"
-"Quando usado remotamente em um dispositivo, isso é mais eficiente com o "
-"sistema de arquivos via rede."
+"Quando esta opção está ativa, quaisquer alterações feitas à cena no editor "
+"serão replicadas no projeto em execução.\n"
+"Quando usado remotamente em um dispositivo, isso é mais eficiente quando a "
+"opção de sistema de arquivos via rede está ativada."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
msgstr "Sincronizar Mudanças de Script"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Quando essa opção está ativa, qualquer script que é salvo será recarregado "
-"no jogo em execução.\n"
-"Quando usado remotamente em um dispositivo, isso é mais eficiente com o "
-"sistema de arquivos via rede."
+"Quando esta opção está ativa, qualquer script que é salvo será recarregado "
+"no projeto em execução.\n"
+"Quando usado remotamente em um dispositivo, isso é mais eficiente quando a "
+"opção de sistema de arquivos via rede está ativada."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -3021,8 +3050,7 @@ msgstr "Gerenciar Modelos de Exportação..."
msgid "Help"
msgstr "Ajuda"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3445,15 +3473,15 @@ msgid "Add Key/Value Pair"
msgstr "Adicionar Par de Chave/Valor"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
-"Não foi encontrado uma definição de exportação executável para esta "
+"Nenhuma predefinição de exportação executável encontrada para esta "
"plataforma.\n"
-"Por favor, adicione uma definição executável no menu de exportação."
+"Adicione uma predefinição executável no menu Exportar ou defina uma "
+"predefinição existente como executável."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -4209,7 +4237,7 @@ msgstr "Alterações podem ser perdidas!"
#: editor/multi_node_edit.cpp
msgid "MultiNode Set"
-msgstr "Conjunto de Multi-Nós"
+msgstr "Conjunto de MultiNode"
#: editor/node_dock.cpp
msgid "Select a single node to edit its signals and groups."
@@ -4303,7 +4331,7 @@ msgstr "Carregar..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Move Node Point"
-msgstr "Mover o ponto do nó"
+msgstr "Mover o Ponto do Nó"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Change BlendSpace1D Limits"
@@ -4323,7 +4351,7 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Add Node Point"
-msgstr "Adicionar ponto de Nó"
+msgstr "Adicionar Ponto de Nó"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4336,7 +4364,7 @@ msgstr "Remover Ponto BlendSpace1D"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Move BlendSpace1D Node Point"
-msgstr "Mover ponto de nó BlendSpace1D"
+msgstr "Mover Ponto de Nó do BlendSpace1D"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4346,8 +4374,8 @@ msgid ""
"AnimationTree is inactive.\n"
"Activate to enable playback, check node warnings if activation fails."
msgstr ""
-"A árvore de animação está inativa.\n"
-"Ative para permitir a reprodução, cheque os avisos de nós caso a ativação "
+"A AnimationTree está inativa.\n"
+"Ative-a para permitir a reprodução, cheque os avisos de nós caso a ativação "
"falhe."
#: editor/plugins/animation_blend_space_1d_editor.cpp
@@ -4454,7 +4482,6 @@ msgid "Add Node to BlendTree"
msgstr "Adicionar Nó(s) a Partir da Ãrvore (BlendTree)"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Nó Movido"
@@ -4811,7 +4838,7 @@ msgstr "Transição Removida"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Set Start Node (Autoplay)"
-msgstr "Configurar Nó de Início (Autoplay)"
+msgstr "Configurar Nó de Início (auto reprodução)"
#: editor/plugins/animation_state_machine_editor.cpp
msgid ""
@@ -4819,8 +4846,8 @@ msgid ""
"RMB to add new nodes.\n"
"Shift+LMB to create connections."
msgstr ""
-"Selecione e mova nós.\n"
-"Clique no botão direito do mouse para adicionar novos nós.\n"
+"Selecione e movimente nós.\n"
+"Botão direito do mouse para adicionar novos nós.\n"
"Shift + botão esquerdo do mouse para criar conexões."
#: editor/plugins/animation_state_machine_editor.cpp
@@ -4869,11 +4896,11 @@ msgstr "Escala:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Fade In (s):"
-msgstr "Fade In (s):"
+msgstr "[i]Fade In[/i](s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Fade Out (s):"
-msgstr "Fade Out (s):"
+msgstr "[i]Fade Out[/i](s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend"
@@ -4889,11 +4916,11 @@ msgstr "Reinício Automático:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Restart (s):"
-msgstr "Reinício (s):"
+msgstr "Reinício(s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Random Restart (s):"
-msgstr "Reinício Aleatório:"
+msgstr "Reinício(s) Aleatório(s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Start!"
@@ -4948,7 +4975,7 @@ msgstr "Ãrvore de Animação é inválida."
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation Node"
-msgstr "Nó Animation"
+msgstr "Nó de Animação"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "OneShot Node"
@@ -5289,27 +5316,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Criar Guias Horizontais e Verticais"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Mover Pivô"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "Rotacionar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "Rotacionar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Mova a âncora"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Mover CanvaItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Redimensionar o CanvasItem"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "Tamanho CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Tamanho CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Mover CanvaItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Mover CanvaItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6591,14 +6641,24 @@ msgid "Move Points"
msgstr "Mover pontos"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Rotaciona"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Arrastar: Rotacionar"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Mover Todos"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: Escala"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Rotaciona"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: Escala"
@@ -6641,12 +6701,14 @@ msgid "Radius:"
msgstr "Raio:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Polígono->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Criar Polígono & UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->Polígono"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Converter para Polígono2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7092,11 +7154,6 @@ msgstr "Realce de sintaxe"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Ir Para"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Marcadores"
@@ -7104,6 +7161,11 @@ msgstr "Marcadores"
msgid "Breakpoints"
msgstr "Breakpoints"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Ir Para"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7872,9 +7934,8 @@ msgid "New Animation"
msgstr "Nova animação"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "Velocidade (FPS):"
+msgstr "Velocidade:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8192,6 +8253,15 @@ msgid "Paint Tile"
msgstr "Pintar Tile"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+LMB: Desenhar Linha\n"
+"Shift+Ctrl+LMB: Pintar Retângulo"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8714,6 +8784,11 @@ msgid "Add Node to Visual Shader"
msgstr "Adicionar Nó ao Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Nó Movido"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Duplicar Nó(s)"
@@ -8731,6 +8806,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Tipo de Entrada de Shader Visual Alterado"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Definir Nome Uniforme"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vértice"
@@ -9443,6 +9523,10 @@ msgstr ""
"uniformes e constantes."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Apenas modo Fragmento/Luz) Função derivada escalar."
@@ -9513,18 +9597,6 @@ msgid "Runnable"
msgstr "Executável"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Adicionar exportação inicial..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Adicionar patches anteriores..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Excluir alteração '%s' da lista?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Excluir definição '%s'?"
@@ -9626,18 +9698,6 @@ msgstr ""
"(separados por vírgula, ex.: *.json, *.txt)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Alterações"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Criar Alteração"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Empacotar Arquivo"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Funcionalidades"
@@ -10439,19 +10499,16 @@ msgid "Batch Rename"
msgstr "Renomear em lote"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "Substituir: "
+msgstr "Substituir:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "Prefixo"
+msgstr "Prefixo:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "Sufixo"
+msgstr "Sufixo:"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10498,9 +10555,8 @@ msgid "Per-level Counter"
msgstr "Contador de nível"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "Se definido, o contador será reiniciado para cada grupo de nós filhos"
+msgstr "Se definido, o contador será reiniciado para cada grupo de nós filhos."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10559,9 +10615,8 @@ msgid "Reset"
msgstr "Recompor"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "Erro de Expressão Regular"
+msgstr "Erro de Expressão Regular:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -12163,6 +12218,22 @@ msgstr ""
"Mode\"."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12197,8 +12268,14 @@ msgstr ""
"compilação do Android."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Nenhuma construção apk gerada em: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12647,7 +12724,7 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "IntepolatedCamera foi depreciada e será removida no Godot 4.0."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12815,7 +12892,7 @@ msgstr "O nó raiz do AnimationPlayer não é um nó válido."
#: scene/animation/animation_tree_player.cpp
msgid "This node has been deprecated. Use AnimationTree instead."
-msgstr "Este nó foi reprovado. Use AnimationTree em vez disso."
+msgstr "Este nó foi descontinuado. Use AnimationTree em vez disso."
#: scene/gui/color_picker.cpp
msgid ""
@@ -12956,6 +13033,42 @@ 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 "Move pivot"
+#~ msgstr "Mover Pivô"
+
+#~ msgid "Move anchor"
+#~ msgstr "Mova a âncora"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Redimensionar o CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Polígono->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->Polígono"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Adicionar exportação inicial..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Adicionar patches anteriores..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Excluir alteração '%s' da lista?"
+
+#~ msgid "Patches"
+#~ msgstr "Alterações"
+
+#~ msgid "Make Patch"
+#~ msgstr "Criar Alteração"
+
+#~ msgid "Pack File"
+#~ msgstr "Empacotar Arquivo"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Nenhuma construção apk gerada em: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Sistema de Arquivos e Importar Docks"
diff --git a/editor/translations/ro.po b/editor/translations/ro.po
index 1549250858..1bdb567685 100644
--- a/editor/translations/ro.po
+++ b/editor/translations/ro.po
@@ -13,12 +13,13 @@
# Marincia Cătălin <catalinmarincia@gmail.com>, 2020.
# Teodor <teo.virghi@yahoo.ro>, 2020.
# f0roots <f0rootss@gmail.com>, 2020.
+# Gigel2 <mihalacher02@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-08-11 14:04+0000\n"
-"Last-Translator: Filip <filipanton@tutanota.com>\n"
+"PO-Revision-Date: 2020-10-22 21:37+0000\n"
+"Last-Translator: Gigel2 <mihalacher02@gmail.com>\n"
"Language-Team: Romanian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ro/>\n"
"Language: ro\n"
@@ -27,14 +28,16 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.3.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
+#, fuzzy
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Argument de tip invalid pentru convert(), folosiți constante TYPE_*."
+msgstr "Argument invalid pentru transformare(), folosiți constante TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
+#, fuzzy
msgid "Expected a string of length 1 (a character)."
msgstr "Se așteaptă un șir de lungime 1 (un caracter)."
@@ -42,15 +45,16 @@ msgstr "Se așteaptă un șir de lungime 1 (un caracter)."
#: 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 "Bytes insuficienti pentru decodare bytes, sau format invalid."
+msgstr "Insuficienți bytes pentru decodare bytes, sau format invalid."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
msgstr "Intrare invalida %i (nu a fost transmisă) in expresie"
#: core/math/expression.cpp
+#, fuzzy
msgid "self can't be used because instance is null (not passed)"
-msgstr "self nu poate fi folosit deoarece instanța este nulă (nefurnizat)"
+msgstr "insuși nu poate fi folosit deoarece instanța este nulă(nu a trecut)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -909,9 +913,8 @@ msgid "Signals"
msgstr "Semnale"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Filtrare Tiles"
+msgstr "Filtrare semne"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1156,14 +1159,12 @@ msgid "Gold Sponsors"
msgstr "Sponsori Aur"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Silver Sponsors"
-msgstr "Donatori de Argint"
+msgstr "Sponsori de argint"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Bronze Sponsors"
-msgstr "Donatori de Bronz"
+msgstr "Sponsori de bronz"
#: editor/editor_about.cpp
msgid "Mini Sponsors"
@@ -1608,6 +1609,37 @@ msgstr ""
"Activați „Import Etc†în Setările de proiect sau dezactivați „Driver "
"Fallback Enabledâ€."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Platforma țintă necesită textură compresată „ETC†pentru GLES2. Activați "
+"„Import Etc†în Setările proiectului."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Platforma țintă necesită textură compresata „ETC2†pentru GLES3. Activați "
+"„Import Etc 2†în Setările proiectului."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Platforma țintă necesită o textură compresată „ETC†pentru revenirea "
+"driverului la GLES2.\n"
+"Activați „Import Etc†în Setările de proiect sau dezactivați „Driver "
+"Fallback Enabledâ€."
+
#: 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
@@ -1652,7 +1684,7 @@ msgstr "Nod Bară"
#: editor/editor_feature_profile.cpp
#, fuzzy
msgid "FileSystem Dock"
-msgstr "Sistemul De Fișiere"
+msgstr "Locul FișierelorSystem"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2625,9 +2657,8 @@ msgid "Undo Close Tab"
msgstr "Anulare fila ÃŽnchidere"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close Other Tabs"
-msgstr "Închideți Alte File"
+msgstr "Închideți Celelalte File"
#: editor/editor_node.cpp
#, fuzzy
@@ -2950,8 +2981,7 @@ msgstr "Gestionare șabloane export..."
msgid "Help"
msgstr "Ajutor"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4360,7 +4390,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "Mod Mutare"
@@ -5219,33 +5248,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Creează ghizi noi orizontal și vertical"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move pivot"
-msgstr "Mută Pivot"
+msgid "Rotate %d CanvasItems"
+msgstr "Editează ObiectulPânză"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Rotate CanvasItem"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "Editează ObiectulPânză"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move anchor"
-msgstr "Acțiune de Mutare"
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Editează ObiectulPânză"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Resize CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr "Editează ObiectulPânză"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Scale CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Editează ObiectulPânză"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move CanvasItem"
+msgid "Move %d CanvasItems"
+msgstr "Editează ObiectulPânză"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Editează ObiectulPânză"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6562,14 +6608,24 @@ msgid "Move Points"
msgstr "Deplasare punct"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Rotație"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Trage: Rotire"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Deplasați tot"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: Dimensiune"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Rotație"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: Dimensiune"
@@ -6608,12 +6664,14 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Poligon->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Crează Poligon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->Poligon"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Deplasare poligon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7076,11 +7134,6 @@ 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 ""
@@ -7089,6 +7142,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Șterge puncte"
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8213,6 +8271,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8772,6 +8836,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Mod Mutare"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "Anim Clonare Chei"
@@ -8790,6 +8859,11 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Modificări ale Actualizării"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9445,6 +9519,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9506,18 +9584,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Adăugare export inițial..."
-
-#: 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 ""
@@ -9607,18 +9673,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Împachetează Fișierul"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -12094,6 +12148,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12118,7 +12188,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12755,6 +12831,30 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "Mută Pivot"
+
+#, fuzzy
+#~ msgid "Move anchor"
+#~ msgstr "Acțiune de Mutare"
+
+#, fuzzy
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Editează ObiectulPânză"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Poligon->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->Poligon"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Adăugare export inițial..."
+
+#~ msgid "Pack File"
+#~ msgstr "Împachetează Fișierul"
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Sistemul De Fișiere și încărcare Bare"
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index 2c85fe4e8c..d261bb8832 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -87,11 +87,12 @@
# Daniel <dan.ef1999@gmail.com>, 2020.
# NeoLan Qu <it.bulla@mail.ru>, 2020.
# Nikita Epifanov <nikgreens@protonmail.com>, 2020.
+# Cube Show <griiv.06@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-15 07:17+0000\n"
+"PO-Revision-Date: 2020-10-15 23:15+0000\n"
"Last-Translator: Danil Alexeev <danil@alexeev.xyz>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ru/>\n"
@@ -137,15 +138,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"
@@ -576,9 +577,8 @@ msgstr ""
"\n"
"Чтобы активировать возможноÑÑ‚ÑŒ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑких дорожек, "
"перейдите к наÑтройкам импорта Ñцены и уÑтановите\n"
-"\"ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ > Хранилище\" в значение \"Файлы\", а также включите пункт "
-"\"ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ > СохранÑÑ‚ÑŒ пользовательÑкие дорожки\", и заново импортируйте "
-"Ñцену.\n"
+"«ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ > Хранилище» в значение «Файлы», а также включите пункт «ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ "
+"> СохранÑÑ‚ÑŒ пользовательÑкие дорожки», и заново импортируйте Ñцену.\n"
"Ð’ качеÑтве альтернативы иÑпользуйте шаблон импорта, который импортирует "
"анимации в отдельные файлы."
@@ -853,7 +853,7 @@ msgstr ""
#: editor/connections_dialog.cpp
msgid "Connect to Node:"
-msgstr "ПриÑоединить к Узлу:"
+msgstr "ПриÑоединить к узлу:"
#: editor/connections_dialog.cpp
msgid "Connect to Script:"
@@ -917,11 +917,11 @@ msgstr "Один раз"
#: editor/connections_dialog.cpp
msgid "Disconnects the signal after its first emission."
-msgstr "Отключает Ñигнал поÑле его первого вызова."
+msgstr "ОтÑоединÑет Ñигнал поÑле его первой отправки."
#: editor/connections_dialog.cpp
msgid "Cannot connect signal"
-msgstr "Ðе удаетÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ñигнал"
+msgstr "Ðе удаетÑÑ Ð¿Ñ€Ð¸Ñоединить Ñигнал"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/export_template_manager.cpp editor/groups_editor.cpp
@@ -947,15 +947,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..."
@@ -968,7 +968,7 @@ msgstr "ОтÑоединить"
#: editor/connections_dialog.cpp
msgid "Connect a Signal to a Method"
-msgstr "Подключить Ñигнал к методу"
+msgstr "ПриÑоединить Ñигнал к методу"
#: editor/connections_dialog.cpp
msgid "Edit Connection:"
@@ -976,20 +976,19 @@ 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"
msgstr "Сигналы"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Фильтр тайлов"
+msgstr "Фильтр Ñигналов"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
-msgstr "Ð’Ñ‹ уверены, что хотите удалить вÑе Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚ Ñигнала?"
+msgstr "Ð’Ñ‹ уверены, что хотите удалить вÑе ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¾Ñ‚ Ñтого Ñигнала?"
#: editor/connections_dialog.cpp
msgid "Disconnect All"
@@ -1057,7 +1056,7 @@ msgid ""
"Scene '%s' is currently being edited.\n"
"Changes will only take effect when reloaded."
msgstr ""
-"Сцена '%s' в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÐµÑ‚ÑÑ.\n"
+"Сцена «%s» в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÐµÑ‚ÑÑ.\n"
"Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²ÑтупÑÑ‚ в Ñилу только поÑле перезапуÑка."
#: editor/dependency_editor.cpp
@@ -1065,7 +1064,7 @@ msgid ""
"Resource '%s' is in use.\n"
"Changes will only take effect when reloaded."
msgstr ""
-"РеÑÑƒÑ€Ñ '%s' иÑпользуетÑÑ.\n"
+"РеÑÑƒÑ€Ñ Â«%s» иÑпользуетÑÑ.\n"
"Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²ÑтупÑÑ‚ в Ñилу только поÑле перезапуÑка."
#: editor/dependency_editor.cpp
@@ -1199,7 +1198,7 @@ msgstr "Ðвторы Godot Engine"
#: editor/editor_about.cpp
msgid "Project Founders"
-msgstr "ОÑнователи Проекта"
+msgstr "ОÑнователи проекта"
#: editor/editor_about.cpp
msgid "Lead Developer"
@@ -1210,7 +1209,7 @@ msgstr "Ведущий разработчик"
#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
-msgstr "Менеджер проектов "
+msgstr "Менеджер проекта "
#: editor/editor_about.cpp
msgid "Developers"
@@ -1448,7 +1447,7 @@ msgstr "Открыть раÑкладку звуковой шины"
#: 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"
@@ -1526,7 +1525,7 @@ msgstr "Ключевое Ñлово Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать как
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
-msgstr "Ðвтозагрузка '%s' уже ÑущеÑтвует!"
+msgstr "Ðвтозагрузка «%s» уже ÑущеÑтвует!"
#: editor/editor_autoload_settings.cpp
msgid "Rename Autoload"
@@ -1674,6 +1673,36 @@ msgstr ""
"Включите «Import Etc» в ÐаÑтройках проекта или отключите «Driver Fallback "
"Enabled»."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Ð¦ÐµÐ»ÐµÐ²Ð°Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ð° требует Ñжатие текÑтур «ETC» Ð´Ð»Ñ GLES2. Включите «Import "
+"Etc» в ÐаÑтройках проекта."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Ð¦ÐµÐ»ÐµÐ²Ð°Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ð° требует компреÑÑию текÑтур «ETC2» Ð´Ð»Ñ GLES2. Включите "
+"«Import Etc 2» в ÐаÑтройках проекта."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Ð¦ÐµÐ»ÐµÐ²Ð°Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ð° требует ÑÐ¶Ð°Ñ‚Ð¸Ñ Ñ‚ÐµÐºÑтур «ETC» Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ°Ñ‚Ð° драйвера к GLES2.\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
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
@@ -1716,9 +1745,8 @@ msgid "Node Dock"
msgstr "Панель «Узел»"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема"
+msgstr "Панель Â«Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема»"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -1731,7 +1759,7 @@ msgstr "Стереть профиль «%s»? (Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ)"
#: 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."
@@ -1771,19 +1799,19 @@ msgstr "ДоÑтупные клаÑÑÑ‹:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
-msgstr "Ðеверный формат файла \"%s\", импорт прерван."
+msgstr "Ðеверный формат файла «%s», импорт прерван."
#: editor/editor_feature_profile.cpp
msgid ""
"Profile '%s' already exists. Remove it first before importing, import "
"aborted."
msgstr ""
-"Профиль \"%s\" уже ÑущеÑтвует. Удалите его перед импортированием, импорт "
+"Профиль «%s» уже ÑущеÑтвует. Удалите его перед импортированием, импорт "
"прерван."
#: editor/editor_feature_profile.cpp
msgid "Error saving profile to path: '%s'."
-msgstr "Ошибка ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð² \"%s\"."
+msgstr "Ошибка ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð² «%s»."
#: editor/editor_feature_profile.cpp
msgid "Unset"
@@ -2284,23 +2312,23 @@ 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 "Ðеожиданный конец файла '%s'."
+msgstr "Ðеожиданный конец файла «%s»."
#: editor/editor_node.cpp
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"
@@ -2527,7 +2555,7 @@ msgstr "БыÑтро запуÑтить Ñцену..."
#: editor/editor_node.cpp
msgid "Quit"
-msgstr "Выйти"
+msgstr "Выход"
#: editor/editor_node.cpp
msgid "Exit the editor?"
@@ -2572,34 +2600,36 @@ 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 "Ðе удаётÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ поле script Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð°: ' res://addons/%s'."
+msgstr "Ðе удаётÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ поле script Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð°: «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' Ð’ коде еÑÑ‚ÑŒ ошибка. "
-"ПожалуйÑта, проверьте ÑинтакÑиÑ."
+"Ðевозможно загрузить Ñкрипт аддона из иÑточника: «%s». Ð’ коде еÑÑ‚ÑŒ ошибка, "
+"пожалуйÑта, проверьте ÑинтакÑиÑ."
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
msgstr ""
-"Ðе удалоÑÑŒ загрузить Ñкрипт из иÑточника: '%s' базовый тип не EditorPlugin."
+"Ðе удалоÑÑŒ загрузить Ñкрипт из иÑточника: «%s». Базовый тип не EditorPlugin."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
msgstr ""
-"Ðе удалоÑÑŒ загрузить Ñкрипт из иÑточника: '%s' Ñкрипт не в режиме "
+"Ðе удалоÑÑŒ загрузить Ñкрипт из иÑточника: «%s». Скрипт не в режиме "
"инÑтрумента."
#: editor/editor_node.cpp
@@ -2607,8 +2637,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 ""
-"Сцена '%s' автоматичеÑки импортирована, поÑтому модифицирована быть не "
-"может.\n"
+"Сцена «%s» автоматичеÑки импортирована, поÑтому не может быть "
+"модифицирована.\n"
"Чтобы её изменить нужно Ñоздать новую унаÑледованную Ñцену."
#: editor/editor_node.cpp
@@ -2617,12 +2647,12 @@ msgid ""
"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"
@@ -2851,7 +2881,7 @@ msgstr "Обзор реÑурÑов-Ñирот..."
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr "Выйти к ÑпиÑку проектов"
+msgstr "Выйти в ÑпиÑок проектов"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
@@ -2871,14 +2901,18 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Когда Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, при развёртывании в-один-клик иÑполнÑемый файл "
+"будет пытатьÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑÑ Ðº IP-адреÑу Ñтого компьютера, чтобы можно было "
+"отладить запущенный проект.\n"
+"Этот параметр предназначен Ð´Ð»Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð¹ отладки (обычно Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ "
+"мобильного уÑтройÑтва).\n"
+"Вам не нужно включать его, чтобы иÑпользовать отладчик GDScript локально."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "Ðебольшое развёртывание через Ñеть"
+msgstr "Тонкое развёртывание через Ñетевую ФС"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2887,63 +2921,57 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"Когда Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, ÑкÑпорт или развёртывание будет Ñоздавать "
-"минимальный иÑполнÑемый файл.\n"
+"Когда Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, развёртывание в-один-клик будет ÑкÑпортировать "
+"только иÑполнÑемый файл без данных проекта.\n"
"Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема проекта будет предоÑтавлÑÑ‚ÑŒÑÑ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð¾Ð¼ через Ñеть.\n"
"Ðа Android развёртывание будет быÑтрее при подключении через USB. Эта Ð¾Ð¿Ñ†Ð¸Ñ "
-"уÑкорÑет теÑтирование игр Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ объемом памÑти."
+"уÑкорÑет теÑтирование проектов Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼Ð¸ реÑурÑами."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "Видимые облаÑти ÑоприкоÑновениÑ"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"Когда Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, облаÑти ÑоприкоÑновений и узлы Raycast(в 2D и 3D) "
-"будут видимыми в запущенной игре."
+"Когда Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, формы Ñтолкновений и узлы Raycast (2D и 3D) будут "
+"видны в запущенном проекте."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "Ð’Ð¸Ð´Ð¸Ð¼Ð°Ñ Ð½Ð°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"Когда Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, навигационные полиÑетки и полигоны будут видимыми "
-"в запущенной игре."
+"Когда Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, навигационные полиÑетки и полигоны будут видны в "
+"запущенном проекте."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
-msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ в Ñцене"
+msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ в Ñценах"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Когда Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, вÑе изменениÑ, внеÑённые на Ñцену, в редакторе "
-"будут перенеÑены в запущенную игру.\n"
-"При удалённом иÑпользовании на уÑтройÑтве, Ñто работает более Ñффективно Ñ "
-"Ñетевой файловой ÑиÑтемой."
+"Когда Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñцене, Ñделанные в редакторе, "
+"будут перенеÑены в запущенный проект.\n"
+"При удалённом иÑпользовании на уÑтройÑтве, Ñто работает Ñффективнее еÑли "
+"ÑÐµÑ‚ÐµÐ²Ð°Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема включена."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ в Ñкриптах"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
@@ -2951,9 +2979,9 @@ msgid ""
"filesystem option is enabled."
msgstr ""
"Когда Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, любой Ñохранённый Ñкрипт будет перезагружен в "
-"запущенную игру.\n"
-"При удалённом иÑпользовании на уÑтройÑтве, Ñто работает более Ñффективно Ñ "
-"Ñетевой файловой ÑиÑтемой."
+"запущенном проекте.\n"
+"При удалённом иÑпользовании на уÑтройÑтве, Ñто работает Ñффективнее еÑли "
+"ÑÐµÑ‚ÐµÐ²Ð°Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема включена."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -3007,8 +3035,7 @@ msgstr "Управление шаблонами ÑкÑпорта..."
msgid "Help"
msgstr "Справка"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3159,7 +3186,7 @@ msgid ""
"operation again."
msgstr ""
"Шаблон Ñборки Android уже уÑтановлен в Ñтом проекте и не будет перезапиÑан.\n"
-"Удалите директорию \"res://android/build\" вручную прежде чем выполнÑÑ‚ÑŒ Ñту "
+"Удалите директорию «res://android/build» вручную прежде чем выполнÑÑ‚ÑŒ Ñту "
"операцию Ñнова."
#: editor/editor_node.cpp
@@ -3431,14 +3458,14 @@ msgid "Add Key/Value Pair"
msgstr "Добавить пару: Ключ/Значение"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
-"Ðе найден рабочий ÑкÑпортер Ð´Ð»Ñ Ñтой платформы.\n"
-"ПожалуйÑта, добавьте его в меню ÑкÑпорта."
+"Ðе найден активный преÑет Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ платформы.\n"
+"ПожалуйÑта, добавьте активный преÑет в меню ÑкÑпорта или пометьте "
+"ÑущеÑтвующий преÑет как активный."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -3454,7 +3481,7 @@ 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:"
@@ -3521,7 +3548,7 @@ 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."
@@ -3606,7 +3633,7 @@ msgid ""
"The problematic templates archives can be found at '%s'."
msgstr ""
"Ошибка уÑтановки шаблонов.\n"
-"Ðрхивы Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð½Ñ‹Ð¼Ð¸ шаблонами можно найти в \"%s\"."
+"Ðрхивы Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð½Ñ‹Ð¼Ð¸ шаблонами можно найти в «%s»."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
@@ -4078,11 +4105,11 @@ 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:"
@@ -4435,7 +4462,6 @@ msgid "Add Node to BlendTree"
msgstr "Добавить узел к BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Узел перемещён"
@@ -5129,7 +5155,7 @@ msgstr "Ð’Ñе"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No results for \"%s\"."
-msgstr "Ðет результатов Ð´Ð»Ñ \"%s\"."
+msgstr "Ðет результатов Ð´Ð»Ñ Â«%s»."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5188,7 +5214,7 @@ msgid ""
"Light' flag is on."
msgstr ""
"Ðет полиÑеток Ð´Ð»Ñ Ð·Ð°Ð¿ÐµÐºÐ°Ð½Ð¸Ñ. УбедитеÑÑŒ, что они Ñодержат канал UV2 и что "
-"флаг 'Запекание Ñвета' включен."
+"флаг «Запекание Ñвета» включён."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Failed creating lightmap images, make sure path is writable."
@@ -5265,27 +5291,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Создать горизонтальные и вертикальные направлÑющие"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "ПеремеÑтить опорную точку"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "Вращать CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "Вращать CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "ПеремеÑтить Ñкорь"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "ПеремеÑтить CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Изменить размер CanvasItem"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "Вращать CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Вращать CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "ПеремеÑтить CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "ПеремеÑтить CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5478,7 +5527,7 @@ 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' чтобы перемещать точку "
+"Ðажмите «V» чтобы изменить точку вращениÑ, «Shift+V» чтобы перемещать точку "
"вращениÑ."
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6287,15 +6336,15 @@ msgstr "Ð”Ð°Ð½Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ Ð½Ðµ Ñодержит граней."
#: editor/plugins/particles_editor_plugin.cpp
msgid "\"%s\" doesn't inherit from Spatial."
-msgstr "\"%s\" не наÑледуетÑÑ Ð¾Ñ‚ Spatial."
+msgstr "«%s» не наÑледуетÑÑ Ð¾Ñ‚ Spatial."
#: editor/plugins/particles_editor_plugin.cpp
msgid "\"%s\" doesn't contain geometry."
-msgstr "\"%s\" не Ñодержит геометрии."
+msgstr "«%s» не Ñодержит геометрии."
#: editor/plugins/particles_editor_plugin.cpp
msgid "\"%s\" doesn't contain face geometry."
-msgstr "\"%s\" не Ñодержит геометрии Ñ Ð³Ñ€Ð°Ð½Ñми."
+msgstr "«%s» не Ñодержит геометрии Ñ Ð³Ñ€Ð°Ð½Ñми."
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
@@ -6323,7 +6372,7 @@ msgstr "ИÑточник излучениÑ: "
#: editor/plugins/particles_editor_plugin.cpp
msgid "A processor material of type 'ParticlesMaterial' is required."
-msgstr "ТребуетÑÑ Ð¼Ð°Ñ‚ÐµÑ€Ð¸Ð°Ð» типа 'ParticlesMaterial'."
+msgstr "ТребуетÑÑ Ð¼Ð°Ñ‚ÐµÑ€Ð¸Ð°Ð» типа «ParticlesMaterial»."
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
@@ -6563,14 +6612,24 @@ msgid "Move Points"
msgstr "Передвинуть точки"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Поворот"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Тащить: Поворот"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: Передвинуть вÑе"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: МаÑштаб"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Поворот"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: МаÑштаб"
@@ -6612,12 +6671,14 @@ msgid "Radius:"
msgstr "РадиуÑ:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Полигон -> UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Создать полигон и UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV -> Полигон"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Преобразовать в Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6842,13 +6903,13 @@ msgstr "Сортировать"
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
-msgstr "ДвигатьÑÑ Ð²Ð²ÐµÑ€Ñ…"
+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 "ДвигатьÑÑ Ð²Ð½Ð¸Ð·"
+msgstr "ПеремеÑтить вниз"
#: editor/plugins/script_editor_plugin.cpp
msgid "Next script"
@@ -7010,12 +7071,12 @@ msgstr "Цель"
msgid ""
"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'."
msgstr ""
-"ОтÑутÑтвует подключённый метод '%s' Ð´Ð»Ñ Ñигнала '%s' от узла '%s' к узлу "
-"'%s'."
+"ОтÑутÑтвует подключённый метод «%s» Ð´Ð»Ñ Ñигнала «%s» от узла «%s» к узлу "
+"«%s»."
#: editor/plugins/script_text_editor.cpp
msgid "[Ignore]"
-msgstr "(игнорировать)"
+msgstr "[Игнорировать]"
#: editor/plugins/script_text_editor.cpp
msgid "Line"
@@ -7033,7 +7094,8 @@ msgstr "Можно перетащить только реÑÑƒÑ€Ñ Ð¸Ð· файлÐ
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't drop nodes because script '%s' is not used in this scene."
msgstr ""
-"ÐÐµÐ»ÑŒÐ·Ñ Ð±Ñ€Ð¾Ñать узлы, потому что в Ñтой Ñцене не иÑпользуетÑÑ Ñкрипт '%s'."
+"Ðевозможно перетащить узлы, потому что в Ñтой Ñцене не иÑпользуетÑÑ Ñкрипт "
+"«%s»."
#: editor/plugins/script_text_editor.cpp
msgid "Lookup Symbol"
@@ -7045,7 +7107,7 @@ msgstr "Выбрать цвет"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Convert Case"
-msgstr "Переключить региÑÑ‚Ñ€"
+msgstr "Преобразовать региÑÑ‚Ñ€"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Uppercase"
@@ -7057,7 +7119,7 @@ msgstr "нижний региÑÑ‚Ñ€"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Capitalize"
-msgstr "Ð—Ð°Ð³Ð»Ð°Ð²Ð½Ð°Ñ Ð±ÑƒÐºÐ²Ð°"
+msgstr "С Заглавных Букв"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Syntax Highlighter"
@@ -7065,11 +7127,6 @@ 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 "Закладки"
@@ -7077,6 +7134,11 @@ msgstr "Закладки"
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7178,7 +7240,7 @@ 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"
@@ -7190,7 +7252,7 @@ msgstr "Переход к Ñледующей точке оÑтанова"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Previous Breakpoint"
-msgstr "Перейти к предыдущей точке оÑтановки"
+msgstr "Перейти к предыдущей точке оÑтанова"
#: editor/plugins/shader_editor_plugin.cpp
msgid ""
@@ -7847,9 +7909,8 @@ msgid "New Animation"
msgstr "ÐÐ¾Ð²Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "СкороÑÑ‚ÑŒ (FPS):"
+msgstr "СкороÑÑ‚ÑŒ:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8167,6 +8228,15 @@ msgid "Paint Tile"
msgstr "ПокраÑить тайл"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+ЛКМ: ÐариÑовать линию\n"
+"Shift+Ctrl+ЛКМ: ÐариÑовать прÑмоугольник"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8690,6 +8760,11 @@ msgid "Add Node to Visual Shader"
msgstr "Добавить узел в визуальный шейдер"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Узел перемещён"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Дублировать узлы"
@@ -8707,6 +8782,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Изменен тип ввода визуального шейдера"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Задать Ð¸Ð¼Ñ uniform"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Вершины"
@@ -9102,8 +9182,8 @@ msgid ""
msgstr ""
"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n"
"\n"
-"Возвращает 0.0, еÑли 'x' меньше, чем 'edge0', и 1.0, еÑли x больше, чем "
-"'edge1'. Ð’ оÑтальных ÑлучаÑÑ… возвращаемое значение интерполируетÑÑ "
+"Возвращает 0.0, еÑли «x» меньше, чем «edge0», и 1.0, еÑли x больше, чем "
+"«edge1». Ð’ оÑтальных ÑлучаÑÑ… возвращаемое значение интерполируетÑÑ "
"полиномами Эрмита в промежутке от 0.0 до 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -9321,8 +9401,8 @@ msgid ""
msgstr ""
"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n"
"\n"
-"Возвращает 0.0, еÑли 'x' меньше, чем 'edge0', и 1.0, еÑли 'x' больше, чем "
-"'edge1'. Ð’ оÑтальных ÑлучаÑÑ… возвращаемое значение интерполируетÑÑ "
+"Возвращает 0.0, еÑли «x» меньше, чем «edge0», и 1.0, еÑли «x» больше, чем "
+"«edge1». Ð’ оÑтальных ÑлучаÑÑ… возвращаемое значение интерполируетÑÑ "
"полиномами Эрмита в промежутке от 0.0 до 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -9335,8 +9415,8 @@ msgid ""
msgstr ""
"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n"
"\n"
-"Возвращает 0.0, еÑли 'x' меньше, чем 'edge0', и 1.0, еÑли 'x' больше, чем "
-"'edge1'. Ð’ оÑтальных ÑлучаÑÑ… возвращаемое значение интерполируетÑÑ "
+"Возвращает 0.0, еÑли «x» меньше, чем «edge0», и 1.0, еÑли «x» больше, чем "
+"«edge1». Ð’ оÑтальных ÑлучаÑÑ… возвращаемое значение интерполируетÑÑ "
"полиномами Эрмита в промежутке от 0.0 до 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -9347,7 +9427,7 @@ msgid ""
msgstr ""
"Step function( vector(edge), vector(x) ).\n"
"\n"
-"Возвращает 0.0, еÑли 'x' меньше, чем 'edge', и 1.0 в противном Ñлучае."
+"Возвращает 0.0, еÑли «x» меньше, чем «edge», и 1.0 в противном Ñлучае."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9357,7 +9437,7 @@ msgid ""
msgstr ""
"Step function( scalar(edge), vector(x) ).\n"
"\n"
-"Возвращает 0.0, еÑли 'x' меньше, чем 'edge', и 1.0 в противном Ñлучае."
+"Возвращает 0.0, еÑли «x» меньше, чем «edge», и 1.0 в противном Ñлучае."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Adds vector to vector."
@@ -9418,6 +9498,10 @@ msgstr ""
"varying, uniform и конÑтанты."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(только в режиме фрагмента/Ñвета) СкалÑÑ€Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ."
@@ -9490,27 +9574,15 @@ msgid "Runnable"
msgstr "Ðктивный"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Добавить начальный ÑкÑпорт..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Добавить предыдущие патчи..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Удалить патч '%s' из ÑпиÑка?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
-msgstr "Удалить '%s'?"
+msgstr "Удалить преÑет «%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"
+"Ðе удалоÑÑŒ ÑкÑпортировать проект Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ñ‹ «%s».\n"
"Шаблоны ÑкÑпорта отÑутÑтвуют или недейÑтвительны."
#: editor/project_export.cpp
@@ -9601,18 +9673,6 @@ msgstr ""
"(через запÑтую, например: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Патчи"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Создать патч"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Файл пакета"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "ВозможноÑти"
@@ -9700,8 +9760,7 @@ msgstr "Ошибка при открытии файла пакета (Ðе ÑвÐ
#: editor/project_manager.cpp
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."
@@ -9709,7 +9768,7 @@ msgstr "ПожалуйÑта, выберите пуÑтую папку."
#: editor/project_manager.cpp
msgid "Please choose a \"project.godot\" or \".zip\" file."
-msgstr "ПожалуйÑта, выберите файл \"project.godot\" или \".zip\"."
+msgstr "ПожалуйÑта, выберите файл «project.godot» или «.zip»."
#: editor/project_manager.cpp
msgid "This directory already contains a Godot project."
@@ -9855,7 +9914,7 @@ 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?"
@@ -10053,11 +10112,11 @@ msgid ""
"'\"'"
msgstr ""
"Ðеверное Ð¸Ð¼Ñ Ð´ÐµÐ¹ÑтвиÑ. Оно не может быть пуÑтым и не может Ñодержать Ñимволы "
-"\"/\", \":\", \"=\", \"\\\" или \"''\""
+"«/», «:», «=», «\\» или «\"»"
#: editor/project_settings_editor.cpp
msgid "An action with the name '%s' already exists."
-msgstr "ДейÑтвие '%s' уже ÑущеÑтвует."
+msgstr "ДейÑтвие Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ «%s» уже ÑущеÑтвует."
#: editor/project_settings_editor.cpp
msgid "Rename Input Action Event"
@@ -10181,11 +10240,11 @@ msgstr "Сначала выберите Ñлемент наÑтроек!"
#: editor/project_settings_editor.cpp
msgid "No property '%s' exists."
-msgstr "СвойÑтво '%s' не ÑущеÑтвует."
+msgstr "СвойÑтво «%s» не ÑущеÑтвует."
#: editor/project_settings_editor.cpp
msgid "Setting '%s' is internal, and it can't be deleted."
-msgstr "Параметр '%s' ÑвлÑетÑÑ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½Ð¸Ð¼, и не может быть удален."
+msgstr "Параметр «%s» ÑвлÑетÑÑ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½Ð¸Ð¼ и не может быть удалён."
#: editor/project_settings_editor.cpp
msgid "Delete Item"
@@ -10196,8 +10255,8 @@ msgid ""
"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'."
msgstr ""
-"ÐедопуÑтимое Ð¸Ð¼Ñ Ð´ÐµÐ¹ÑтвиÑ. Оно не может быть пуÑтым или Ñодержать '/', ':', "
-"'=', '\\' или '\"'."
+"ÐедопуÑтимое Ð¸Ð¼Ñ Ð´ÐµÐ¹ÑтвиÑ. Оно не может быть пуÑтым или Ñодержать «/», «:», "
+"«=», «\\» или «\"»."
#: editor/project_settings_editor.cpp
msgid "Add Input Action"
@@ -10412,19 +10471,16 @@ msgid "Batch Rename"
msgstr "Групповое переименование"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "Заменить: "
+msgstr "Заменить:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "ПрефикÑ"
+msgstr "ПрефикÑ:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "СуффикÑ"
+msgstr "СуффикÑ:"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10471,10 +10527,9 @@ msgid "Per-level Counter"
msgstr "Счетчик Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ уровнÑ"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
-"ЕÑли уÑтановить, Ñчетчик перезапуÑтитÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ группы дочерних узлов"
+"ЕÑли уÑтановлено, Ñчетчик перезапуÑкаетÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ группы дочерних узлов."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10534,9 +10589,8 @@ msgid "Reset"
msgstr "СброÑить"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "Ошибка в регулÑрном выражении"
+msgstr "Ошибка в регулÑрном выражении:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -10681,7 +10735,7 @@ msgid ""
"Disabling \"editable_instance\" will cause all properties of the node to be "
"reverted to their default."
msgstr ""
-"Отключение параметра \"editable_instance\" приведет к тому, что вÑе ÑвойÑтва "
+"Отключение параметра «editable_instance» приведет к тому, что вÑе ÑвойÑтва "
"узла будут возвращены к значениÑм по умолчанию."
#: editor/scene_tree_dock.cpp
@@ -10985,7 +11039,7 @@ msgstr "Выбрано неверное раÑширение."
#: editor/script_create_dialog.cpp
msgid "Error loading template '%s'"
-msgstr "Ошибка при загрузке шаблона '%s'"
+msgstr "Ошибка при загрузке шаблона «%s»"
#: editor/script_create_dialog.cpp
msgid "Error - Could not create script in filesystem."
@@ -11795,9 +11849,9 @@ 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, чтобы проÑто Ñкопировать подпиÑÑŒ."
+"Ðевозможно перетащить ÑвойÑтва, потому что в Ñтой Ñцене не иÑпользуетÑÑ "
+"Ñкрипт «%s».\n"
+"Перетащите, ÑƒÐ´ÐµÑ€Ð¶Ð¸Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÑƒ Shift, чтобы Ñкопировать только Ñигнатуру."
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Getter Property"
@@ -11837,7 +11891,7 @@ msgstr "ПриÑоединить цепь узлов"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
-msgstr "Скрипт уже имеет функцию '%s'"
+msgstr "Скрипт уже имеет функцию «%s»"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Input Value"
@@ -11982,7 +12036,7 @@ msgstr "Путь не приводит к узлу!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr "Ðеправильный Ð¸Ð½Ð´ÐµÐºÑ ÑвойÑтва имени '%s' в узле %s."
+msgstr "ÐедопуÑтимое Ð¸Ð¼Ñ ÑвойÑтва-индекÑа «%s» в узле %s."
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
@@ -12035,7 +12089,7 @@ msgstr "ЧаÑти пакета не могут быть пуÑтыми."
#: platform/android/export/export.cpp
msgid "The character '%s' is not allowed in Android application package names."
-msgstr "Символ '%s' не допуÑтим в имени пакета Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ Android."
+msgstr "Символ «%s» не разрешён в имени пакета Android-приложениÑ."
#: platform/android/export/export.cpp
msgid "A digit cannot be the first character in a package segment."
@@ -12043,11 +12097,11 @@ msgstr "ЧиÑло не может быть первым Ñимволом в чÐ
#: platform/android/export/export.cpp
msgid "The character '%s' cannot be the first character in a package segment."
-msgstr "Символ '%s' не может ÑтоÑÑ‚ÑŒ первым в Ñегменте пакета."
+msgstr "Символ «%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"
@@ -12134,6 +12188,22 @@ msgstr ""
"Xr» - Ñто «Oculus Mobile VR»."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12167,8 +12237,14 @@ msgstr ""
"Android."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Ðет Ñборки apk в: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12176,7 +12252,7 @@ msgstr "ОтÑутÑтвует определитель."
#: platform/iphone/export/export.cpp
msgid "The character '%s' is not allowed in Identifier."
-msgstr "Символ '%s' в идентификаторе не допуÑкаетÑÑ."
+msgstr "Символ «%s» в идентификаторе не допуÑкаетÑÑ."
#: platform/iphone/export/export.cpp
msgid "App Store Team ID not specified - cannot configure the project."
@@ -12344,9 +12420,9 @@ msgid ""
"Polygon-based shapes are not meant be used nor edited directly through the "
"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
msgstr ""
-"Полигональные фигуры не предназначены Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ "
-"непоÑредÑтвенно через узел \"CollisionShape2D\". ПожалуйÑта, иÑпользуйте "
-"вмеÑто Ñтого узел \"CollisionPolygon2D\" ."
+"Полигональные формы не предназначены Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ "
+"непоÑредÑтвенно через узел CollisionShape2D. ПожалуйÑта, иÑпользуйте вмеÑто "
+"Ñтого узел CollisionPolygon2D."
#: scene/2d/cpu_particles_2d.cpp
msgid ""
@@ -12354,14 +12430,13 @@ msgid ""
"\"Particles Animation\" enabled."
msgstr ""
"ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ CPUParticles2D требует иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ CanvasItemMaterial Ñ "
-"включенной функцией \"Particles Animation\"."
+"включённой опцией «Particles Animation»."
#: scene/2d/light_2d.cpp
msgid ""
"A texture with the shape of the light must be supplied to the \"Texture\" "
"property."
-msgstr ""
-"ТекÑтуры Ñ Ñ„Ð¾Ñ€Ð¼Ð¾Ð¹ Ñвета должны быть предоÑтавлены параметру \"Texture\"."
+msgstr "ТекÑтуры Ñ Ñ„Ð¾Ñ€Ð¼Ð¾Ð¹ Ñвета должны быть предоÑтавлены параметру «Texture»."
#: scene/2d/light_occluder_2d.cpp
msgid ""
@@ -12404,9 +12479,9 @@ msgid ""
"Use the CPUParticles2D node instead. You can use the \"Convert to "
"CPUParticles\" option for this purpose."
msgstr ""
-"ЧаÑтицы на базе GPU не поддерживаютÑÑ Ð²Ð¸Ð´ÐµÐ¾ драйвером GLES2.\n"
+"GPU-чаÑтицы не поддерживаютÑÑ Ð²Ð¸Ð´ÐµÐ¾Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð¾Ð¼ GLES2.\n"
"ВмеÑто Ñтого иÑпользуйте узел CPUParticles2D. Ð”Ð»Ñ Ñтого можно "
-"воÑпользоватьÑÑ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ \"Преобразовать в CPUParticles\"."
+"воÑпользоватьÑÑ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ «Преобразовать в CPUParticles»."
#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
msgid ""
@@ -12421,7 +12496,7 @@ msgid ""
"\"Particles Animation\" enabled."
msgstr ""
"Ð”Ð»Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ð¸ Particles2D требуетÑÑ Ð¸Ñпользование CanvasItemMaterial Ñ "
-"включенной функцией \"Particles Animation\"."
+"включенной опцией «Particles Animation»."
#: scene/2d/path_2d.cpp
msgid "PathFollow2D only works when set as a child of a Path2D node."
@@ -12619,7 +12694,7 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "InterpolatedCamera уÑтарела и будет удалена в Godot 4.0."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12644,9 +12719,9 @@ msgid ""
"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles"
"\" option for this purpose."
msgstr ""
-"ЧаÑтицы на базе GPU не поддерживаютÑÑ Ð²Ð¸Ð´ÐµÐ¾ драйвером GLES2.\n"
+"GPU-чаÑтицы не поддерживаютÑÑ Ð²Ð¸Ð´ÐµÐ¾Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð¾Ð¼ GLES2.\n"
"ВмеÑто Ñтого иÑпользуйте узел CPUParticles. Ð”Ð»Ñ Ñтого можно воÑпользоватьÑÑ "
-"опцией \"Преобразовать в CPUParticles\"."
+"опцией «Преобразовать в CPUParticles»."
#: scene/3d/particles.cpp
msgid ""
@@ -12670,8 +12745,8 @@ msgid ""
"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its "
"parent Path's Curve resource."
msgstr ""
-"PathFollow ROTATION_ORIENTED требует Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° \"Up Vector\" в "
-"родительÑком реÑурÑе Path's Curve."
+"ROTATION_ORIENTED узла PathFollow требует Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «Up Vector» в "
+"родительÑком реÑурÑе Path Curve."
#: scene/3d/physics_body.cpp
msgid ""
@@ -12712,7 +12787,7 @@ msgid ""
"order for AnimatedSprite3D to display frames."
msgstr ""
"Чтобы AnimatedSprite3D отображал кадры, реÑÑƒÑ€Ñ SpriteFrames должен быть "
-"Ñоздан или задан в ÑвойÑтве \"Frames\"."
+"Ñоздан или задан в ÑвойÑтве «Frames»."
#: scene/3d/vehicle_body.cpp
msgid ""
@@ -12727,8 +12802,8 @@ msgid ""
"WorldEnvironment requires its \"Environment\" property to contain an "
"Environment to have a visible effect."
msgstr ""
-"WorldEnvironment требует, чтобы ее ÑвойÑтво \"Environment\" Ñодержало "
-"Environment, чтобы иметь видимый Ñффект."
+"СвойÑтво «Environment» узла WorldEnvironment требует реÑÑƒÑ€Ñ Environment, "
+"чтобы иметь видимый Ñффект."
#: scene/3d/world_environment.cpp
msgid ""
@@ -12747,7 +12822,7 @@ msgstr ""
#: scene/animation/animation_blend_tree.cpp
msgid "On BlendTree node '%s', animation not found: '%s'"
-msgstr "Ðа узле BlendTree '%s' Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ð½Ðµ найдена: '%s'"
+msgstr "Ðа узле BlendTree «%s» Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ð½Ðµ найдена: «%s»"
#: scene/animation/animation_blend_tree.cpp
msgid "Animation not found: '%s'"
@@ -12755,15 +12830,15 @@ msgstr "ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ð½Ðµ найдена: %s"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
-msgstr "Ð’ узле '%s' недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ: '%s'."
+msgstr "Ð’ узле «%s» недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ: «%s»."
#: scene/animation/animation_tree.cpp
msgid "Invalid animation: '%s'."
-msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ: \"%s\"."
+msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ: «%s»."
#: scene/animation/animation_tree.cpp
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."
@@ -12823,8 +12898,8 @@ msgid ""
msgstr ""
"Контейнер Ñам по Ñебе не имеет ÑмыÑла, пока Ñкрипт не наÑтроит режим "
"Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ ÐµÐ³Ð¾ дочерних Ñлементов.\n"
-"ЕÑли не будете добавлÑÑ‚ÑŒ Ñкрипт, то иÑпользуйте вмеÑто Ñтого узел \"Control"
-"\"."
+"ЕÑли вы не планируете добавлÑÑ‚ÑŒ Ñкрипт, то иÑпользуйте вмеÑто Ñтого узел "
+"«Control»."
#: scene/gui/control.cpp
msgid ""
@@ -12887,11 +12962,11 @@ msgid ""
"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
"texture to some node for display."
msgstr ""
-"Эта облаÑÑ‚ÑŒ не уÑтановлена в качеÑтве цели рендеринга. ЕÑли вы ÑобираетеÑÑŒ "
-"иÑпользовать её Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñодержимого прÑмо на Ñкран, то Ñделайте её "
-"потомком Control'а, чтобы она могла получить размер. Ð’ противном Ñлучае, "
-"Ñделайте её целью рендеринга и назначьте её внутреннюю текÑтуру какому-либо "
-"узлу Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ."
+"Этот viewport не уÑтановлен в качеÑтве цели рендеринга. ЕÑли вы ÑобираетеÑÑŒ "
+"иÑпользовать его Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñодержимого прÑмо на Ñкран, то Ñделайте её "
+"потомком Control'а, чтобы он мог получить размер. Ð’ противном Ñлучае, "
+"Ñделайте его целью рендеринга и назначьте его внутреннюю текÑтуру какому-"
+"либо узлу Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ."
#: scene/main/viewport.cpp
msgid "Viewport size must be greater than 0 to render anything."
@@ -12925,6 +13000,42 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð
msgid "Constants cannot be modified."
msgstr "КонÑтанты не могут быть изменены."
+#~ msgid "Move pivot"
+#~ msgstr "ПеремеÑтить опорную точку"
+
+#~ msgid "Move anchor"
+#~ msgstr "ПеремеÑтить Ñкорь"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Изменить размер CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Полигон -> UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV -> Полигон"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Добавить начальный ÑкÑпорт..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Добавить предыдущие патчи..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Удалить патч «%s» из ÑпиÑка?"
+
+#~ msgid "Patches"
+#~ msgstr "Патчи"
+
+#~ msgid "Make Patch"
+#~ msgstr "Создать патч"
+
+#~ msgid "Pack File"
+#~ msgstr "Файл пакета"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Ðет Ñборки apk в: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Панели Â«Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема» и «Импорт»"
diff --git a/editor/translations/si.po b/editor/translations/si.po
index d474b218ba..87851aa75a 100644
--- a/editor/translations/si.po
+++ b/editor/translations/si.po
@@ -1570,6 +1570,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2823,8 +2843,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4210,7 +4229,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5034,27 +5052,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6304,7 +6338,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6312,6 +6346,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6350,11 +6392,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6797,16 +6839,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7889,6 +7931,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8402,6 +8450,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Duplicate Nodes"
msgstr "යතුරු පිටපත් කරන්න"
@@ -8421,6 +8473,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9080,6 +9136,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9140,18 +9200,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9239,18 +9287,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11656,6 +11692,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11680,7 +11732,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index 9ef7eb1d1a..cedcac1f60 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-08 11:40+0000\n"
+"PO-Revision-Date: 2020-10-03 15:29+0000\n"
"Last-Translator: Richard Urban <redasuio1@gmail.com>\n"
"Language-Team: Slovak <https://hosted.weblate.org/projects/godot-engine/"
"godot/sk/>\n"
@@ -898,9 +898,8 @@ msgid "Signals"
msgstr "Signály"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Filter:"
+msgstr "Signály Filtru"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1590,6 +1589,37 @@ msgstr ""
"Povoľte 'Import Etc' v Nastaveniach Projektu, alebo vipnite 'Driver Fallback "
"Enabled'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Target platforma potrebuje 'ETC' kompresor textúr pre GLES2. Povoliť 'Import "
+"Etc' v Nastaveniach Projektu."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Target platforma potrebuje 'ETC2' kompresor textúr pre GLES3. Povoliť'Import "
+"Etc 2' v Nastaveniach Projektu."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Target platform potrebuje'ETC' kompresor textúr pre driver fallback do "
+"GLES2.\n"
+"Povoľte 'Import Etc' v Nastaveniach Projektu, alebo vipnite 'Driver Fallback "
+"Enabled'."
+
#: 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
@@ -1631,9 +1661,8 @@ msgid "Node Dock"
msgstr "Node Dock"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "FileSystém"
+msgstr "FileSystém Dock"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2785,14 +2814,18 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"KeÄ je povolená táto možnosÅ¥, použitím one-click deploy sa spraví pokus o "
+"pripojenie k IP tohoto poÄítaÄa takže spustený projekt sa bude daÅ¥ "
+"debuggovať.\n"
+"Táto možnosÅ¥ je urÄená k debughovaniu na diaľku (typicky pre mobilné "
+"zariadenia).\n"
+"Nemusíte ju povoľovať aby ste použili GDScript debugger lokálne."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "Malý Deploy z Network FS"
+msgstr "Malý Deploy z Network Filesystémom"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2801,63 +2834,57 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"KeÄ bude povolená táto možnosÅ¥, export alebo deploy vyprodukujú menej \n"
-"súboru executable.\n"
+"KeÄ povolíte túto možnosÅ¥, použitím one-click deploy pre Android exportuje "
+"spustiteľný bez dát projektu.\n"
"Filesystém bude z projektu poskytovaný editorom v sieti.\n"
-"Na Androide, predeploy budete potrebovať USB kábel pre rýchlejší výkon. Táto "
-"možnosť zrýchľuje proces testovania."
+"Na Androide, deployovanie bude potrebovať USB kábel pre rýchlejší výkon. "
+"Táto možnosť zrýchľuje proces testovania."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "Viditeľné Tvary Kolízie"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"Tvary Kolízie a raycast node-y (pre 2D a 3D) budú viditeľné po spustení hry "
-"ak budete mať zapnutú túto možnosť."
+"KeÄ je povolená táto možnosÅ¥,\n"
+"Tvary Kolízie a raycast node-y (2D a 3D) budú viditeľné po spustení projektu."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "Viditeľná Navigácia"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"NavigaÄné mesh-e a polygony budú viditeľné po spustení hry ak budete maÅ¥ "
-"zapnutú túto možnosť."
+"KeÄ bude povolená táto možnosÅ¥,\n"
+"NavigaÄné mesh-e a polygony budú viditeľné po spustení projektu."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
-msgstr "Zmeny Synchronizácie Scény"
+msgstr "Zosynchronizovať Zmeny Scény"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"KeÄ zapnete túto možnosÅ¥, akékoľvek zmeny v scéne v editore budú náhradné so "
-"spustenou hrou.\n"
-"KeÄ je použitá na diaľku v zariadení, je to viac efektívne z network "
-"filesystémom."
+"KeÄ zapnete túto možnosÅ¥, akékoľvek zmeny do scény v editore budú náhradené "
+"so spusteným projektom.\n"
+"KeÄ je použitá na diaľku v zariadení, je to viac efektívne keÄ je zapnutá "
+"možnosť network filesytem."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
-msgstr "Zmeny Synchronizácie Scriptu"
+msgstr "Zosynchronizovať Zmeny Scriptov"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
@@ -2865,9 +2892,9 @@ msgid ""
"filesystem option is enabled."
msgstr ""
"KeÄ je zapnutá táto MožnosÅ¥, akýkoľvek uložený script bude znovu naÄítaný v "
-"spustenej hre.\n"
-"KeÄ je použitá na diaľku zo zariadenia, toto je viac efektívnejÅ¡ie z network "
-"filesystémom."
+"spustenom projekte.\n"
+"KeÄ je použitá na diaľku zo zariadenia, tak je to viac efektívnejÅ¡ie keÄ je "
+"povolený network filesystem."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -2921,8 +2948,7 @@ msgstr "Spravovať Export Templates..."
msgid "Help"
msgstr "Pomoc"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3342,14 +3368,14 @@ msgid "Add Key/Value Pair"
msgstr "PridaÅ¥ KľúÄ/Hodnota \"Pair\""
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
"Pre túto platformu sa nenašiel žiadny spustiteľný \"export preset\" .\n"
-"Prosím pridajte spustiteľný \"preset\" v export menu."
+"Prosím pridajte spustiteľný \"preset\" v export menu alebo definujte "
+"existujúci \"preset\" ako spustiteľný."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -4345,7 +4371,6 @@ msgid "Add Node to BlendTree"
msgstr "Pridať Node do BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Node sa pohol"
@@ -5172,27 +5197,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Vytvoriť Horizontálne a Vertikálne Návody"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Presunúť pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate %d CanvasItems"
msgstr "OtoÄiÅ¥ CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Presunúť kovadlinu"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "OtoÄiÅ¥ CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Zmeniť Veľkosť CanvasItem-u"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Presunúť CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale %d CanvasItems"
msgstr "Veľkosť CanvasItem-u"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr "Veľkosť CanvasItem-u"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Presunúť CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Presunúť CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5670,6 +5718,8 @@ msgid ""
"Drag & drop + Shift : Add node as sibling\n"
"Drag & drop + Alt : Change node type"
msgstr ""
+"Zoberte a položte + Shift : pridajte node ako súrodenca\n"
+"Zoberte a položte + Alt : Zmente typ node-u"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Create Polygon3D"
@@ -6468,14 +6518,23 @@ msgid "Move Points"
msgstr "Všetky vybrané"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr ""
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Potiahnutím: OtáÄenie"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6514,12 +6573,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Všetky vybrané"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6975,11 +7035,6 @@ 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 ""
@@ -6988,6 +7043,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Všetky vybrané"
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8100,6 +8160,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8662,6 +8728,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Node sa pohol"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "Duplikovať výber"
@@ -8681,6 +8752,11 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Parameter sa Zmenil"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9345,6 +9421,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9406,19 +9486,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Signály:"
-
-#: 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 ""
@@ -9506,19 +9573,6 @@ msgid ""
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 "Súbor:"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11989,6 +12043,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12013,7 +12083,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12665,6 +12741,23 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Move pivot"
+#~ msgstr "Presunúť pivot"
+
+#~ msgid "Move anchor"
+#~ msgstr "Presunúť kovadlinu"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Zmeniť Veľkosť CanvasItem-u"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Signály:"
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr "Súbor:"
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Systém súborov a Import Dock-y"
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index a97fb1ae39..5f0f2941a8 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -1658,6 +1658,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -3062,8 +3082,7 @@ msgstr "Upravljaj Izvozne Predloge"
msgid "Help"
msgstr "PomoÄ"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4552,7 +4571,6 @@ msgid "Add Node to BlendTree"
msgstr "Dodaj Gradnik(e) iz Drevesa"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "NaÄin Premika"
@@ -5430,33 +5448,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Ustvari nov vodoravni in navpiÄni vodnik"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move pivot"
-msgstr "Premakni ToÄko"
+msgid "Rotate %d CanvasItems"
+msgstr "Uredi Platno Stvari"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Rotate CanvasItem"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "Uredi Platno Stvari"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move anchor"
-msgstr "Premakni Dejanje"
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Uredi Platno Stvari"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "Uredi Platno Stvari"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Resize CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Uredi Platno Stvari"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Scale CanvasItem"
+msgid "Move %d CanvasItems"
msgstr "Uredi Platno Stvari"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move CanvasItem"
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Uredi Platno Stvari"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6764,14 +6799,23 @@ msgid "Move Points"
msgstr "Odstrani toÄko"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Vrtenje"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Povleci: Vrtenje"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Vrtenje"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6810,12 +6854,14 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr ""
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Ustvarite Poligon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Odstrani Poligon in ToÄko"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7288,11 +7334,6 @@ 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 ""
@@ -7301,6 +7342,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "IzbriÅ¡i toÄke"
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8432,6 +8478,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -9006,6 +9058,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "NaÄin Premika"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "Animacija Podvoji kljuÄe"
@@ -9024,6 +9081,11 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Preoblikovanje Sprememb"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9693,6 +9755,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9755,19 +9821,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Dodaj Vnos"
-
-#: 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 ""
@@ -9857,19 +9910,6 @@ msgid ""
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 " Datoteke"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -12391,6 +12431,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12415,7 +12471,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -13086,6 +13148,26 @@ msgid "Constants cannot be modified."
msgstr "Konstante ni možno spreminjati."
#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "Premakni ToÄko"
+
+#, fuzzy
+#~ msgid "Move anchor"
+#~ msgstr "Premakni Dejanje"
+
+#, fuzzy
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Uredi Platno Stvari"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Dodaj Vnos"
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr " Datoteke"
+
+#, fuzzy
#~ msgid "FileSystem and Import Docks"
#~ msgstr "DatoteÄniSistem"
diff --git a/editor/translations/sq.po b/editor/translations/sq.po
index 6dd423a048..fcc1ee403d 100644
--- a/editor/translations/sq.po
+++ b/editor/translations/sq.po
@@ -1606,6 +1606,37 @@ msgstr ""
"Lejo 'Import Etc' in Opsionet e Projektit, ose çaktivizo 'Driver Fallback "
"Enabled'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Platforma e përcaktuar kërkon 'ETC' texture compression për GLES2. Lejo "
+"'Import Etc' në Opsionet e Projektit."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Platforma e përcaktuar kërkon 'ETC2' texture compression për GLES3. Lejo "
+"'Import Etc 2' në Opsionet e Projektit."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Platforma e përcaktuar kërkon 'ETC' texture compression për driver fallback "
+"to GLES2.\n"
+"Lejo 'Import Etc' in Opsionet e Projektit, ose çaktivizo 'Driver Fallback "
+"Enabled'."
+
#: 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
@@ -2989,8 +3020,7 @@ msgstr "Menaxho Shabllonet e Eksportit"
msgid "Help"
msgstr "Ndihmë"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4434,7 +4464,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5266,27 +5295,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Rotate %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6544,7 +6589,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6552,6 +6597,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6590,12 +6643,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Krijo një Poligon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7044,11 +7098,6 @@ 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 ""
@@ -7057,6 +7106,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Krijo pika."
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8155,6 +8209,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8679,6 +8739,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Dyfisho Nyjet"
@@ -8697,6 +8761,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9355,6 +9423,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9415,19 +9487,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Shto te të preferuarat"
-
-#: 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 ""
@@ -9515,19 +9574,6 @@ msgid ""
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 " Skedarët"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11985,6 +12031,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12009,7 +12071,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12640,6 +12708,14 @@ msgid "Constants cannot be modified."
msgstr ""
#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Shto te të preferuarat"
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr " Skedarët"
+
+#, fuzzy
#~ msgid "FileSystem and Import Docks"
#~ msgstr "FileSystem"
diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po
index 1c68f56270..68cddb924c 100644
--- a/editor/translations/sr_Cyrl.po
+++ b/editor/translations/sr_Cyrl.po
@@ -1732,6 +1732,37 @@ msgstr ""
"Омогући 'Увоз Etc' у подешавањима пројекта, или онемогући 'Поваратак "
"Управљача Омогућен'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Циљана платформа захтева 'ETC' компреÑију текÑтуре за GLES2. Омогући 'Увоз "
+"Etc' у подешавањима пројекта."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Циљана платформа захтева 'ETC2 компреÑију текÑтуре за GLES3. Омогући 'Увоз "
+"Etc 2' у подешавањима пројекта."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
@@ -3179,8 +3210,7 @@ msgstr "Управљај извозним шаблонима"
msgid "Help"
msgstr "Помоћ"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4770,7 +4800,6 @@ msgid "Add Node to BlendTree"
msgstr "Додај Чвор УтапајућемСтаблу"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "Чвор Поморен"
@@ -5685,33 +5714,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Ðаправи нови хоризонтални и вертикални водич"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move pivot"
-msgstr "Помери пивот"
+msgid "Rotate %d CanvasItems"
+msgstr "Уреди CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "Уреди CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr "Уреди CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move anchor"
-msgstr "Помери акцију"
+msgid "Scale %d CanvasItems"
+msgstr "Уреди CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Resize CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "Уреди CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Scale CanvasItem"
+msgid "Move %d CanvasItems"
msgstr "Уреди CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move CanvasItem"
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Уреди CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -7119,14 +7165,24 @@ msgid "Move Points"
msgstr "Помери тачку"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: ротација"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Вучење: ротација"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: помери Ñве"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: Ñкалирање"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: ротација"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: Ñкалирање"
@@ -7173,12 +7229,14 @@ msgid "Radius:"
msgstr " ОпÑег:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Полигон->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Ðаправи полигон"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->Полигон"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Помери полигон"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7677,12 +7735,6 @@ msgstr "Изтицање СинтакÑе"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#, fuzzy
-msgid "Go To"
-msgstr "Иди Ðа"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-#, fuzzy
msgid "Bookmarks"
msgstr "Белешке"
@@ -7691,6 +7743,12 @@ msgstr "Белешке"
msgid "Breakpoints"
msgstr "Тачке прекида"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+#, fuzzy
+msgid "Go To"
+msgstr "Иди Ðа"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8892,6 +8950,15 @@ msgstr "Цртај полчице"
#, fuzzy
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+LMB: Цртање Линије\n"
+"Shift+Ctrl+LMB: Бојење Четвороугла"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
"Shift+LMB: Цртање Линије\n"
@@ -9521,6 +9588,11 @@ msgstr "Шејдер"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Чвор Поморен"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "Дуплирај чвор/ове графа"
@@ -9542,6 +9614,11 @@ msgstr "Улазна Ð’Ñ€Ñта Визуелног Цртача промењен
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "ПоÑтави ЈединÑтвено Име"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Vertex"
msgstr "Тачке"
@@ -10394,6 +10471,10 @@ msgstr ""
"конÑтанте."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Ñамо Део/Светло режим) Функција Ñкаларне деривације."
@@ -10474,20 +10555,6 @@ msgstr "Покретљива"
#: editor/project_export.cpp
#, fuzzy
-msgid "Add initial export..."
-msgstr "Додај почетни извоз..."
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Add previous patches..."
-msgstr "Додај претходне закрпе..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Обриши закрпу „%s“ Ñа лиÑте?"
-
-#: editor/project_export.cpp
-#, fuzzy
msgid "Delete preset '%s'?"
msgstr "Обриши поÑтавку „%s“?"
@@ -10594,20 +10661,6 @@ msgstr ""
"*.txt)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Закрпе"
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Make Patch"
-msgstr "Ðаправи закрп"
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Pack File"
-msgstr " Датотеке"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "КарактериÑтике"
@@ -13583,6 +13636,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
#, fuzzy
msgid ""
"Trying to build from a custom built template, but no version info for it "
@@ -13619,9 +13688,14 @@ msgstr ""
"Ðлтернативно поÑети docs.godotengine.org за Android документацију изградње."
#: platform/android/export/export.cpp
-#, fuzzy
-msgid "No build apk generated at: "
-msgstr "Ðема градње apk произведеног код:"
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
#, fuzzy
@@ -14486,6 +14560,50 @@ msgid "Constants cannot be modified."
msgstr "КонÑтанте није могуће мењати."
#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "Помери пивот"
+
+#, fuzzy
+#~ msgid "Move anchor"
+#~ msgstr "Помери акцију"
+
+#, fuzzy
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Уреди CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Полигон->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->Полигон"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Додај почетни извоз..."
+
+#, fuzzy
+#~ msgid "Add previous patches..."
+#~ msgstr "Додај претходне закрпе..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Обриши закрпу „%s“ Ñа лиÑте?"
+
+#~ msgid "Patches"
+#~ msgstr "Закрпе"
+
+#, fuzzy
+#~ msgid "Make Patch"
+#~ msgstr "Ðаправи закрп"
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr " Датотеке"
+
+#, fuzzy
+#~ msgid "No build apk generated at: "
+#~ msgstr "Ðема градње apk произведеног код:"
+
+#, fuzzy
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Датотечни ÑиÑтем"
diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po
index ad26751fe5..acd02840c7 100644
--- a/editor/translations/sr_Latn.po
+++ b/editor/translations/sr_Latn.po
@@ -1579,6 +1579,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2839,8 +2859,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4231,7 +4250,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5060,27 +5078,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6340,7 +6374,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6348,6 +6382,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6386,12 +6428,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Napravi"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6833,11 +6876,6 @@ 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 ""
@@ -6846,6 +6884,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Napravi"
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7942,6 +7985,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8475,6 +8524,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Duplicate Nodes"
msgstr "Animacija Uduplaj KljuÄeve"
@@ -8494,6 +8547,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9155,6 +9212,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9215,18 +9276,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9314,18 +9363,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11744,6 +11781,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11768,7 +11821,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/sv.po b/editor/translations/sv.po
index ff50441f17..86a496279a 100644
--- a/editor/translations/sv.po
+++ b/editor/translations/sv.po
@@ -18,12 +18,13 @@
# Jonas Robertsson <jonas.robertsson@posteo.net>, 2020.
# André Andersson <andre.eric.andersson@gmail.com>, 2020.
# Andreas Westrell <andreas.westrell@gmail.com>, 2020.
+# Gustav Andersson <gustav.andersson96@outlook.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-08-18 02:54+0000\n"
-"Last-Translator: Andreas Westrell <andreas.westrell@gmail.com>\n"
+"PO-Revision-Date: 2020-09-29 09:14+0000\n"
+"Last-Translator: Gustav Andersson <gustav.andersson96@outlook.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/godot-engine/"
"godot/sv/>\n"
"Language: sv\n"
@@ -31,7 +32,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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1035,7 +1036,7 @@ msgstr "Sök Ersättningsresurs:"
#: modules/visual_script/visual_script_property_selector.cpp
#: scene/gui/file_dialog.cpp
msgid "Open"
-msgstr "Öppen"
+msgstr "Öppna"
#: editor/dependency_editor.cpp
msgid "Owners Of:"
@@ -1615,6 +1616,35 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Målplattformen kräver 'ETC' texturkomprimering för GLES2. Aktivera 'Import "
+"Etc' i Projektinställningarna."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Målplattformen kräver 'ETC2' texturkomprimering för GLES3. Aktivera 'Import "
+"Etc 2' i Projektinställningarna."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Målplattformen kräver 'ETC' texturkomprimering för GLES2. Aktivera 'Import "
+"Etc' i Projektinställningarna."
+
#: 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
@@ -1803,18 +1833,16 @@ msgid "Manage Editor Feature Profiles"
msgstr ""
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Skapa Mapp"
+msgstr "Välj Nuvarande Mapp"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File Exists, Overwrite?"
msgstr "Filen finns redan, skriv över?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select This Folder"
-msgstr "Välj en Node"
+msgstr "Välj Denna Mapp"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Copy Path"
@@ -1922,9 +1950,8 @@ msgid "Go to next folder."
msgstr "Gå till överordnad mapp"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Go to parent folder."
-msgstr "Gå till överordnad mapp"
+msgstr "Gå till överordnad mapp."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
#, fuzzy
@@ -2213,7 +2240,7 @@ msgstr ""
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
msgid "Node"
-msgstr "Node"
+msgstr "Nod"
#: editor/editor_network_profiler.cpp
msgid "Incoming RPC"
@@ -2995,8 +3022,7 @@ msgstr "Mallar"
msgid "Help"
msgstr "Hjälp"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3120,9 +3146,8 @@ msgid "Android build template is missing, please install relevant templates."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Templates"
-msgstr "Mallar"
+msgstr "Hantera Mallar"
#: editor/editor_node.cpp
msgid ""
@@ -4477,7 +4502,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "Node Namn:"
@@ -5113,14 +5137,12 @@ msgid "Asset Download Error:"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Downloading (%s / %s)..."
-msgstr "Laddar ner"
+msgstr "Laddar ner (%s / %s)..."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Downloading..."
-msgstr "Laddar ner"
+msgstr "Laddar ner..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving..."
@@ -5135,9 +5157,8 @@ msgid "Idle"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Install..."
-msgstr "Installera"
+msgstr "Installera..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
@@ -5153,38 +5174,35 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Recently Updated"
-msgstr ""
+msgstr "Nyligen Uppdaterade"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Least Recently Updated"
-msgstr ""
+msgstr "Äldst Uppdaterade"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Name (A-Z)"
-msgstr ""
+msgstr "Namn (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Name (Z-A)"
-msgstr ""
+msgstr "Namn (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (A-Z)"
-msgstr "Licens"
+msgstr "Licens (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (Z-A)"
-msgstr "Licens"
+msgstr "Licens (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "First"
-msgstr ""
+msgstr "Första"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Previous"
-msgstr "Föregående flik"
+msgstr "Föregående"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Next"
@@ -5192,7 +5210,7 @@ msgstr "Nästa"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Last"
-msgstr ""
+msgstr "Sista"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "All"
@@ -5200,16 +5218,15 @@ msgstr "Alla"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No results for \"%s\"."
-msgstr ""
+msgstr "Inga resultat för \"%s\"."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Import..."
-msgstr "Importera"
+msgstr "Importera..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Plugins..."
-msgstr ""
+msgstr "Tillägg..."
#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
msgid "Sort:"
@@ -5225,9 +5242,8 @@ msgid "Site:"
msgstr "Webbplats:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Support"
-msgstr "Importera"
+msgstr "Support"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Official"
@@ -5238,9 +5254,8 @@ msgid "Testing"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Loading..."
-msgstr "Ladda"
+msgstr "Laddar..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
@@ -5338,29 +5353,44 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move pivot"
-msgstr "Flytta Upp"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Rotate %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move anchor"
-msgstr "Flytta Ner"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "Roterar %s grader."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6656,7 +6686,8 @@ msgid "Move Points"
msgstr "Flytta Ner"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+#, fuzzy
+msgid "Command: Rotate"
msgstr "Ctrl: Rotera"
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6664,6 +6695,15 @@ msgid "Shift: Move All"
msgstr "Skift: Flytta Alla"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Skift+Ctrl: Skala"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Rotera"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Skift+Ctrl: Skala"
@@ -6702,12 +6742,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Konvertera till %s"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7179,11 +7220,6 @@ 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 ""
@@ -7192,6 +7228,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Radera punkter"
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8325,6 +8366,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8890,6 +8937,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Node Namn:"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "Duplicera Nod(er)"
@@ -8908,6 +8960,11 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Uppdatera Ändringar"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9576,6 +9633,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9637,19 +9698,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Favoriter:"
-
-#: 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 ""
@@ -9740,19 +9788,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Patchar"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Gör Patch"
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Pack File"
-msgstr "Packar"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -9850,11 +9885,11 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Please choose an empty folder."
-msgstr ""
+msgstr "Välj en tom mapp."
#: editor/project_manager.cpp
msgid "Please choose a \"project.godot\" or \".zip\" file."
-msgstr ""
+msgstr "Välj en \"project.godot\" eller \".zip\" fil."
#: editor/project_manager.cpp
msgid "This directory already contains a Godot project."
@@ -9913,18 +9948,16 @@ msgid "Import Existing Project"
msgstr "Importera Befintligt Projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import & Edit"
-msgstr "Importera"
+msgstr "Importera & Ändra"
#: editor/project_manager.cpp
msgid "Create New Project"
msgstr "Skapa Nytt Projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Create & Edit"
-msgstr "Skapa Skript"
+msgstr "Skapa & Ändra"
#: editor/project_manager.cpp
msgid "Install Project:"
@@ -9950,7 +9983,7 @@ msgstr "Sökväg till projektet:"
#: editor/project_manager.cpp
msgid "Renderer:"
-msgstr ""
+msgstr "Renderare:"
#: editor/project_manager.cpp
msgid "OpenGL ES 3.0"
@@ -9963,6 +9996,10 @@ msgid ""
"Incompatible with older hardware\n"
"Not recommended for web games"
msgstr ""
+"Högre visuell kvalitet\n"
+"Alla funktioner tillgängliga\n"
+"Inkompatibel med äldre hårdvara\n"
+"Inte rekommenderad för webbspel"
#: editor/project_manager.cpp
msgid "OpenGL ES 2.0"
@@ -9975,10 +10012,14 @@ msgid ""
"Works on most hardware\n"
"Recommended for web games"
msgstr ""
+"Lägre visuell kvalitet\n"
+"NÃ¥gra funktioner fattas\n"
+"Fungerar på de flesta hårdvaror\n"
+"Rekommenderad för webbspel"
#: editor/project_manager.cpp
msgid "Renderer can be changed later, but scenes may need to be adjusted."
-msgstr ""
+msgstr "Rendrerare kan bytas senare men scener kan behöva ändras."
#: editor/project_manager.cpp
msgid "Unnamed Project"
@@ -10065,6 +10106,8 @@ msgid ""
"Remove this project from the list?\n"
"The project folder's contents won't be modified."
msgstr ""
+"Vill du ta bort projektet från listan?\n"
+"Projektetmappens innehåll kommer inte ändras."
#: editor/project_manager.cpp
msgid ""
@@ -10096,7 +10139,7 @@ msgstr "Projekt"
#: editor/project_manager.cpp
msgid "Last Modified"
-msgstr ""
+msgstr "Senast Ändrad"
#: editor/project_manager.cpp
msgid "Scan"
@@ -12273,6 +12316,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12297,7 +12356,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12967,6 +13032,28 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "Flytta Upp"
+
+#, fuzzy
+#~ msgid "Move anchor"
+#~ msgstr "Flytta Ner"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Favoriter:"
+
+#~ msgid "Patches"
+#~ msgstr "Patchar"
+
+#~ msgid "Make Patch"
+#~ msgstr "Gör Patch"
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr "Packar"
+
#~ msgid "Current scene was never saved, please save it prior to running."
#~ msgstr ""
#~ "Nuvarande scen har aldrig sparats, vänligen spara den innan körning."
diff --git a/editor/translations/ta.po b/editor/translations/ta.po
index bff90ce603..233ec40229 100644
--- a/editor/translations/ta.po
+++ b/editor/translations/ta.po
@@ -1575,6 +1575,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2830,8 +2850,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4217,7 +4236,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -5041,27 +5059,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6308,7 +6342,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6316,6 +6350,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6354,11 +6396,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6800,16 +6842,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7895,6 +7937,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8403,6 +8451,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Duplicate Nodes"
msgstr "அசைவூடà¯à®Ÿà¯ போலிபசà¯à®šà®¾à®µà®¿à®•à®³à¯"
@@ -8422,6 +8474,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9078,6 +9134,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9138,18 +9198,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9237,18 +9285,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11654,6 +11690,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11678,7 +11730,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/te.po b/editor/translations/te.po
index 2c6d8146e2..8d4a4192e8 100644
--- a/editor/translations/te.po
+++ b/editor/translations/te.po
@@ -1550,6 +1550,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2801,8 +2821,7 @@ msgstr ""
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4183,7 +4202,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr ""
@@ -4996,27 +5014,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6255,7 +6289,7 @@ msgid "Move Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6263,6 +6297,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6301,11 +6343,11 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
+msgid "Copy UV to Polygon"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6747,16 +6789,16 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
+msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Bookmarks"
+msgid "Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Breakpoints"
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
@@ -7834,6 +7876,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8336,6 +8384,10 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8353,6 +8405,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9007,6 +9063,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9067,18 +9127,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9166,18 +9214,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11566,6 +11602,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11590,7 +11642,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
diff --git a/editor/translations/th.po b/editor/translations/th.po
index d1afffd2cd..4f0cf780a4 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-08-28 13:09+0000\n"
-"Last-Translator: Lon3r <mptube.p@gmail.com>\n"
+"PO-Revision-Date: 2020-10-15 17:26+0000\n"
+"Last-Translator: Thanachart Monpassorn <nunf_2539@hotmail.com>\n"
"Language-Team: Thai <https://hosted.weblate.org/projects/godot-engine/godot/"
"th/>\n"
"Language: th\n"
@@ -20,12 +20,12 @@ 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.2.1-dev\n"
+"X-Generator: Weblate 4.3-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)."
@@ -237,7 +237,7 @@ msgstr "ฟังà¸à¹Œà¸Šà¸±à¸™:"
#: editor/animation_track_editor.cpp
msgid "Audio Clips:"
-msgstr "คลิปเสียง"
+msgstr "คลิปเสียง:"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
@@ -253,7 +253,7 @@ msgstr "เปิด/ปิดà¸à¸²à¸£à¸•à¸´à¸”ตามà¹à¸—ร็à¸à¸™à¸µà¹
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr "โหมดอัพเดท (วิธีตั้งค่าคุณสมบัตินี้)"
+msgstr "โหมดอัพเดท (คุณสมบัตินี้ถูà¸à¸•à¸±à¹‰à¸‡à¸„่าได้อย่างไร)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
@@ -261,7 +261,7 @@ msgstr "โหมดà¸à¸²à¸£à¹à¸à¹‰à¹„ข"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr "โหมดวนรอบ (ต่อจุดสิ้นสุดด้วยจุดเริ่มต้นของลูป)"
+msgstr "โหมดลูปวาร์ป (à¹à¸à¹‰à¹„ขจุดสิ้นสุดด้วยจุดเริ่มตต้นบนลูป)"
#: editor/animation_track_editor.cpp
msgid "Remove this track."
@@ -486,6 +486,13 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
+"à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¸™à¸µà¹‰à¹€à¸›à¹‡à¸™à¸‚องฉาà¸à¸—ี่นำเข้า, ดังนั้นà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸‚องà¹à¹à¸—ร็à¸à¸—ี่นำเข้าจะไม่ถูà¸à¸šà¸±à¸™à¸—ึà¸\n"
+"\n"
+"เพื่อที่จะเปิดใช้งานความสามารถในà¸à¸²à¸£à¹€à¸žà¸´à¹ˆà¸¡à¹à¸—ร็à¸à¸—ี่à¸à¸³à¸«à¸™à¸”เอง "
+"เลือà¸à¸—ี่à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าà¸à¸²à¸£à¸™à¸³à¹€à¸‚้าฉาà¸à¹à¸¥à¸°à¸•à¸±à¹‰à¸‡à¸„่า\n"
+"\"à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™>ที่จัดเà¸à¹‡à¸š\" เป็น \"ไฟล์\", เปิดใช้ \"à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™ > เà¸à¹‡à¸šà¹à¸—ร็à¸à¸—ี่à¸à¸³à¸«à¸™à¸”เอง\" "
+"à¹à¸¥à¸°à¸™à¸³à¹€à¸‚้ามาใหม่\n"
+"หรือใช้พรีเซ็ตนำเข้าที่นำเข้าà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¹€à¸›à¹‡à¸™à¹„ฟล์à¹à¸¢à¸"
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
@@ -501,16 +508,15 @@ msgstr "โชว์à¹à¸—ร็à¸à¸ˆà¸²à¸à¹‚หนดที่เลือà¸
#: editor/animation_track_editor.cpp
msgid "Group tracks by node or display them as plain list."
-msgstr ""
+msgstr "จัดà¸à¸¥à¸¸à¹ˆà¸¡à¹à¸—ร็à¸à¹‚ดยใช้โหนดหรือà¹à¸ªà¸”งเป็นรายà¸à¸²à¸£à¸˜à¸£à¸£à¸¡à¸”า"
#: editor/animation_track_editor.cpp
msgid "Snap:"
msgstr "สà¹à¸™à¸›:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation step value."
-msgstr "ผังà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¸–ูà¸à¸•à¹‰à¸­à¸‡"
+msgstr "ค่าของขั้นของà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/animation_track_editor.cpp
msgid "Seconds"
@@ -553,7 +559,7 @@ msgstr "ทำซ้ำที่เลือà¸"
#: editor/animation_track_editor.cpp
msgid "Duplicate Transposed"
-msgstr "ทำซ้ำเปลี่ยนà¹à¸—ร็à¸"
+msgstr "ทำซ้ำà¹à¸¥à¸°à¸¢à¹‰à¸²à¸¢"
#: editor/animation_track_editor.cpp
msgid "Delete Selection"
@@ -811,7 +817,7 @@ 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"
@@ -819,7 +825,7 @@ msgstr "ครั้งเดียว"
#: editor/connections_dialog.cpp
msgid "Disconnects the signal after its first emission."
-msgstr ""
+msgstr "ตัดà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­à¸ªà¸±à¸à¸à¸²à¸“หลังจาà¸à¸—ำงานครั้งà¹à¸£à¸"
#: editor/connections_dialog.cpp
msgid "Cannot connect signal"
@@ -885,13 +891,12 @@ msgid "Signals"
msgstr "สัà¸à¸à¸²à¸“"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "ตัวà¸à¸£à¸­à¸‡à¹„ทล์"
+msgstr "ตัวà¸à¸£à¸­à¸‡à¸ªà¸±à¸à¸à¸²à¸“"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
-msgstr ""
+msgstr "คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸­à¸§à¹ˆà¸²à¸ˆà¸°à¸¥à¸šà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­à¸—ั้งหมดà¸à¸±à¸šà¸ªà¸±à¸à¸à¸²à¸“นี้?"
#: editor/connections_dialog.cpp
msgid "Disconnect All"
@@ -1131,12 +1136,10 @@ msgid "Gold Sponsors"
msgstr "ผู้สนับสนุนระดับทอง"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Silver Sponsors"
msgstr "ผู้บริจาคระดับเงิน"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Bronze Sponsors"
msgstr "ผู้บริจาคระดับทองà¹à¸”ง"
@@ -1425,7 +1428,7 @@ msgstr "ต้องไม่ใช้ชื่อเดียวà¸à¸±à¸šà¸Šà¸·
#: editor/editor_autoload_settings.cpp
msgid "Keyword cannot be used as an autoload name."
-msgstr ""
+msgstr "คำสำคัà¸à¹„ม่สามารถใช้เป็นชื่อออโตโหลด"
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
@@ -1544,7 +1547,7 @@ msgstr "เà¸à¹‡à¸šà¹„ฟล์:"
#: editor/editor_export.cpp
msgid "No export template found at the expected path:"
-msgstr "ไม่พบà¹à¸¡à¹ˆà¹à¸šà¸šà¸ªà¹ˆà¸‡à¸­à¸­à¸à¸—ี่ที่อยู่ที่คาดไว้:"
+msgstr "ไม่พบเทมเพลตส่งออà¸à¸—ี่ที่อยู่ที่คาดไว้:"
#: editor/editor_export.cpp
msgid "Packing"
@@ -1576,22 +1579,50 @@ msgstr ""
"à¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡à¹€à¸›à¹‰à¸²à¸«à¸¡à¸²à¸¢à¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¸à¸²à¸£à¸šà¸µà¸šà¸­à¸±à¸”เทà¸à¹€à¸ˆà¸­à¸£à¹Œ 'ETC' สำหรับà¸à¸²à¸£à¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰ GLES2\n"
"เปิด 'Import Etc' ในตั้งค่าโปรเจ็คหรือปิด 'Driver Fallback Enabled'"
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"à¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡à¹€à¸›à¹‰à¸²à¸«à¸¡à¸²à¸¢à¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¸à¸²à¸£à¸šà¸µà¸šà¸­à¸±à¸”เทà¸à¹€à¸ˆà¸­à¸£à¹Œ 'ETC' สำหรับ GLES2 เปิด 'Import Etc' "
+"ในตั้งค่าโปรเจ็ค"
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"à¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡à¹€à¸›à¹‰à¸²à¸«à¸¡à¸²à¸¢à¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¸à¸²à¸£à¸šà¸µà¸šà¸­à¸±à¸”เทà¸à¹€à¸ˆà¸­à¸£à¹Œ 'ETC2' สำหรับ GLES3 เปิด 'Import Etc 2' "
+"ในตั้งค่าโปรเจ็ค"
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"à¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡à¹€à¸›à¹‰à¸²à¸«à¸¡à¸²à¸¢à¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¸à¸²à¸£à¸šà¸µà¸šà¸­à¸±à¸”เทà¸à¹€à¸ˆà¸­à¸£à¹Œ 'ETC' สำหรับà¸à¸²à¸£à¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰ GLES2\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
#: 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
-#, fuzzy
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."
@@ -1614,19 +1645,16 @@ msgid "Scene Tree Editing"
msgstr "à¹à¸à¹‰à¹„ขผังฉาà¸"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
-msgstr "โหมดเคลื่อนย้าย"
+msgstr "à¹à¸œà¸‡à¹‚หนด"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "ระบบไฟล์"
+msgstr "à¹à¸œà¸‡à¸£à¸°à¸šà¸šà¹„ฟล์"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Import Dock"
-msgstr "นำเข้า"
+msgstr "นำเข้าà¹à¸œà¸‡"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1832,7 +1860,7 @@ msgstr "เปิด/ปิดไฟล์ที่ซ่อน"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr "เลือà¸/ลบโฟลเดอร์ที่ชอบ"
+msgstr "เพิ่ม/ลบที่ชอบ"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
@@ -1840,7 +1868,7 @@ msgstr "สลับโหมด"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr "à¹à¸à¹‰à¹„ขตำà¹à¸«à¸™à¹ˆà¸‡"
+msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่สนใจ"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
@@ -1994,7 +2022,7 @@ msgstr "เมท็อดนี้ยังไม่มีคำอธิบา
#: 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"
@@ -2092,7 +2120,7 @@ msgstr "เคลียร์"
#: editor/editor_log.cpp
msgid "Clear Output"
-msgstr "ลบข้อความ"
+msgstr "เคลียร์เอาต์พุต"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
#: editor/editor_profiler.cpp
@@ -2129,14 +2157,12 @@ msgid "Incoming RSET"
msgstr "RSET à¸à¸³à¸¥à¸±à¸‡à¸¡à¸²"
#: editor/editor_network_profiler.cpp
-#, fuzzy
msgid "Outgoing RPC"
-msgstr "RPC à¸à¸³à¸¥à¸±à¸‡à¸­à¸­à¸"
+msgstr "RPC ขาออà¸"
#: editor/editor_network_profiler.cpp
-#, fuzzy
msgid "Outgoing RSET"
-msgstr "RSET à¸à¸³à¸¥à¸±à¸‡à¸­à¸­à¸"
+msgstr "RSET ขาออà¸"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "New Window"
@@ -2159,7 +2185,7 @@ msgstr "บันทึà¸à¸—รัพยาà¸à¸£à¸œà¸´à¸”พลาด!"
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..."
@@ -2218,6 +2244,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 ""
+"ฉาà¸à¸™à¸µà¹‰à¹„ม่สามารถบันทึà¸à¹„ด้เพราะมีà¸à¸²à¸£à¸£à¸§à¸¡à¸­à¸´à¸™à¸ªà¹à¸•à¸™à¸‹à¹Œà¹à¸šà¸šà¸§à¸™à¸£à¸­à¸š\n"
+"à¸à¸£à¸¸à¸“าà¹à¸à¹‰à¹„ขหรือลองบันทึà¸à¹ƒà¸«à¸¡à¹ˆà¸­à¸µà¸à¸£à¸­à¸š"
#: editor/editor_node.cpp
msgid ""
@@ -2285,7 +2313,6 @@ msgid ""
msgstr "รีซอร์สนี้ถูà¸à¸™à¸³à¹€à¸‚้าจึงไม่สามารถà¹à¸à¹‰à¹„ขได้ ปรับตั้งค่าในà¹à¸œà¸‡à¸™à¸³à¹€à¸‚้าà¹à¸¥à¸°à¸™à¸³à¹€à¸‚้าใหม่"
#: editor/editor_node.cpp
-#, fuzzy
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"
@@ -2297,14 +2324,13 @@ msgstr ""
"อ่านรายละเอียดเพิ่มเติมได้จาà¸à¸„ู่มือในส่วนของà¸à¸²à¸£à¸™à¸³à¹€à¸‚้าฉาà¸"
#: 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."
@@ -2316,7 +2342,7 @@ msgstr "ไม่สามารถเริ่มขั้นตอนย่อ
#: editor/editor_node.cpp editor/filesystem_dock.cpp
msgid "Open Scene"
-msgstr "เปิดไฟล์ฉาà¸"
+msgstr "เปิดฉาà¸"
#: editor/editor_node.cpp
msgid "Open Base Scene"
@@ -2395,15 +2421,16 @@ msgid "Can't reload a scene that was never saved."
msgstr "ฉาà¸à¸¢à¸±à¸‡à¹„ม่ได้บันทึภไม่สามารถโหลดใหม่ได้"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "บันทึà¸à¸‰à¸²à¸"
+msgstr "โหลดฉาà¸à¸—ี่บันทึà¸"
#: editor/editor_node.cpp
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..."
@@ -2446,11 +2473,11 @@ msgstr "เลือà¸à¸‰à¸²à¸à¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™"
#: editor/editor_node.cpp
msgid "Close Scene"
-msgstr "ปิดไฟล์ฉาà¸"
+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."
@@ -2711,7 +2738,7 @@ msgstr "ส่งออà¸..."
#: editor/editor_node.cpp
msgid "Install Android Build Template..."
-msgstr "ติดตั้งà¹à¸¡à¹ˆà¹à¸šà¸šà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸‚องà¹à¸­à¸™à¸”รอยด์"
+msgstr "ติดตั้งเทมเพลตà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸‚องà¹à¸­à¸™à¸”รอยด์"
#: editor/editor_node.cpp
msgid "Open Project Data Folder"
@@ -2736,7 +2763,7 @@ msgstr "ดีบัà¸"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
-msgstr "ส่งออà¸à¸žà¸£à¹‰à¸­à¸¡à¸à¸²à¸£à¹à¸à¹‰à¹„ขจุดบà¸à¸žà¸£à¹ˆà¸­à¸‡à¸œà¹ˆà¸²à¸™à¹€à¸„รือข่าย"
+msgstr "Deploy พร้อมดีบัà¸à¸œà¹ˆà¸²à¸™à¹€à¸„รือข่าย"
#: editor/editor_node.cpp
msgid ""
@@ -2747,14 +2774,16 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"เมื่อเปิดใช้งานตัวเลือà¸à¸™à¸µà¹‰à¹à¸¥à¹‰à¸§ à¸à¸²à¸£ deploy ด้วยคลิà¸à¹€à¸”ียวจะทำให้โปรà¹à¸à¸£à¸¡à¸žà¸¢à¸²à¸¢à¸²à¸¡à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­à¸à¸±à¸š IP "
+"ของคอมพิวเตอร์เครื่องนี้เพื่อให้สามารถดีบัà¸à¹‚ปรเจ็à¸à¸•à¹Œà¸—ี่à¸à¸³à¸¥à¸±à¸‡à¸£à¸±à¸™à¸­à¸¢à¸¹à¹ˆà¹„ด้\n"
+"ตัวเลือà¸à¸™à¸µà¹‰à¸¡à¸µà¹„ว้เพื่อใช้สำหรับà¸à¸²à¸£à¸£à¸µà¹‚มตดีบัภ(โดยทั่วไปจะใช้à¸à¸±à¸šà¸­à¸¸à¸›à¸à¸£à¸“์เคลื่อนที่)\n"
+"คุณไม่จำเป็นต้องเปิดใช้งานเพื่อใช้ดีบัà¸à¹€à¸à¸­à¸£à¹Œ GDScript ในเครื่อง"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "ส่งออà¸à¹‚ดยใช้ระบบไฟล์เครือข่าย"
+msgstr "Deploy โดยใช้ระบบไฟล์เครือข่าย"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2763,63 +2792,62 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"ถ้าเปิดตัวเลือà¸à¸™à¸µà¹‰ ตัวเà¸à¸¡à¸—ี่ส่งออà¸à¸ˆà¸°à¸¡à¸µà¸‚นาดà¹à¸„่พอใช้งานได้\n"
-"ตัวเà¸à¸¡à¸ˆà¸°à¹„ด้รับระบบไฟล์จาà¸à¹‚ปรà¹à¸à¸£à¸¡à¹à¸à¹‰à¹„ขผ่านเครือข่าย\n"
-"à¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸à¸šà¸™ Android จะใช้สาย USB เพื่อให้เร็วขึ้น ตัวเลือà¸à¸™à¸µà¹‰à¸ˆà¸°à¸Šà¹ˆà¸§à¸¢à¹ƒà¸™à¸à¸²à¸£à¸—ดสอบเà¸à¸¡à¸—ี่มีขนาดใหà¸à¹ˆ"
+"ถ้าเปิดตัวเลือà¸à¸™à¸µà¹‰ à¸à¸²à¸£à¹ƒà¸Šà¹‰ deploy สำหรับà¹à¸­à¸™à¸”รอยด์จะส่งออà¸à¹€à¸‰à¸žà¸²à¸°à¹„ฟล์ปà¸à¸´à¸šà¸±à¸•à¸´à¸à¸²à¸£ "
+"ไม่มีข้อมูลโปรเจà¸à¸•à¹Œ\n"
+"ระบบไฟล์จะถูà¸à¸ˆà¸±à¸”เตรียมจาà¸à¹‚ปรเจ็à¸à¸•à¹Œà¹‚ดยเอดิเตอร์บนเครือข่าย\n"
+"บน Android จะ deploy โดยใช้สาย USB เพื่อประสิทธิภาพที่ดี "
+"ตัวเลือà¸à¸™à¸µà¹‰à¸ˆà¸°à¸Šà¹ˆà¸§à¸¢à¹ƒà¸«à¹‰à¸à¸²à¸£à¸—ดสอบเà¸à¸¡à¹€à¸£à¹‡à¸§à¸‚ึ้น สำหรับโปรเจà¸à¸•à¹Œà¸‚นาดใหà¸à¹ˆ"
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "ขอบเขตà¸à¸²à¸£à¸Šà¸™à¸—ี่มองเห็นได้"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
-msgstr "รูปทรงà¸à¸²à¸¢à¸ à¸²à¸žà¹à¸¥à¸°à¸£à¸±à¸‡à¸ªà¸µ (2D à¹à¸¥à¸° 3D) จะมองเห็นได้ขณะเริ่มโปรà¹à¸à¸£à¸¡à¸–้าเปิดตัวเลือà¸à¸™à¸µà¹‰"
+msgstr ""
+"เมื่อเปิดใช้งานตัวเลือà¸à¸™à¸µà¹‰ รูปร่างà¸à¸²à¸£à¸Šà¸™à¸à¸±à¸™à¹à¸¥à¸°à¹‚หนดเรย์คาสต์ (สำหรับ 2D à¹à¸¥à¸° 3D) "
+"จะปราà¸à¸à¹ƒà¸™à¹‚ปรเจ็à¸à¸•à¹Œà¸—ี่à¸à¸³à¸¥à¸±à¸‡à¸—ำงานอยู่"
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "à¹à¸ªà¸”งà¸à¸²à¸£à¸™à¸³à¸—าง"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
-msgstr "รูปทรงที่มีเส้นนำทางจะมองเห็นได้เมื่อเริ่มโปรà¹à¸à¸£à¸¡à¸–้าเปิดตัวเลือà¸à¸™à¸µà¹‰"
+msgstr "เมื่อตัวเลือà¸à¸™à¸µà¹‰à¹€à¸›à¸´à¸”ใช้งาน ตัวนำทาง mesh à¹à¸¥à¸°à¹‚พลีà¸à¸­à¸™à¸ˆà¸°à¸–ูà¸à¸¡à¸­à¸‡à¹€à¸«à¹‡à¸™à¹ƒà¸™à¹‚ปรเจà¸à¸•à¹Œà¸—ี่ทำงานอยู่"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "ซิงค์à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸‰à¸²à¸"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"ถ้าเปิดตัวเลือà¸à¸™à¸µà¹‰ โปรà¹à¸à¸£à¸¡à¸—ี่รันอยู่จะได้รับà¸à¸²à¸£à¹à¸à¹‰à¹„ขทันที\n"
-"เมื่อใช้à¸à¸±à¸šà¸­à¸¸à¸›à¸à¸£à¸“์à¹à¸šà¸šà¸£à¸µà¹‚มท จะดีà¸à¸§à¹ˆà¸²à¸–้าเปิดระบบไฟล์เครือข่ายด้วย"
+"เมื่อเปิดใช้งานตัวเลือà¸à¸™à¸µà¹‰ à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¹ƒà¸” ๆ "
+"ที่เà¸à¸´à¸”ขึ้นà¸à¸±à¸šà¸‰à¸²à¸à¹ƒà¸™à¹€à¸­à¸”ิเตอร์จะปราà¸à¸à¹ƒà¸™à¹‚ปรเจ็à¸à¸•à¹Œà¸—ี่à¸à¸³à¸¥à¸±à¸‡à¸—ำงานอยู่\n"
+"เมื่อรีโมตผ่านอุปà¸à¸£à¸“์ นี่จะมีประสิทธิภาพมาà¸à¸‚ึ้นเมื่อเปิดใช้งานตัวเลือà¸à¸£à¸°à¸šà¸šà¹„ฟล์เครือข่าย"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
msgstr "ซิงค์à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸ªà¸„ริปต์"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"เมื่อเปิดตัวเลือà¸à¸™à¸µà¹‰ สคริปต์ที่บันทึà¸à¸ˆà¸°à¹‚หลดในเà¸à¸¡à¸—ันที\n"
-"ถ้าใช้à¸à¸±à¸šà¸­à¸¸à¸›à¸à¸£à¸“์รีโมท จะดีà¸à¸§à¹ˆà¸²à¸–้าเปิดระบบไฟล์เครือข่ายด้วย"
+"เมื่อเปิดใช้งานตัวเลือà¸à¸™à¸µà¹‰ สคริปต์ที่บันทึà¸à¸ˆà¸°à¸–ูà¸à¹‚หลดในโปรเจ็à¸à¸•à¹Œà¸—ี่à¸à¸³à¸¥à¸±à¸‡à¸—ำงานอยู่\n"
+"เมื่อใช้รีโมตà¸à¸±à¸šà¸­à¸¸à¸›à¸à¸£à¸“์ จะมีประสิทธิภาพมาà¸à¸‚ึ้นเมื่อเปิดใช้งานตัวเลือà¸à¸£à¸°à¸šà¸šà¹„ฟล์เครือข่าย"
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -2867,14 +2895,13 @@ msgstr "จัดà¸à¸²à¸£à¸Ÿà¸µà¹€à¸ˆà¸­à¸£à¹Œà¸‚องเอดิเตอร
#: editor/editor_node.cpp
msgid "Manage Export Templates..."
-msgstr "จัดà¸à¸²à¸£à¹à¸¡à¹ˆà¹à¸šà¸šà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸..."
+msgstr "จัดà¸à¸²à¸£à¹€à¸—มเพลตà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸..."
#: 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/editor_node.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
@@ -2892,13 +2919,12 @@ msgid "Q&A"
msgstr "ถาม/ตอบ"
#: 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"
@@ -2918,11 +2944,11 @@ msgstr "เล่น"
#: editor/editor_node.cpp
msgid "Pause the scene execution for debugging."
-msgstr ""
+msgstr "หยุดà¸à¸²à¸£à¸—ำงานของฉาà¸à¸™à¸µà¹‰à¹€à¸žà¸·à¹ˆà¸­à¸—ี่จะดีบั๊à¸"
#: editor/editor_node.cpp
msgid "Pause Scene"
-msgstr "หยุดชั่วคราว"
+msgstr "หยุดฉาà¸"
#: editor/editor_node.cpp
msgid "Stop the scene."
@@ -2934,7 +2960,7 @@ msgstr "เล่นฉาà¸à¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™"
#: editor/editor_node.cpp
msgid "Play Scene"
-msgstr "เล่น"
+msgstr "เล่นฉาà¸"
#: editor/editor_node.cpp
msgid "Play custom scene"
@@ -2954,9 +2980,8 @@ msgid "Save & Restart"
msgstr "บันทึà¸à¹à¸¥à¸°à¹€à¸£à¸´à¹ˆà¸¡à¹ƒà¸«à¸¡à¹ˆ"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Spins when the editor window redraws."
-msgstr "หมุนเมื่อมีà¸à¸²à¸£à¸§à¸²à¸”หน้าต่างโปรà¹à¸à¸£à¸¡à¹ƒà¸«à¸¡à¹ˆ!"
+msgstr "หมุนเมื่อมีà¸à¸²à¸£à¸§à¸²à¸”หน้าต่างโปรà¹à¸à¸£à¸¡à¹ƒà¸«à¸¡"
#: editor/editor_node.cpp
msgid "Update Continuously"
@@ -2992,11 +3017,11 @@ msgstr "ไม่บันทึà¸"
#: editor/editor_node.cpp
msgid "Android build template is missing, please install relevant templates."
-msgstr ""
+msgstr "เทมเพลตà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸šà¸™à¹à¸­à¸™à¸”รอยด์หายไป à¸à¸£à¸¸à¸“าติดตั้งเทมเพลตที่เà¸à¸µà¹ˆà¸¢à¸§à¸‚้อง"
#: editor/editor_node.cpp
msgid "Manage Templates"
-msgstr "จัดà¸à¸²à¸£à¹à¸¡à¹ˆà¹à¸šà¸š"
+msgstr "จัดà¸à¸²à¸£à¹€à¸—มเพลต"
#: editor/editor_node.cpp
msgid ""
@@ -3008,6 +3033,12 @@ 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 ที่สร้างไว้ล่วงหน้า ควรเปิดใช้ตัวเลือภ"
+"\"Use Custom Build\" ในพรีเซ็ตà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸à¸‚อง Android"
#: editor/editor_node.cpp
msgid ""
@@ -3016,14 +3047,16 @@ msgid ""
"Remove the \"res://android/build\" directory manually before attempting this "
"operation again."
msgstr ""
+"เทมเพลตà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸šà¸™à¹à¸­à¸™à¸”รอยด์ถูà¸à¸•à¸´à¸”ตั้งในโปรเจคต์นี้เรียบร้อยà¹à¸¥à¹‰à¸§ à¹à¸¥à¸°à¸ˆà¸°à¹„ม่ถูà¸à¹€à¸‚ียนทับ\n"
+"à¸à¸£à¸¸à¸“าลบไดเรคทอรี \"res://android/build\" à¸à¹ˆà¸­à¸™à¸—ี่จะดำเนินà¸à¸²à¸£à¸­à¸µà¸à¸„รั้ง"
#: editor/editor_node.cpp
msgid "Import Templates From ZIP File"
-msgstr "นำเข้าà¹à¸¡à¹ˆà¹à¸šà¸šà¸ˆà¸²à¸à¹„ฟล์ ZIP"
+msgstr "นำเข้าเทมเพลตจาà¸à¹„ฟล์ ZIP"
#: editor/editor_node.cpp
msgid "Template Package"
-msgstr "à¹à¸žà¸„เà¸à¸ˆà¹à¸¡à¹ˆà¹à¸šà¸š"
+msgstr "à¹à¸žà¸„เà¸à¸ˆà¹€à¸—มเพลต"
#: editor/editor_node.cpp
msgid "Export Library"
@@ -3078,9 +3111,8 @@ msgid "Warning!"
msgstr "คำเตือน!"
#: editor/editor_path.cpp
-#, fuzzy
msgid "No sub-resources found."
-msgstr "ไม่ได้ระบุพื้นผิวต้นฉบับ"
+msgstr "ไม่พบทรัพยาà¸à¸£à¸¢à¹ˆà¸­à¸¢"
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3195,13 +3227,15 @@ msgstr "RID ผิดพลาด"
msgid ""
"The selected resource (%s) does not match any type expected for this "
"property (%s)."
-msgstr ""
+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 ""
@@ -3210,10 +3244,12 @@ msgid ""
"Please switch on the 'local to scene' property on it (and all resources "
"containing it up to a node)."
msgstr ""
+"ไม่สามารถสร้าง ViewportTexture บนทรัพยาà¸à¸£à¸™à¸µà¹‰ เพราะว่าไม่ได้ถูà¸à¸•à¸±à¹‰à¸‡à¹€à¸›à¹‡à¸™à¸‰à¸²à¸à¸²à¸¢à¹ƒà¸™\n"
+"à¸à¸£à¸¸à¸“าตั้งค่าที่คุณสมบัติ 'local to scene' (à¹à¸¥à¸°à¸—ุà¸à¸—รัพยาà¸à¸£à¸—ี่ประà¸à¸­à¸šà¸­à¸¢à¸¹à¹ˆà¹ƒà¸™à¹‚หนด)"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Pick a Viewport"
-msgstr "เลือภViewport"
+msgstr "เลือà¸à¸§à¸´à¸§à¸žà¸­à¸£à¹Œà¸•"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "New Script"
@@ -3251,7 +3287,7 @@ msgstr "à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™ %s"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Selected node is not a Viewport!"
-msgstr "โหนดที่เลือà¸à¹„ม่ใช่ Viewport!"
+msgstr "โหนดที่เลือà¸à¹„ม่ใช่วิวพอร์ต!"
#: editor/editor_properties_array_dict.cpp
msgid "Size: "
@@ -3279,14 +3315,13 @@ msgid "Add Key/Value Pair"
msgstr "เพิ่มคู่ของคีย์/ค่า"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
-"ไม่มีà¹à¸¡à¹ˆà¹à¸šà¸šà¸ªà¹ˆà¸‡à¸­à¸­à¸à¸—ี่สามารถรันเà¸à¸¡à¹„ด้ของà¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡à¸™à¸µà¹‰\n"
-"à¸à¸£à¸¸à¸“าเพิ่มà¹à¸¡à¹ˆà¹à¸šà¸šà¸ªà¹ˆà¸‡à¸­à¸­à¸à¹ƒà¸™à¹€à¸¡à¸™à¸¹à¸ªà¹ˆà¸‡à¸­à¸­à¸"
+"ไม่มีพรีเซ็ตส่งออà¸à¸—ี่สามารถรันเà¸à¸¡à¹„ด้ของà¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡à¸™à¸µà¹‰\n"
+"à¸à¸£à¸¸à¸“าเพิ่มพรีเซ็ตส่งออà¸à¸—ี่รันเà¸à¸¡à¹„ด้ในเมนูส่งออà¸à¸«à¸£à¸·à¸­à¸—ำให้พรีเซ็ตเดิมสามารถรันได้"
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -3313,9 +3348,9 @@ 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"
+msgstr ""
+"à¸à¸” Ctrl ค้างเพื่อปัดเศษเป็นจำนวนเต็ม à¸à¸” Shift ค้างเพื่อเพิ่มความà¹à¸¡à¹ˆà¸™à¸¢à¸³à¸ªà¸³à¸«à¸£à¸±à¸šà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡"
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -3352,7 +3387,7 @@ msgstr "ดาวน์โหลด"
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
-msgstr ""
+msgstr "ไม่มีเทมเพลตà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸à¸­à¸¢à¹ˆà¸²à¸‡à¹€à¸›à¹‡à¸™à¸—างà¸à¸²à¸£à¸ªà¸³à¸«à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™à¸œà¸¹à¹‰à¸žà¸±à¸’นา"
#: editor/export_template_manager.cpp
msgid "(Missing)"
@@ -3368,27 +3403,27 @@ 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 "รูปà¹à¸šà¸šà¸‚อง version.txt ในà¹à¸¡à¹ˆà¹à¸šà¸š %s ไม่ถูà¸à¸•à¹‰à¸­à¸‡"
+msgstr "รูปà¹à¸šà¸šà¸‚อง version.txt ในเทมเพลต %s ไม่ถูà¸à¸•à¹‰à¸­à¸‡"
#: editor/export_template_manager.cpp
msgid "No version.txt found inside templates."
-msgstr "ไม่พบ version.txt ในà¹à¸¡à¹ˆà¹à¸šà¸š"
+msgstr "ไม่พบ version.txt ในเทมเพลต"
#: editor/export_template_manager.cpp
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:"
@@ -3400,7 +3435,7 @@ 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 ""
@@ -3449,6 +3484,8 @@ msgid ""
"Templates installation failed.\n"
"The problematic templates archives can be found at '%s'."
msgstr ""
+"à¸à¸²à¸£à¸•à¸´à¸”ตั้งเทมเพลตล้มเหลว\n"
+"ดูไฟล์รายงานปัà¸à¸«à¸²à¹„ด้ที่ '%s'"
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
@@ -3518,23 +3555,23 @@ msgstr "ติดตั้งไฟล์à¹à¸¡à¹ˆà¹à¸šà¸š"
#: editor/export_template_manager.cpp
msgid "Remove Template"
-msgstr "ลบà¹à¸¡à¹ˆà¹à¸šà¸š"
+msgstr "ลบเทมเพลต"
#: editor/export_template_manager.cpp
msgid "Select Template File"
-msgstr "เลือà¸à¹„ฟล์à¹à¸¡à¹ˆà¹à¸šà¸š"
+msgstr "เลือà¸à¹„ฟล์เทมเพลต"
#: editor/export_template_manager.cpp
msgid "Godot Export Templates"
-msgstr "à¹à¸¡à¹ˆà¹à¸šà¸šà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸ Godot"
+msgstr "เทมเพลตà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸ Godot"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
-msgstr "จัดà¸à¸²à¸£à¹à¸¡à¹ˆà¹à¸šà¸šà¸ªà¹ˆà¸‡à¸­à¸­à¸"
+msgstr "จัดà¸à¸²à¸£à¹€à¸—มเพลตส่งออà¸"
#: editor/export_template_manager.cpp
msgid "Download Templates"
-msgstr "ดาวน์โหลดà¹à¸¡à¹ˆà¹à¸šà¸š"
+msgstr "ดาวน์โหลดเทมเพลต"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: (Shift+Click: Open in Browser)"
@@ -3654,7 +3691,7 @@ msgstr "สคริปต์ใหม่..."
#: editor/filesystem_dock.cpp
msgid "New Resource..."
-msgstr "ทรัพยาà¸à¸£à¹ƒà¸«à¸¡à¹ˆ"
+msgstr "ทรัพยาà¸à¸£à¹ƒà¸«à¸¡à¹ˆ..."
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
@@ -3686,9 +3723,8 @@ msgid "Re-Scan Filesystem"
msgstr "สà¹à¸à¸™à¸£à¸°à¸šà¸šà¹„ฟล์ใหม่"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Toggle Split Mode"
-msgstr "สลับโหมด"
+msgstr "สลับโหมดà¹à¸¢à¸"
#: editor/filesystem_dock.cpp
msgid "Search files"
@@ -3742,7 +3778,7 @@ msgstr "ตัวà¸à¸£à¸­à¸‡:"
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
@@ -3767,7 +3803,7 @@ msgstr "à¹à¸—นที่: "
#: editor/find_in_files.cpp
msgid "Replace all (no undo)"
-msgstr "à¹à¸—นที่ทั้งหมด(à¹à¸à¹‰à¹‰à¹„ขไม่ได้)"
+msgstr "à¹à¸—นที่ทั้งหมด(à¹à¸à¹‰à¹„ขไม่ได้)"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -3786,31 +3822,28 @@ 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
msgid "Rename Group"
-msgstr "เปลี่ยนชื่อà¸à¸£à¸¸à¹Šà¸›"
+msgstr "เปลี่ยนชื่อà¸à¸¥à¸¸à¹ˆà¸¡"
#: editor/groups_editor.cpp
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
@@ -3819,19 +3852,19 @@ 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
msgid "Group Editor"
-msgstr "ตัวà¹à¸à¹‰à¹„ขà¸à¸£à¸¸à¹Šà¸›"
+msgstr "ตัวà¹à¸à¹‰à¹„ขà¸à¸¥à¸¸à¹ˆà¸¡"
#: editor/groups_editor.cpp
msgid "Manage Groups"
-msgstr "จัดà¸à¸²à¸£à¸à¸£à¸¸à¹Šà¸›"
+msgstr "จัดà¸à¸²à¸£à¸à¸¥à¸¸à¹ˆà¸¡"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Single Scene"
@@ -3847,15 +3880,15 @@ 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"
@@ -3863,7 +3896,7 @@ 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"
@@ -3908,7 +3941,7 @@ msgstr "ผิดพลาดขณะรันสคริปต์หลัง
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
-msgstr ""
+msgstr "คุณส่งคืนออบเจà¸à¸•à¹Œà¹‚หนดย่อยในเมธอด `post_import ()` หรือไม่?"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -3932,14 +3965,13 @@ msgstr "นำเข้าเป็น:"
#: editor/import_dock.cpp
msgid "Preset"
-msgstr "ตั้งล่วงหน้า"
+msgstr "พรีเซ็ต (ค่าตั้งล่วงหน้า)"
#: editor/import_dock.cpp
msgid "Reimport"
msgstr "นำเข้าใหม่"
#: editor/import_dock.cpp
-#, fuzzy
msgid "Save Scenes, Re-Import, and Restart"
msgstr "บันทึà¸à¸‰à¸²à¸, นำเข้าà¹à¸¥à¸°à¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™à¹ƒà¸«à¸¡à¹ˆ"
@@ -3950,7 +3982,7 @@ 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."
@@ -4007,19 +4039,19 @@ 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
msgid "Filter properties"
@@ -4034,7 +4066,6 @@ msgid "MultiNode Set"
msgstr "à¸à¸³à¸«à¸™à¸” MultiNode"
#: editor/node_dock.cpp
-#, fuzzy
msgid "Select a single node to edit its signals and groups."
msgstr "เลือà¸à¹‚หนดเพื่อà¹à¸à¹‰à¹„ขสัà¸à¸à¸²à¸“à¹à¸¥à¸°à¸à¸¥à¸¸à¹ˆà¸¡"
@@ -4168,16 +4199,18 @@ 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
msgid "Set the blending position within the space"
-msgstr ""
+msgstr "ตั้งตำà¹à¸«à¸™à¹ˆà¸‡ blending ในช่องว่าง"
#: 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
@@ -4211,41 +4244,36 @@ msgid "Add Triangle"
msgstr "เพิ่มสามเหลี่ยม"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Change BlendSpace2D Limits"
-msgstr "à¹à¸à¹‰à¹„ขระยะเวลาà¸à¸²à¸£à¸œà¸ªà¸²à¸™"
+msgstr "à¹à¸à¹‰à¹„ขลิมิต BlendSpace2D"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Change BlendSpace2D Labels"
-msgstr "à¹à¸à¹‰à¹„ขระยะเวลาà¸à¸²à¸£à¸œà¸ªà¸²à¸™"
+msgstr "à¹à¸à¹‰à¹„ขป้ายà¸à¸³à¸à¸±à¸š BlendSpace2D"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Remove BlendSpace2D Point"
-msgstr "ลบจุด"
+msgstr "ลบจุด BlendSpace2D"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Remove BlendSpace2D Triangle"
-msgstr "ลบตัวà¹à¸›à¸£"
+msgstr "ลบสามเหลี่ยม BlendSpace2D"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
-msgstr ""
+msgstr "BlendSpace2D ไม่ได้อยู่ในโหนด AnimationTree"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "No triangles exist, so no blending can take place."
-msgstr ""
+msgstr "ไม่มีสามเหลี่ยม จึงไม่สามารถใช้ blending ได้"
#: 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."
@@ -4253,7 +4281,7 @@ msgstr "ลบจุดà¹à¸¥à¸°à¸ªà¸²à¸¡à¹€à¸«à¸¥à¸µà¹ˆà¸¢à¸¡"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Generate blend triangles automatically (instead of manually)"
-msgstr ""
+msgstr "สร้างสามเหลี่ยม blend อัตโนมัติ (à¹à¸—นที่à¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¹à¸šà¸šà¸›à¸à¸•à¸´)"
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -4271,15 +4299,13 @@ msgstr "à¹à¸à¹‰à¹„ขตัวà¸à¸£à¸­à¸‡"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Output node can't be added to the blend tree."
-msgstr ""
+msgstr "โหนดเอาซ์พุตไม่สามารถเพิ่มไปยัง blend tree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Add Node to BlendTree"
-msgstr "เพิ่มโหนดจาà¸à¸œà¸±à¸‡"
+msgstr "เพิ่มโหนดไปยัง BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "ย้ายโหนดเรียบร้อย"
@@ -4303,7 +4329,6 @@ msgstr "ตั้งà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Delete Node"
msgstr "ลบโหนด"
@@ -4313,9 +4338,8 @@ msgid "Delete Node(s)"
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
msgid "Change Filter"
@@ -4323,18 +4347,18 @@ 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
msgid "Anim Clips"
@@ -4360,9 +4384,8 @@ 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
msgid "Enable Filtering"
@@ -4429,7 +4452,7 @@ msgstr "ไม่มีà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¹ƒà¸«à¹‰à¸„ัดลอà¸!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation resource on clipboard!"
-msgstr "ไม่มีà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¹ƒà¸™à¸„ลิปบอร์ด!"
+msgstr "ไม่มีทรัพยาà¸à¸£à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¹ƒà¸™à¸„ลิปบอร์ด!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
@@ -4480,14 +4503,12 @@ 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."
@@ -4502,9 +4523,8 @@ msgid "Enable Onion Skinning"
msgstr "เปิดภาพเงาà¸à¸²à¸£à¹€à¸„ลื่อนไหว"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Onion Skinning Options"
-msgstr "ภาพเงาà¸à¸²à¸£à¹€à¸„ลื่อนไหว"
+msgstr "ตั้งค่าโอเนี่ยนสà¸à¸´à¸™"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Directions"
@@ -4582,14 +4602,12 @@ 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
@@ -4597,13 +4615,12 @@ msgid "Add Node"
msgstr "เพิ่มโหนด"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "End"
msgstr "จบ"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Immediate"
-msgstr ""
+msgstr "ทันที"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Sync"
@@ -4611,33 +4628,31 @@ msgstr "ซิงค์"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "At End"
-msgstr ""
+msgstr "ในตอนท้าย"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Travel"
-msgstr ""
+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
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 ""
@@ -4645,28 +4660,29 @@ msgid ""
"RMB to add new nodes.\n"
"Shift+LMB to create connections."
msgstr ""
+"เลือà¸à¹à¸¥à¸°à¸¢à¹‰à¸²à¸¢à¹‚หนด\n"
+"คลิà¸à¸‚วาเพื่อเพิ่มโหนดใหม่\n"
+"Shift + คลิà¸à¸‹à¹‰à¸²à¸¢à¹€à¸žà¸·à¹ˆà¸­à¸ªà¸£à¹‰à¸²à¸‡à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Create new nodes."
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 "สลับà¸à¸²à¸£à¹€à¸¥à¹ˆà¸™à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¸™à¸µà¹‰à¹‚ดยอัตโนมัติเมื่อเริ่มต้น, เริ่มต้นใหม่"
#: 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: "
@@ -4795,7 +4811,7 @@ msgstr "โหนด Blend4"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "TimeScale Node"
-msgstr "โหนดอัตราส่วนเวลา"
+msgstr "โหนด TimeScale"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "TimeSeek Node"
@@ -4850,27 +4866,24 @@ msgid "Request failed."
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 "à¸à¸²à¸£à¸£à¹‰à¸­à¸‡à¸‚อผิดพลาด เปลี่ยนทางมาà¸à¹€à¸à¸´à¸™à¹„ป"
#: 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
msgid "Timeout."
@@ -4906,7 +4919,7 @@ msgstr "à¸à¸³à¸¥à¸±à¸‡à¸”าวน์โหลด..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving..."
-msgstr "à¸à¸³à¸¥à¸±à¸‡à¸„้นหา..."
+msgstr "à¸à¸³à¸¥à¸±à¸‡à¹à¸à¹‰à¹„ข..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Error making request"
@@ -5011,7 +5024,7 @@ msgstr "ผู้พัฒนา"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Testing"
-msgstr "ทดสอบ"
+msgstr "à¸à¸³à¸¥à¸±à¸‡à¸—ดสอบ"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Loading..."
@@ -5064,12 +5077,11 @@ 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:"
@@ -5080,90 +5092,99 @@ msgid "Rotation Step:"
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
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move pivot"
-msgstr "ย้ายจุดหมุน"
+msgid "Rotate %d CanvasItems"
+msgstr "หมุน CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Rotate CanvasItem"
-msgstr "à¹à¸à¹‰à¹„ข CanvasItem"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "หมุน CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move anchor"
-msgstr "เคลื่อนย้าย"
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "เลื่อน CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Resize CanvasItem"
-msgstr "à¹à¸à¹‰à¹„ข CanvasItem"
+msgid "Scale %d CanvasItems"
+msgstr "ขนาด CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Scale CanvasItem"
-msgstr "à¹à¸à¹‰à¹„ข CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr "ขนาด CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
-msgid "Move CanvasItem"
-msgstr "à¹à¸à¹‰à¹„ข CanvasItem"
+msgid "Move %d CanvasItems"
+msgstr "เลื่อน CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
+msgstr "เลื่อน CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
-msgstr ""
+msgstr "โหนดลูà¸à¸‚องคอนเทนเนอร์มีจุดยึดà¹à¸¥à¸°à¸„่าระยะขอบที่ถูà¸à¹à¸—นที่โดยโหนดà¹à¸¡à¹ˆ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Presets for the anchors and margins values of a Control node."
-msgstr ""
+msgstr "พรีเซ็ตสำหรับจุดยึดà¹à¸¥à¸°à¸Šà¹ˆà¸­à¸‡à¸§à¹ˆà¸²à¸‡à¸ªà¸³à¸«à¸£à¸±à¸šà¹‚หนดควบคุม"
#: 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
msgid "Top Left"
@@ -5179,7 +5200,7 @@ msgstr "ล่างขวา"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Bottom Left"
-msgstr "ล่างซ้าย"
+msgstr "ซ้ายล่าง"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Left"
@@ -5195,7 +5216,7 @@ msgstr "à¸à¸¥à¸²à¸‡à¸‚วา"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Bottom"
-msgstr "à¸à¸¥à¸²à¸‡à¸¥à¹ˆà¸²à¸‡"
+msgstr "ล่าง"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center"
@@ -5214,9 +5235,8 @@ msgid "Right Wide"
msgstr "ความà¸à¸§à¹‰à¸²à¸‡à¸‚วา"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Bottom Wide"
-msgstr "มุมล่าง"
+msgstr "ความà¸à¸§à¹‰à¸²à¸‡à¸”้านล่าง"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "VCenter Wide"
@@ -5227,9 +5247,8 @@ msgid "HCenter Wide"
msgstr "ความà¸à¸§à¹‰à¸²à¸‡ HCenter"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Full Rect"
-msgstr "ชื่อเต็ม"
+msgstr "สี่เหลี่ยมผืนผ้าเต็ม"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Keep Ratio"
@@ -5277,29 +5296,25 @@ 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 "วางท่าทาง"
#: 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 "สร้างจุดปะทุจาภMesh"
+msgstr "สร้างโครงà¹à¸šà¸šà¸›à¸£à¸±à¸šà¹à¸•à¹ˆà¸‡à¹€à¸­à¸‡à¸ˆà¸²à¸à¹‚หนด"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Bones"
@@ -5317,7 +5332,7 @@ msgstr "ลบ IK Chain"
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
@@ -5367,12 +5382,12 @@ msgid ""
"Show a list of all objects at the position clicked\n"
"(same as Alt+RMB in select mode)."
msgstr ""
-"à¹à¸ªà¸”งวัตถุทั้งหมด ณ ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่คลิà¸\n"
+"à¹à¸ªà¸”งออบเจà¸à¸•à¹Œà¸—ั้งหมด ณ ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่คลิà¸\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"
@@ -5383,37 +5398,32 @@ msgid "Ruler Mode"
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
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"
-msgstr "จำà¸à¸±à¸”à¸à¸²à¸£à¸«à¸¡à¸¸à¸™"
+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"
@@ -5424,9 +5434,8 @@ 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
@@ -5434,72 +5443,64 @@ msgid "Configure Snap..."
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
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 "โครงà¸à¸£à¸°à¸”ูà¸..."
+msgstr "ตั้งค่าโครง"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Bones"
-msgstr "à¹à¸ªà¸”งà¸à¸£à¸°à¸”ูà¸"
+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
-#, fuzzy
msgid "Clear Custom Bones"
-msgstr "ลบà¸à¸£à¸°à¸”ูà¸"
+msgstr "ลบโครง"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5520,17 +5521,15 @@ msgstr "à¹à¸ªà¸”งไม้บรรทัด"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Guides"
-msgstr "à¹à¸ªà¸”งเส้นนำ"
+msgstr "à¹à¸ªà¸”งเส้นไà¸à¸”์"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Show Origin"
msgstr "à¹à¸ªà¸”งจุดà¸à¸³à¹€à¸™à¸´à¸”"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Show Viewport"
-msgstr "1 มุมมอง"
+msgstr "à¹à¸ªà¸”งวิวพอร์ต"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Group And Lock Icons"
@@ -5538,33 +5537,31 @@ msgstr "à¹à¸ªà¸”งà¸à¸¥à¸¸à¹ˆà¸¡à¹à¸¥à¸°à¸¥à¹‡à¸­à¸„ไอคอน"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
-msgstr "ให้สิ่งที่เลือà¸à¸­à¸¢à¸¹à¹ˆà¸à¸¥à¸²à¸‡à¸ˆà¸­"
+msgstr "ให้สิ่งที่เลือà¸à¸­à¸¢à¸¹à¹ˆà¸•à¸£à¸‡à¸à¸¥à¸²à¸‡"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Frame Selection"
msgstr "ให้สิ่งที่เลือà¸à¹€à¸•à¹‡à¸¡à¸ˆà¸­"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Preview Canvas Scale"
-msgstr "ตัวอย่าง Atlas"
+msgstr "ดูตัวอย่างขนาดà¹à¸„นวาส"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Translation mask for inserting keys."
-msgstr ""
+msgstr "à¸à¸²à¸£à¹à¸›à¸¥à¸‡ mask สำหรับà¸à¸²à¸£à¹ƒà¸ªà¹ˆà¸„ีย์"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation mask for inserting keys."
-msgstr ""
+msgstr "หมุน mask สำหรับใส่คีย์"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale mask for inserting keys."
-msgstr ""
+msgstr "ปรับขนาด mask สำหรับใส่คีย์"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Insert keys (based on mask)."
-msgstr "เพิ่มคีย์ (à¹à¸—ร็à¸à¸—ี่มีอยู่à¹à¸¥à¹‰à¸§)"
+msgstr "เพิ่มคีย์ (จาภmask)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5573,16 +5570,17 @@ 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 ""
+"à¹à¸—รà¸à¸›à¸¸à¹ˆà¸¡à¸­à¸±à¸•à¹‚นมัติเมื่อออบเจà¸à¸•à¹Œà¸–ูà¸à¹à¸›à¸¥à¸‡ หมุน หรือปรับขนาด (ตาม mask)\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)"
@@ -5605,9 +5603,8 @@ msgid "Divide grid step by 2"
msgstr "ลดความถี่à¸à¸£à¸´à¸”ลงครึ่งหนึ่ง"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Pan View"
-msgstr "มุมหลัง"
+msgstr "มุมมองà¹à¸žà¸™"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -5632,9 +5629,8 @@ msgid "Error instancing scene from %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 ""
@@ -5695,9 +5691,8 @@ msgstr "Mask à¸à¸²à¸£à¸›à¸°à¸—ุ"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Solid Pixels"
-msgstr "Snap (พิà¸à¹€à¸‹à¸¥):"
+msgstr "พิà¸à¹€à¸‹à¸¥à¸£à¸§à¸¡"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -5706,9 +5701,8 @@ 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
@@ -5721,9 +5715,8 @@ msgid "Emission Colors"
msgstr "สีà¸à¸²à¸£à¸›à¸°à¸—ุ"
#: editor/plugins/cpu_particles_editor_plugin.cpp
-#, fuzzy
msgid "CPUParticles"
-msgstr "อนุภาค"
+msgstr "CPUParticles"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -5736,14 +5729,12 @@ msgid "Create Emission Points From Node"
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"
@@ -5767,7 +5758,7 @@ msgstr "à¹à¸à¹‰à¹„ขเส้นสัมผัสเส้นโค้ง"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load Curve Preset"
-msgstr "โหลดเส้นโค้งตัวอย่าง"
+msgstr "โหลดพรีเซ็ตเส้นโค้ง"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Add Point"
@@ -5778,19 +5769,16 @@ msgid "Remove Point"
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 "โหลดพรีเซ็ต"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Remove Curve Point"
@@ -5805,9 +5793,8 @@ msgid "Hold Shift to edit tangents individually"
msgstr "à¸à¸” Shift ค้างเพื่อปรับเส้นสัมผัสà¹à¸¢à¸à¸à¸±à¸™"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Right click to add point"
-msgstr "คลิà¸à¸‚วา: ลบจุด"
+msgstr "คลิà¸à¸‚วาเพื่อลบจุด"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
@@ -5838,9 +5825,8 @@ msgid "Mesh is empty!"
msgstr "Mesh ว่างเปล่า!"
#: 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"
@@ -5851,36 +5837,32 @@ msgid "This doesn't work on scene root!"
msgstr "ทำà¸à¸±à¸šà¹‚หนดราà¸à¹„ม่ได้!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Trimesh Static Shape"
-msgstr "สร้างรูปทรง Trimesh"
+msgstr "สร้างรูปทรง Trimesh Static"
#: 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"
@@ -5912,7 +5894,7 @@ msgstr "Mesh ไม่มีพื้นผิวให้สร้างเสà
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!"
-msgstr ""
+msgstr "ประเภทดั้งเดิมของ mesh ไม่ใช่ PRIMITIVE_TRIANGLES!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
@@ -5936,6 +5918,8 @@ 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"
@@ -5946,28 +5930,32 @@ 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..."
@@ -5980,6 +5968,8 @@ msgid ""
"This can be used instead of the SpatialMaterial Grow property when using "
"that property isn't possible."
msgstr ""
+"สร้าง mesh เส้นขอบà¹à¸šà¸šà¸„งที่ mesh เส้นขอบ จะมีà¸à¸²à¸£à¸žà¸¥à¸´à¸à¹à¸šà¸šà¸›à¸à¸•à¸´à¹‚ดยอัตโนมัติ\n"
+"สามารถใช้à¹à¸—นคุณสมบัติ SpatialMaterial Grow ได้เมื่อใช้คุณสมบัตินั้นไม่ได้"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "View UV1"
@@ -6003,7 +5993,7 @@ 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?"
@@ -6018,9 +6008,8 @@ msgstr ""
"%s"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid "Mesh Library"
-msgstr "MeshLibrary..."
+msgstr "ไลบรารี mesh"
#: editor/plugins/mesh_library_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
@@ -6138,12 +6127,10 @@ 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
-#, fuzzy
msgid "Generating Visibility Rect"
msgstr "สร้างà¸à¸£à¸­à¸šà¸à¸²à¸£à¸¡à¸­à¸‡à¹€à¸«à¹‡à¸™"
@@ -6162,26 +6149,23 @@ 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 "โหนดไม่มี geometry (หน้า)"
+msgstr "รูปเรขาคณิตไม่มีหน้า"
#: editor/plugins/particles_editor_plugin.cpp
msgid "\"%s\" doesn't inherit from Spatial."
msgstr "\"%s\" ไม่ได้สืบทอดมาจาภSpatial"
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "\"%s\" doesn't contain geometry."
-msgstr "โหนดไม่มี geometry"
+msgstr "\"%s\" ไม่มีรูปทรงเรขาคณิต"
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "\"%s\" doesn't contain face geometry."
-msgstr "โหนดไม่มี geometry"
+msgstr "\"%s\" ไม่มีหน้าของรูปทรงเรขาคณิต"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
@@ -6213,15 +6197,15 @@ msgstr "ต้องà¸à¸²à¸£à¸§à¸±à¸ªà¸”ุประเภท 'ParticlesMateria
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
-msgstr "สร้างเส้นà¸à¸£à¸­à¸š"
+msgstr "à¸à¸³à¸¥à¸±à¸‡à¸ªà¸£à¹‰à¸²à¸‡ AABB"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generate Visibility AABB"
-msgstr "สร้างเส้นà¸à¸£à¸­à¸šà¸à¸²à¸£à¸¡à¸­à¸‡à¹€à¸«à¹‡à¸™"
+msgstr "สร้างà¸à¸²à¸£à¸¡à¸­à¸‡à¹€à¸«à¹‡à¸™ AABB"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generate AABB"
-msgstr "สร้างเส้นà¸à¸£à¸­à¸š"
+msgstr "สร้าง AABB"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Point from Curve"
@@ -6241,9 +6225,8 @@ msgid "Add Point to Curve"
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"
@@ -6273,9 +6256,8 @@ msgid "Click: Add Point"
msgstr "คลิà¸: เพิ่มจุด"
#: editor/plugins/path_2d_editor_plugin.cpp
-#, fuzzy
msgid "Left Click: Split Segment (in curve)"
-msgstr "à¹à¸¢à¸à¸ªà¹ˆà¸§à¸™ (ในเส้นโค้ง)"
+msgstr "คลิà¸à¸‹à¹‰à¸²à¸¢: à¹à¸¢à¸à¹€à¸ªà¹‰à¸™à¹‚ค้ง"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -6310,12 +6292,12 @@ 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 #"
@@ -6354,26 +6336,24 @@ msgid "Split Segment (in curve)"
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 "คุณสมบัติโครงของ Polygon2D ไม่ได้ชี้ไปที่โหนด Skeleton2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
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"
+"ไม่มีเทà¸à¹€à¸ˆà¸­à¸£à¹Œà¹ƒà¸™à¹‚พลีà¸à¸­à¸™\n"
"ตั้งเทà¸à¹€à¸ˆà¸­à¸£à¹Œà¹€à¸žà¸·à¹ˆà¸­à¸—ี่จะà¹à¸à¹‰à¹„ข UV ได้"
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6384,91 +6364,91 @@ msgstr "สร้าง UV Map"
msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
-msgstr ""
+msgstr "Polygon 2D มีจุดยอดภายใน ดังนั้นจึงไม่สามารถà¹à¸à¹‰à¹„ขในวิวพอร์ตได้อีà¸à¸•à¹ˆà¸­à¹„ป"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon & UV"
msgstr "สร้าง Polygon à¹à¸¥à¸° UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Internal Vertex"
-msgstr "สร้างเส้นนำà¹à¸™à¸§à¸™à¸­à¸™"
+msgstr "สร้างจุดยอดภายใน"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Remove Internal Vertex"
-msgstr "ลบจุดควบคุมขาเข้า"
+msgstr "ลบจุดยอดภายใน"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Invalid Polygon (need 3 different vertices)"
-msgstr ""
+msgstr "รูปโพลีà¸à¸­à¸™à¸œà¸´à¸”พลาด (จำเป็นต้องมีจุดยอดที่à¹à¸•à¸à¸•à¹ˆà¸²à¸‡à¸à¸±à¸™ 3 จุด)"
#: 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 "เคลื่อนย้าย 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
-#, fuzzy
msgid "Open Polygon 2D UV editor."
-msgstr "à¹à¸à¹‰à¹„ข UV รูปหลายเหลี่ยม 2D"
+msgstr "เปิดเอดิเตอร์ Polygon 2D UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon 2D UV Editor"
-msgstr "à¹à¸à¹‰à¹„ข UV รูปหลายเหลี่ยม 2D"
+msgstr "เอดิเตอร์ Polygon 2D UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "UV"
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 "รูปหลายเหลี่ยม->UV"
+msgstr "โพลีà¸à¸­à¸™"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Bones"
-msgstr "สร้างà¸à¸£à¸°à¸”ูà¸"
+msgstr "โครง"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Move Points"
msgstr "ย้ายจุด"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: หมุน"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "ลาà¸: หมุน"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: ย้ายทั้งหมด"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: ปรับขนาด"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: หมุน"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: ปรับขนาด"
@@ -6498,23 +6478,25 @@ 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 "รัศมี:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "รูปหลายเหลี่ยม->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "สร้าง Polygon à¹à¸¥à¸° UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->รูปหลายเหลี่ยม"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™ Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6561,9 +6543,8 @@ msgid "Grid Step Y:"
msgstr "ระยะห่างà¸à¸£à¸´à¸”à¹à¸à¸™ Y:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Sync Bones to Polygon"
-msgstr "ปรับขนาดรูปหลายเหลี่ยม"
+msgstr "ซิงค์โครงà¸à¸±à¸šà¹‚พลีà¸à¸­à¸™"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ERROR: Couldn't load resource!"
@@ -6617,12 +6598,11 @@ msgstr "ตัวโหลดรีซอร์สล่วงหน้า"
#: 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
-#, fuzzy
msgid "Path to AnimationPlayer is invalid"
-msgstr "ผังà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¹„ม่ถูà¸à¸•à¹‰à¸­à¸‡"
+msgstr "ที่อยู่ของ AnimationPlayer ไม่ถูà¸à¸•à¹‰à¸­à¸‡"
#: editor/plugins/script_editor_plugin.cpp
msgid "Clear Recent Files"
@@ -6637,22 +6617,18 @@ msgid "Error writing TextFile:"
msgstr "ผิดพลาดขณะย้ายไฟล์:"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Could not load file at:"
-msgstr "ไม่พบ tile:"
+msgstr "ไม่สามารถโหลดไฟล์ที่:"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error saving file!"
-msgstr "ผิดพลาดขณะบันทึภTileSet!"
+msgstr "ผิดพลาดขณะบันทึà¸à¹„ฟล์!"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error while saving theme."
msgstr "ผิดพลาดขณะบันทึà¸à¸˜à¸µà¸¡"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error Saving"
msgstr "ผิดพลาดขณะบันทึà¸"
@@ -6682,16 +6658,16 @@ 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 "เพื่อที่จะเริ่มสคริปต์ จำเป็นต้องสืบทอดสคริปต์เอดิเตอร์ à¹à¸¥à¸°à¸•à¸±à¹‰à¸‡à¹‚หมดเป็นโหมดเครื่องมือ"
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
@@ -6724,18 +6700,16 @@ msgid "Find Previous"
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
msgid "Sort"
@@ -6745,13 +6719,13 @@ msgstr "เรียง"
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
-msgstr "ย้ายขึ้น"
+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 "ย้ายลง"
+msgstr "เลื่อนลง"
#: editor/plugins/script_editor_plugin.cpp
msgid "Next script"
@@ -6771,7 +6745,7 @@ msgstr "เปิด..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reopen Closed Script"
-msgstr "เปิดสคริปต์อีà¸à¸£à¸­à¸š"
+msgstr "เปิดสคริปต์ที่พึ่งปิด"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save All"
@@ -6779,7 +6753,7 @@ msgstr "บันทึà¸à¸—ั้งหมด"
#: editor/plugins/script_editor_plugin.cpp
msgid "Soft Reload Script"
-msgstr "โหลดสคริปต์ใหม่"
+msgstr "โหลดสคริปต์ใหม่à¹à¸šà¸šà¸‹à¸­à¸Ÿà¸•à¹Œ"
#: editor/plugins/script_editor_plugin.cpp
msgid "Copy Script Path"
@@ -6902,34 +6876,29 @@ msgid "Connections to method:"
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 "เป้าหมาย"
#: 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 "[Ignore]"
-msgstr "(ละเว้น)"
+msgstr "[ละเว้น]"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Line"
-msgstr "บรรทัด:"
+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."
@@ -6938,12 +6907,11 @@ 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
-#, fuzzy
msgid "Lookup Symbol"
-msgstr "เสนอà¹à¸™à¸°à¸„ำเต็ม"
+msgstr "ค้นหาสัà¸à¸¥à¸±à¸à¸©à¸“์"
#: editor/plugins/script_text_editor.cpp
msgid "Pick Color"
@@ -6971,18 +6939,17 @@ 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 "ลบจุด"
+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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
@@ -7031,85 +6998,73 @@ msgid "Complete Symbol"
msgstr "เสนอà¹à¸™à¸°à¸„ำเต็ม"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Evaluate Selection"
-msgstr "ปรับอัตราส่วนเวลาคีย์ที่เลือà¸"
+msgstr "ประเมินที่เลือà¸"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
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 "à¹à¸›à¸¥à¸‡à¸à¸²à¸£à¹€à¸¢à¸·à¹‰à¸­à¸‡à¹€à¸›à¹‡à¸™à¹à¸—็บ"
#: editor/plugins/script_text_editor.cpp
msgid "Auto Indent"
msgstr "ย่อหน้าอัตโนมัติ"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Find in Files..."
-msgstr "คัดà¸à¸£à¸­à¸‡à¹„ฟล์..."
+msgstr "ค้นหาในไฟล์..."
#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
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
-#, fuzzy
msgid "Go to Function..."
msgstr "ไปยังฟังà¸à¹Œà¸Šà¸±à¸™..."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Line..."
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 ""
@@ -7125,49 +7080,43 @@ msgstr "Shader"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "This skeleton has no bones, create some children Bone2D nodes."
-msgstr ""
+msgstr "โครงหลัà¸à¸™à¸µà¹‰à¸¢à¸±à¸‡à¹„ม่มีโครงใดๆ สร้างโหนดลูà¸à¸‚อง Bone2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Rest Pose from Bones"
-msgstr "สร้างจุดปะทุจาภMesh"
+msgstr "สร้างท่าโพสจาà¸à¹‚ครง"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Set Rest Pose to Bones"
-msgstr ""
+msgstr "ตั้งท่าโพสจาà¸à¹‚ครง"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-#, fuzzy
msgid "Skeleton2D"
-msgstr "โครงà¸à¸£à¸°à¸”ูà¸..."
+msgstr "Skeleton2D"
#: 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
-#, fuzzy
msgid "Create physical bones"
-msgstr "สร้าง Mesh นำทาง"
+msgstr "สร้างโครงà¸à¸²à¸¢à¸ à¸²à¸ž"
#: editor/plugins/skeleton_editor_plugin.cpp
-#, fuzzy
msgid "Skeleton"
-msgstr "โครงà¸à¸£à¸°à¸”ูà¸..."
+msgstr "โครงหลัà¸"
#: editor/plugins/skeleton_editor_plugin.cpp
-#, fuzzy
msgid "Create physical skeleton"
-msgstr "สร้าง C# solution"
+msgstr "สร้างโครงหลัà¸à¸à¸²à¸¢à¸ à¸²à¸ž"
#: editor/plugins/skeleton_ik_editor_plugin.cpp
-#, fuzzy
msgid "Play IK"
-msgstr "เล่น"
+msgstr "เล่น IK"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orthogonal"
@@ -7223,11 +7172,11 @@ msgstr "เสียงสูงต่ำ"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw"
-msgstr ""
+msgstr "Yaw"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Objects Drawn"
-msgstr "จำนวนวัตถุที่วาด"
+msgstr "ออบเจà¸à¸•à¹Œà¸—ี่วาด"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Material Changes"
@@ -7294,14 +7243,12 @@ 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."
@@ -7312,14 +7259,12 @@ 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
-#, fuzzy
msgid "Lock View Rotation"
-msgstr "à¹à¸ªà¸”งข้อมูล"
+msgstr "ล็อคà¸à¸²à¸£à¸«à¸¡à¸¸à¸™à¸§à¸´à¸§"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
@@ -7362,18 +7307,16 @@ msgid "Audio Listener"
msgstr "ตัวรับเสียง"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Enable Doppler"
-msgstr "à¹à¸à¹‰à¹„ขโหนดลูà¸à¹„ด้"
+msgstr "เปิดà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸”อปเลอร์"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Cinematic Preview"
-msgstr "à¸à¸³à¸¥à¸±à¸‡à¸ªà¸£à¹‰à¸²à¸‡à¸ à¸²à¸žà¸•à¸±à¸§à¸­à¸¢à¹ˆà¸²à¸‡ Mesh"
+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"
@@ -7404,20 +7347,20 @@ msgid "Freelook Speed Modifier"
msgstr "ปรับความเร็วมุมมองอิสระ"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Freelook Slow Modifier"
msgstr "ปรับความเร็วมุมมองอิสระ"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Rotation Locked"
-msgstr "à¹à¸ªà¸”งข้อมูล"
+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 ""
+"หมายเหตุ: ค่า FPS ที่à¹à¸ªà¸”งเป็นอัตราเฟรมของเอดิเตอร์\n"
+"ไม่สามารถใช้เป็นตัวบ่งชี้ประสิทธิภาพในเà¸à¸¡à¸—ี่à¹à¸—้จริงได้"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -7431,15 +7374,19 @@ msgid ""
"Closed eye: Gizmo is hidden.\n"
"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
msgstr ""
+"คลิà¸à¹€à¸žà¸·à¹ˆà¸­à¸ªà¸¥à¸±à¸šà¸£à¸°à¸«à¸§à¹ˆà¸²à¸‡à¸ªà¸–านะà¸à¸²à¸£à¸¡à¸­à¸‡à¹€à¸«à¹‡à¸™\n"
+"\n"
+"เปิดตา: มองเห็นà¸à¸´à¸‹à¹‚ม\n"
+"ปิดตา: ซ่อนà¸à¸´à¸‹à¹‚ม\n"
+"ตาที่เปิดครึ่งหนึ่ง: à¸à¸´à¸‹à¹‚มสามารถมองเห็นได้ผ่านพื้นผิวทึบà¹à¸ªà¸‡ (\"x-ray\")"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
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 "ไม่สามารถหาชั้นà¹à¸‚็งที่จะสà¹à¸™à¸›à¸à¸±à¸šà¸—ี่เลือà¸"
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
@@ -7452,13 +7399,12 @@ msgstr ""
"Alt+คลิà¸à¸‚วา: เลือà¸à¸—ี่ซ้อนà¸à¸±à¸™"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Use Local Space"
-msgstr "โหมดพิà¸à¸±à¸”ภายใน (%s)"
+msgstr "ใช้พื้นที่ภายใน"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr "จำà¸à¸±à¸”à¸à¸²à¸£à¹€à¸„ลื่อนย้าย"
+msgstr "ใช้สà¹à¸™à¸›"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -7485,9 +7431,8 @@ 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"
@@ -7508,12 +7453,11 @@ msgstr "เปิด/ปิดมุมมองอิสระ"
#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
-msgstr "เคลื่อนย้าย"
+msgstr "à¸à¸²à¸£à¹à¸›à¸¥à¸‡"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Object to Floor"
-msgstr "จำà¸à¸±à¸”ด้วยเส้นตาราง"
+msgstr "สà¹à¸™à¸›à¸­à¸­à¸šà¹€à¸ˆà¸à¸•à¹Œà¸à¸±à¸šà¸Šà¸±à¹‰à¸™"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog..."
@@ -7521,32 +7465,31 @@ 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 มุมมอง (อีà¸à¹à¸šà¸š)"
+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 มุมมอง (อีà¸à¹à¸šà¸š)"
+msgstr "3 วิวพอร์ต (อีà¸à¹à¸šà¸š)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "4 Viewports"
-msgstr "4 มุมมอง"
+msgstr "4 วิวพอร์ต"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Gizmos"
-msgstr "à¹à¸ªà¸”งสัà¸à¸¥à¸±à¸à¸©à¸“์"
+msgstr "à¸à¸´à¸ªà¹‚ม"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
@@ -7623,46 +7566,39 @@ msgstr "หลัง"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Nameless gizmo"
-msgstr ""
+msgstr "à¸à¸´à¸ªà¹‚มไม่มีชื่อ"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create Mesh2D"
-msgstr "สร้างเส้นขอบ Mesh"
+msgstr "สร้าง Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Mesh2D Preview"
-msgstr "à¸à¸³à¸¥à¸±à¸‡à¸ªà¸£à¹‰à¸²à¸‡à¸ à¸²à¸žà¸•à¸±à¸§à¸­à¸¢à¹ˆà¸²à¸‡ Mesh"
+msgstr "ดูตัวอย่าง Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon2D"
-msgstr "สร้างรูปหลายเหลี่ยม"
+msgstr "สร้าง Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Polygon2D Preview"
-msgstr ""
+msgstr "ดูตัวอย่าง Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create CollisionPolygon2D"
-msgstr "สร้างรูปทรงนำทาง"
+msgstr "สร้าง CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "CollisionPolygon2D Preview"
-msgstr "สร้างรูปทรงนำทาง"
+msgstr "ดูตัวอย่าง CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create LightOccluder2D"
-msgstr "สร้างรูปหลายเหลี่ยมà¸à¸±à¹‰à¸™à¹à¸ªà¸‡"
+msgstr "สร้าง LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "LightOccluder2D Preview"
-msgstr "สร้างรูปหลายเหลี่ยมà¸à¸±à¹‰à¸™à¹à¸ªà¸‡"
+msgstr "ดูตัวอย่าง LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite is empty!"
@@ -7670,20 +7606,19 @@ msgstr "สไปรต์ว่างเปล่า!"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Can't convert a sprite using animation frames to mesh."
-msgstr ""
+msgstr "ไม่สามารถà¹à¸›à¸¥à¸‡à¸ªà¹„ปรต์ไปเป็น mesh โดยใช้à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¹€à¸Ÿà¸£à¸¡"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't replace by mesh."
-msgstr ""
+msgstr "เรขาคณิตผิดพลาด ไม่สามารถà¹à¸—นที่ด้วย mesh"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Convert to Mesh2D"
-msgstr "à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™ %s"
+msgstr "à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™ Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create polygon."
-msgstr ""
+msgstr "รูปเรขาคณิตผิดพลาด ไม่สามารถสร้างโพลีà¸à¸­à¸™"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Convert to Polygon2D"
@@ -7691,21 +7626,19 @@ msgstr "à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™ Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create collision polygon."
-msgstr ""
+msgstr "รูปเรขาคณิตผิดพลาด ไม่สามารถสร้างโพลีà¸à¸­à¸™à¸‚อบเขตà¸à¸²à¸£à¸Šà¸™"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create CollisionPolygon2D Sibling"
-msgstr "สร้างรูปทรงนำทาง"
+msgstr "สร้างà¸à¸²à¸•à¸´ CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create light occluder."
-msgstr ""
+msgstr "เรขาคณิตผิดพลาด ไม่สามารถสร้างà¹à¸ªà¸‡à¹€à¸‡à¸²"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create LightOccluder2D Sibling"
-msgstr "สร้างรูปหลายเหลี่ยมà¸à¸±à¹‰à¸™à¹à¸ªà¸‡"
+msgstr "สร้างà¸à¸²à¸•à¸´ LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite"
@@ -7724,9 +7657,8 @@ msgid "Grow (Pixels): "
msgstr "ขยาย (พิà¸à¹€à¸‹à¸¥): "
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Update Preview"
-msgstr "ตัวอย่าง Atlas"
+msgstr "อัพเดทà¸à¸²à¸£à¸”ูตัวอย่าง"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Settings:"
@@ -7785,9 +7717,8 @@ msgid "New Animation"
msgstr "à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¹ƒà¸«à¸¡à¹ˆ"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "ความเร็ว (เฟรม/วินาที):"
+msgstr "ความเร็ว:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -7850,13 +7781,12 @@ msgid "Set Region Rect"
msgstr "à¸à¸³à¸«à¸™à¸”ขอบเขต Texture"
#: editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
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
@@ -7865,11 +7795,11 @@ msgstr "ไม่มี"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Pixel Snap"
-msgstr "จำà¸à¸±à¸”ให้ย้ายเป็นพิà¸à¹€à¸‹à¸¥"
+msgstr "สà¹à¹à¸™à¸›à¸žà¸´à¸à¹€à¸‹à¸¥"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Snap"
-msgstr "เข้าหาเส้นà¸à¸£à¸´à¸”"
+msgstr "สà¹à¸™à¸›à¹€à¸ªà¹‰à¸™à¸à¸£à¸´à¸”"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
@@ -7885,12 +7815,11 @@ msgstr "ขนาด:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Sep.:"
-msgstr ""
+msgstr "หมวดหมู่:"
#: editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "TextureRegion"
-msgstr "ขอบเขต Texture"
+msgstr "ขอบเขตเทà¸à¹€à¸ˆà¸­à¸£à¹Œ"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add All Items"
@@ -7926,20 +7855,19 @@ 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 "สร้างà¹à¸¡à¹ˆà¹à¸šà¸šà¹€à¸›à¸¥à¹ˆà¸²à¸ªà¸³à¸«à¸£à¸±à¸š Editor"
+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 "ปุ่มเมาส์"
+msgstr "สลับปุ่ม"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Disabled Button"
@@ -7947,12 +7875,11 @@ msgstr "ปิดà¸à¸²à¸£à¸—ำงานปุ่ม"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Item"
-msgstr "ไอเทม"
+msgstr "รายà¸à¸²à¸£"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Disabled Item"
-msgstr "ปิดใช้งาน"
+msgstr "รายà¸à¸²à¸£à¸—ี่ปิดใช้งาน"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Check Item"
@@ -7963,18 +7890,16 @@ msgid "Checked Item"
msgstr "ไอเทมมีเครื่องหมาย"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Radio Item"
-msgstr "เพิ่มไอเทม"
+msgstr "ไอเทมเรดิโอ"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
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"
@@ -7997,9 +7922,8 @@ msgid "Many"
msgstr "หลาย"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Disabled LineEdit"
-msgstr "ปิดใช้งาน"
+msgstr "ปิดใช้งาน LineEdit"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Tab 1"
@@ -8092,9 +8016,8 @@ msgid "Transpose"
msgstr "สลับà¹à¸à¸™"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Disable Autotile"
-msgstr "Autotiles"
+msgstr "ปิดออโตไทล์"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Enable Priority"
@@ -8106,13 +8029,22 @@ 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 "วาดไทล์"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+LMB: วาดเส้น\n"
+"Shift+Ctrl+LMB: วาดสี่เหลี่ยม"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8141,9 +8073,8 @@ msgid "Flip Vertically"
msgstr "พลิà¸à¹à¸™à¸§à¸•à¸±à¹‰à¸‡"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Clear Transform"
-msgstr "เคลื่อนย้าย"
+msgstr "เคลียร์à¸à¸²à¸£à¹à¸›à¸¥à¸‡"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Add Texture(s) to TileSet."
@@ -8166,14 +8097,12 @@ msgid "New Single Tile"
msgstr "ไทล์เดี่ยวใหม่"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "New Autotile"
-msgstr "Autotiles"
+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"
@@ -8192,61 +8121,52 @@ msgid "Select the previous shape, subtile, or Tile."
msgstr "เลือà¸à¸£à¸¹à¸›à¸£à¹ˆà¸²à¸‡, ไทล์ย่อยหรือไทล์à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Region"
-msgstr "โหมดà¸à¸²à¸£à¸—ำงาน:"
+msgstr "ขอบเขต"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Collision"
msgstr "ขอบเขตà¸à¸²à¸£à¸Šà¸™"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Occlusion"
-msgstr "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยม"
+msgstr "ตัวบังà¹à¸ªà¸‡"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Navigation"
-msgstr "สร้าง Mesh นำทาง"
+msgstr "ตัวนำทาง"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Bitmask"
-msgstr "โหมดหมุน"
+msgstr "บิทมาร์à¸"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Priority"
msgstr "à¸à¸²à¸£à¸ˆà¸±à¸”ลำดับความสำคัà¸"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Z Index"
-msgstr "ดัชนี:"
+msgstr "Z Index"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Region Mode"
-msgstr "โหมดà¸à¸²à¸£à¸—ำงาน:"
+msgstr "โหมดขอบเขต"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Collision Mode"
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 "สร้าง Mesh นำทาง"
+msgstr "โหมด Navigation"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Bitmask Mode"
-msgstr "โหมดหมุน"
+msgstr "โหมดบิทมาร์à¸"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Priority Mode"
@@ -8257,23 +8177,20 @@ msgid "Icon Mode"
msgstr "โหมดไอคอน"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Z Index Mode"
-msgstr "โหมดมุมมอง"
+msgstr "โหมด Z Index"
#: 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
-#, fuzzy
msgid "Erase bitmask."
-msgstr "คลิà¸à¸‚วา: ลบจุด"
+msgstr "ลบบิทมาร์à¸"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new rectangle."
@@ -8298,7 +8215,7 @@ 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
msgid "Remove selected texture? This will remove all tiles which use it."
@@ -8329,6 +8246,8 @@ msgid ""
"Drag handles to edit Rect.\n"
"Click on another Tile to edit it."
msgstr ""
+"ลาà¸à¹€à¸žà¸·à¹ˆà¸­à¸—ำà¸à¸²à¸£à¹à¸à¹‰à¹„ขรูปสี่เหลี่ยม\n"
+"คลิà¸à¸—ี่ไทล์อื่นเพื่อà¹à¸à¹‰à¹„ข"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Delete selected Rect."
@@ -8396,62 +8315,52 @@ msgid "Set Tile Icon"
msgstr "ตั้งไอคอนไทล์"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Tile Bitmask"
-msgstr "à¹à¸à¹‰à¹„ขตัวà¸à¸£à¸­à¸‡"
+msgstr "à¹à¸à¹‰à¹„ขบิทมาร์à¸à¹„ทล์"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Collision Polygon"
-msgstr "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยมเดิม:"
+msgstr "à¹à¸à¹‰à¹„ขขอบเขตà¸à¸²à¸£à¸Šà¸™à¸‚องโพลีà¸à¸­à¸™"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Occlusion Polygon"
-msgstr "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยม"
+msgstr "à¹à¸à¹‰à¹„ขโพลีà¸à¸­à¸™à¸•à¸±à¸§à¸šà¸±à¸‡à¹à¸ªà¸‡"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Navigation Polygon"
-msgstr "สร้างรูปทรงนำทาง"
+msgstr "à¹à¸à¹‰à¹„ขโพลีà¸à¸­à¸™à¸™à¸³à¸—าง"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
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
-#, fuzzy
msgid "Make Polygon Concave"
-msgstr "ย้ายรูปหลายเหลี่ยม"
+msgstr "ย้ายรูปโพลีà¸à¸­à¸™à¹€à¸§à¹‰à¸²"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Make Polygon Convex"
-msgstr "ย้ายรูปหลายเหลี่ยม"
+msgstr "สร้างรูปทรงนูนโพลีà¸à¸­à¸™"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Tile"
msgstr "ลบไทล์"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove Collision Polygon"
-msgstr "ลบรูปหลายเหลี่ยมà¹à¸¥à¸°à¸ˆà¸¸à¸”"
+msgstr "ลบขอบเขตà¸à¸²à¸£à¸Šà¸™à¹à¸šà¸šà¹‚พลีà¸à¸­à¸™"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove Occlusion Polygon"
-msgstr "สร้างรูปหลายเหลี่ยมà¸à¸±à¹‰à¸™à¹à¸ªà¸‡"
+msgstr "ลบโพลีà¸à¸­à¸™à¸•à¸±à¸§à¸šà¸±à¸‡à¹à¸ªà¸‡"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove Navigation Polygon"
-msgstr "สร้างรูปทรงนำทาง"
+msgstr "ลบโพลีà¸à¸­à¸™à¸™à¸³à¸—าง"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Edit Tile Priority"
@@ -8459,12 +8368,11 @@ msgstr "à¹à¸à¹‰à¸¥à¸³à¸”ับความสำคัà¸à¸‚องไทล์
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Edit Tile Z Index"
-msgstr "à¹à¸à¹‰à¹„ขดัชนี Z ของไทล์"
+msgstr "à¹à¸à¹‰à¹„ข Z Index ของไทล์"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Make Convex"
-msgstr "ย้ายรูปหลายเหลี่ยม"
+msgstr "สร้างรูปทรงนูน"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Make Concave"
@@ -8475,9 +8383,8 @@ msgid "Create Collision Polygon"
msgstr "สร้างรูปหลายเหลี่ยมของเขตà¸à¸²à¸£à¸Šà¸™"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create Occlusion Polygon"
-msgstr "สร้างรูปหลายเหลี่ยมà¸à¸±à¹‰à¸™à¹à¸ªà¸‡"
+msgstr "สร้างโพลีà¸à¸­à¸™à¸•à¸±à¸§à¸šà¸±à¸‡à¹à¸ªà¸‡"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "This property can't be changed."
@@ -8496,26 +8403,24 @@ msgid "Error"
msgstr "ผิดพลาด"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "No commit message was provided"
-msgstr "ไม่ได้ระบุชื่อ"
+msgstr "ไม่ได้ระบุข้อความ commit"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "No files added to stage"
-msgstr ""
+msgstr "ไม่มีไฟล์เพิ่มไฟยัง stage"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit"
-msgstr "ชุมชน"
+msgstr "Commit"
#: 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 "ระบบจัดà¸à¸²à¸£à¸‹à¸­à¸£à¹Œà¸ª (Version Control)"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Initialize"
@@ -8523,12 +8428,11 @@ msgstr "เริ่มต้น"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Staging area"
-msgstr ""
+msgstr "Stage พื้นที่"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Detect new changes"
-msgstr "สร้าง %s ใหม่"
+msgstr "พบà¸à¸²à¸£à¹à¸à¹‰à¹„ขใหม่"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Changes"
@@ -8536,7 +8440,7 @@ msgstr "เปลี่ยน"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Modified"
-msgstr ""
+msgstr "à¹à¸à¹‰à¹„ขà¹à¸¥à¹‰à¸§"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Renamed"
@@ -8547,28 +8451,24 @@ msgid "Deleted"
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 "เลือภstage"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Stage All"
-msgstr "บันทึà¸à¸—ั้งหมด"
+msgstr "Stage ทั้งหมด"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Add a commit message"
-msgstr ""
+msgstr "เพิ่มข้อความ commit"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit Changes"
-msgstr "ซิงค์à¸à¸²à¸£à¹à¸à¹‰à¹„ขสคริปต์"
+msgstr "à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡ commit"
#: editor/plugins/version_control_editor_plugin.cpp
#: modules/gdnative/gdnative_library_singleton_editor.cpp
@@ -8577,16 +8477,15 @@ msgstr "สถานะ"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "View file diffs before committing them to the latest version"
-msgstr ""
+msgstr "ดู diffs ของไฟล์à¸à¹ˆà¸­à¸™à¸—ี่จะ commit ไปยังเวอร์ชันล่าสุด"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "No file diff is active"
-msgstr "ไม่ได้เลือà¸à¹„ฟล์ไว้!"
+msgstr "ไม่มีà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹„ฟล์ diff"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Detect changes in file diff"
-msgstr ""
+msgstr "ตรวจสอบà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¹ƒà¸™ file diff"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(GLES3 only)"
@@ -8609,9 +8508,8 @@ msgid "Boolean"
msgstr "บูลีน"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Sampler"
-msgstr "ไฟล์เสียง"
+msgstr "ตัวอย่าง"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add input port"
@@ -8646,9 +8544,8 @@ msgid "Remove output port"
msgstr "ลบพอร์ตเอาต์พุต"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Set expression"
-msgstr "à¹à¸à¹‰à¹„ขสมà¸à¸²à¸£"
+msgstr "ตั้งค่านิพจน์"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Resize VisualShader node"
@@ -8667,6 +8564,11 @@ msgid "Add Node to Visual Shader"
msgstr "เพิ่มโหนดไปยังเวอร์ชวลเชดเดอร์"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "ย้ายโหนดเรียบร้อย"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "ทำซ้ำโหนด"
@@ -8685,22 +8587,24 @@ msgstr "เปลี่ยนชนิดของอินพุตเวอร
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "ตั้งชื่อยูนิฟอร์ม"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
-msgstr "มุมรูปทรง"
+msgstr "เวอร์เทà¸à¸‹à¹Œ"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Fragment"
msgstr "à¹à¸Ÿà¸£à¸à¹€à¸¡à¸™à¸•à¹Œ"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Light"
-msgstr "ขวา"
+msgstr "à¹à¸ªà¸‡"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Show resulted shader code."
-msgstr "สร้างโหนด"
+msgstr "à¹à¸ªà¸”งผลโค้ดเชดเดอร์"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Create Shader Node"
@@ -8739,18 +8643,16 @@ msgid "Darken operator."
msgstr "ดำเนินà¸à¸²à¸£ Darken"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Difference operator."
-msgstr "เฉพาะที่à¹à¸•à¸à¸•à¹ˆà¸²à¸‡"
+msgstr "ดำเนินà¸à¸²à¸£ Difference"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Dodge operator."
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."
@@ -8769,14 +8671,12 @@ msgid "SoftLight operator."
msgstr "ดำเนินà¸à¸²à¸£ SoftLight"
#: 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."
@@ -8954,7 +8854,7 @@ msgstr "คืนค่า arc tan ของพารามิเตอร์"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic tangent of the parameter."
-msgstr "คืนค่า tanh ของพารามิเตอร์"
+msgstr "คืนค่า arc tanh ของพารามิเตอร์"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -8995,7 +8895,7 @@ 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."
@@ -9138,24 +9038,20 @@ msgid "Perform the texture lookup."
msgstr "ทำà¸à¸²à¸£à¸„้นหาเทà¸à¹€à¸ˆà¸­à¸£à¹Œ"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Cubic texture uniform lookup."
-msgstr "à¹à¸à¹‰à¹„ข Texture Uniform"
+msgstr "ค้นหายูนิฟอร์มเทà¸à¹€à¸ˆà¸­à¸£à¹Œà¸¥à¸¹à¸à¸šà¸²à¸¨à¸à¹Œ"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "2D texture uniform lookup."
-msgstr "à¹à¸à¹‰à¹„ข Texture Uniform"
+msgstr "ค้นหายูนิฟอร์มเทà¸à¹€à¹€à¸ˆà¸­à¸£à¹Œ 2 มิติ"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "2D texture uniform lookup with triplanar."
-msgstr "à¹à¸à¹‰à¹„ข Texture Uniform"
+msgstr "ค้นหายูนิฟอร์มเทà¸à¹€à¹€à¸ˆà¸­à¸£à¹Œ 2 มิติด้วย triplanar"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform function."
-msgstr "เครื่องมือเคลื่อนย้าย..."
+msgstr "ฟังà¸à¹Œà¸Šà¸±à¸™à¸—รานฟอร์ม"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9167,14 +9063,20 @@ 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"
+"ผลคูณภายนอภถือว่าพารามิเตอร์ตัวà¹à¸£à¸ 'c' เป็นเวà¸à¹€à¸•à¸­à¸£à¹Œà¸„อลัมน์ (เมทริà¸à¸‹à¹Œà¸—ี่มีหนึ่งคอลัมน์) "
+"à¹à¸¥à¸°à¸žà¸²à¸£à¸²à¸¡à¸´à¹€à¸•à¸­à¸£à¹Œà¸—ี่สอง 'r' เป็นเวà¸à¹€à¸•à¸­à¸£à¹Œà¹à¸–ว (เมทริà¸à¸‹à¹Œà¸—ี่มีหนึ่งà¹à¸–ว) "
+"à¹à¸¥à¸°à¸—ำà¸à¸²à¸£à¸„ูณเมทริà¸à¸‹à¹Œà¸žà¸µà¸Šà¸„ณิตเชิงเส้น 'c * r' โดยให้ a "
+"เมทริà¸à¸‹à¹Œà¸—ี่มีจำนวนà¹à¸–วเป็นจำนวนส่วนประà¸à¸­à¸šà¹ƒà¸™ '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."
@@ -9197,14 +9099,12 @@ msgid "Multiplies vector by transform."
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
msgid "Vector function."
@@ -9241,6 +9141,10 @@ 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 มีขนาดเล็à¸à¸à¸§à¹ˆà¸²à¸¨à¸¹à¸™à¸¢à¹Œà¸ˆà¸°à¸„ืนค่า N หาà¸à¹€à¸›à¹‡à¸™à¸™à¸­à¸à¸ˆà¸²à¸à¸™à¸±à¹‰à¸™ จะคืนค่า -"
+"N"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the length of a vector."
@@ -9270,7 +9174,7 @@ msgstr "1.0 / เวà¸à¹€à¸•à¸­à¸£à¹Œ"
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."
@@ -9356,12 +9260,17 @@ 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 ""
+"คืนค่าà¸à¸²à¸£à¸¥à¸”ลงของผลคูณเชิงสเà¸à¸¥à¸²à¸£à¹Œà¸‚องพื้นผิวปà¸à¸•à¸´à¹à¸¥à¸°à¸—ิศทางà¸à¸²à¸£à¸¡à¸­à¸‡à¸‚องà¸à¸¥à¹‰à¸­à¸‡ "
+"(ส่งผ่านอินพุตที่เà¸à¸µà¹ˆà¸¢à¸§à¸‚้องไปยังมัน)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9370,6 +9279,13 @@ msgid ""
"it later in the Expressions. You can also declare varyings, uniforms and "
"constants."
msgstr ""
+"นิพจน์ภาษาเชดเดอร์ Godot à¹à¸šà¸šà¸à¸³à¸«à¸™à¸”เอง ซึ่งวางไว้บนสุดของเชดเดอร์ผลลัพธ์ "
+"คุณสามารถสร้างฟังà¸à¹Œà¸Šà¸±à¸™à¸•à¹ˆà¸²à¸‡à¹†à¹„ว้ข้างในà¹à¸¥à¸°à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹„ด้ในภายหลังในนิพจน์ "
+"คุณยังสามารถประà¸à¸²à¸¨à¸¢à¸¹à¸™à¸´à¸Ÿà¸­à¸£à¹Œà¸¡à¹à¸¥à¸°à¸„่าคงที่ได้อีà¸à¸”้วย"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
@@ -9383,25 +9299,25 @@ msgstr "(โหมดà¹à¸Ÿà¸£à¸à¹€à¸¡à¸™à¸•à¹Œ/à¹à¸ªà¸‡ เท่านั้
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 ""
@@ -9432,26 +9348,16 @@ msgid "Runnable"
msgstr "สามารถรันได้"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "เพิ่มà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸à¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "เพิ่มà¹à¸žà¸—ช์à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "ลบà¹à¸žà¸•à¸Šà¹Œ '%s' จาà¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
-msgstr "ลบ '%s'?"
+msgstr "ลบพรีเซ็ต '%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 ""
@@ -9459,6 +9365,8 @@ msgid ""
"This might be due to a configuration issue in the export preset or your "
"export settings."
msgstr ""
+"เà¸à¸´à¸”ข้อผิดพลาดในà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸à¹‚ปรเจà¸à¸•à¹Œà¹„ปยังà¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡ '%s'\n"
+"ปัà¸à¸«à¸²à¸­à¸²à¸ˆà¹€à¸à¸´à¸”จาà¸à¸„่าที่ตั้งในพรีเซ็ตà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸à¸«à¸£à¸·à¸­à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸"
#: editor/project_export.cpp
msgid "Release"
@@ -9474,11 +9382,11 @@ msgstr "ไม่พบที่อยู่ส่งออà¸:"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted:"
-msgstr "à¹à¸¡à¹ˆà¹à¸šà¸šà¸ªà¹ˆà¸‡à¸­à¸­à¸à¸ªà¸³à¸«à¸£à¸±à¸šà¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡à¸™à¸µà¹‰à¸ªà¸¹à¸à¸«à¸²à¸¢/เสียหาย:"
+msgstr "เทมเพลตส่งออà¸à¸ªà¸³à¸«à¸£à¸±à¸šà¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡à¸™à¸µà¹‰à¸ªà¸¹à¸à¸«à¸²à¸¢/เสียหาย:"
#: editor/project_export.cpp
msgid "Presets"
-msgstr "à¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸"
+msgstr "พรีเซ็ต"
#: editor/project_export.cpp editor/project_settings_editor.cpp
msgid "Add..."
@@ -9489,6 +9397,8 @@ 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 ""
+"ถ้าเลือภพรีเซ็ตจะสามารถใช้สำหรับ deploy ในหนึ่งคลิà¸\n"
+"สามารถใช้พรีเซ็ตได้เพียงหนึ่งอันต่อà¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡à¹€à¸žà¸·à¹ˆà¸­à¹ƒà¸«à¹‰à¸ªà¸²à¸¡à¸²à¸£à¸–ทำงานได้"
#: editor/project_export.cpp
msgid "Export Path"
@@ -9527,23 +9437,12 @@ msgstr ""
"(คั่นด้วยจุลภาค ตัวอย่างเช่น: *.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 "ตัวà¸à¸£à¸­à¸‡à¹„ฟล์ที่จะไม่ส่งออภ(คั่นด้วยจุลภาค ตัวอย่างเช่น: *.json, *.txt)"
-
-#: editor/project_export.cpp
-msgid "Patches"
-msgstr "à¹à¸žà¸•à¸Šà¹Œ"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "สร้างà¹à¸žà¸•à¸Šà¹Œ"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "ไฟล์"
+msgstr ""
+"ตัวà¸à¸£à¸­à¸‡à¹„ฟล์ที่จะไม่ส่งออà¸\n"
+"(คั่นด้วยจุลภาค ตัวอย่างเช่น: *.json, *.txt)"
#: editor/project_export.cpp
msgid "Features"
@@ -9611,11 +9510,11 @@ 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"
@@ -9801,6 +9700,12 @@ msgid ""
"Warning: You won't be able to open the project with previous versions of the "
"engine anymore."
msgstr ""
+"ไฟล์à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าโปรเจ็à¸à¸•à¹Œà¸•à¹ˆà¸­à¹„ปนี้ไม่ได้ระบุเวอร์ชันของ Godot ที่สร้างโปรเจà¸à¸•à¹Œà¸™à¸µà¹‰à¸‚ึ้น\n"
+"\n"
+"% s\n"
+"\n"
+"หาà¸à¸„ุณเปิดโปรเจà¸à¸•à¹Œà¸™à¸µà¹‰ จะทำà¸à¸²à¸£à¹à¸›à¸¥à¸‡à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าสำหรับเอนจิ้นเวอร์ชันปัจจุบัน\n"
+"คำเตือน: คุณจะไม่สามารถเปิดโปรเจ็à¸à¸•à¹Œà¸”้วยเอนจิ้นเวอร์ชันà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²à¹„ด้อีà¸à¸•à¹ˆà¸­à¹„ป"
#: editor/project_manager.cpp
msgid ""
@@ -9813,6 +9718,12 @@ 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 ""
@@ -9822,14 +9733,13 @@ msgstr ""
"à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าโปรเจà¸à¸•à¹Œà¸–ูà¸à¸ªà¸£à¹‰à¸²à¸‡à¹‚ดยโดยเอนจิ้นรุ่นใหม่à¸à¸§à¹ˆà¸² ซึ่งà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่านี้ไม่สามารถเข้าà¸à¸±à¸™à¹„ด้à¸à¸±à¸šà¹€à¸­à¸™à¸ˆà¸´à¹‰à¸™à¸£à¸¸à¹ˆà¸™à¸™à¸µà¹‰"
#: editor/project_manager.cpp
-#, fuzzy
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 ""
-"ยังไม่ได้à¸à¸³à¸«à¸™à¸”ฉาà¸à¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™ à¸à¸³à¸«à¸™à¸”ตอนนี้หรือไม่?\n"
-"สามารถà¹à¸à¹‰à¹„ขภายหลังที่ \"ตัวเลือà¸à¹‚ปรเจà¸à¸•à¹Œ\" ใต้หัวข้อ 'application'"
+"ไม่สามารถเริ่มโปรเจ็à¸à¸•à¹Œà¹„ด้: ไม่ได้à¸à¸³à¸«à¸™à¸”ฉาà¸à¸«à¸¥à¸±à¸\n"
+"โปรดà¹à¸à¹‰à¹„ขโปรเจ็à¸à¸•à¹Œà¹à¸¥à¸°à¸•à¸±à¹‰à¸‡à¸‰à¸²à¸à¸«à¸¥à¸±à¸à¹ƒà¸™à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าโปรเจ็à¸à¸•à¹Œà¸ à¸²à¸¢à¹ƒà¸•à¹‰à¸«à¸¡à¸§à¸”หมู่ \"à¹à¸­à¸›à¸žà¸¥à¸´à¹€à¸„ชัน\""
#: editor/project_manager.cpp
msgid ""
@@ -9844,18 +9754,20 @@ msgid "Are you sure to run %d projects at once?"
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 ""
+"ลบโปรเจà¸à¸•à¹Œà¸­à¸­à¸à¸ˆà¸²à¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­? \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
msgid ""
@@ -9912,7 +9824,7 @@ msgstr "ลบที่หายไป"
#: editor/project_manager.cpp
msgid "Templates"
-msgstr "à¹à¸¡à¹ˆà¹à¸šà¸š"
+msgstr "เทมเพลต"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -9923,13 +9835,12 @@ msgid "Can't run project"
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"
-"ต้องà¸à¸²à¸£à¸ªà¸³à¸£à¸§à¸ˆà¹‚ปรเจà¸à¸•à¹Œà¸•à¸±à¸§à¸­à¸¢à¹ˆà¸²à¸‡à¹ƒà¸™à¹à¸«à¸¥à¹ˆà¸‡à¸£à¸§à¸¡à¸—รัพยาà¸à¸£à¸«à¸£à¸·à¸­à¹„ม่?"
+"ขณะนี้คุณไม่มีโปรเจà¸à¸•à¹Œà¹ƒà¸” ๆ\n"
+"คุณต้องà¸à¸²à¸£à¸ªà¸³à¸£à¸§à¸ˆà¹‚ปรเจà¸à¸•à¹Œà¸•à¸±à¸§à¸­à¸¢à¹ˆà¸²à¸‡à¸­à¸¢à¹ˆà¸²à¸‡à¹€à¸›à¹‡à¸™à¸—างà¸à¸²à¸£à¹ƒà¸™à¹„ลบรารีไฟล์เนื้อหาหรือไม่?"
#: editor/project_manager.cpp
msgid ""
@@ -9937,6 +9848,8 @@ 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 "
@@ -9958,21 +9871,19 @@ msgstr "ปุ่มเมาส์"
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 "มีà¸à¸²à¸£à¸à¸£à¸°à¸—ำ '%s' อยู่à¹à¸¥à¹‰à¸§!"
+msgstr "มีà¸à¸²à¸£à¸à¸£à¸°à¸—ำ '%s' อยู่à¹à¸¥à¹‰à¸§"
#: editor/project_settings_editor.cpp
msgid "Rename Input Action Event"
msgstr "เปลี่ยนชื่อà¸à¸²à¸£à¸à¸£à¸°à¸—ำ"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Change Action deadzone"
-msgstr "เปลี่ยนชื่อà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™:"
+msgstr "เปลี่ยน Action deadzone"
#: editor/project_settings_editor.cpp
msgid "Add Input Action Event"
@@ -10015,14 +9926,12 @@ msgid "Wheel Down Button"
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
msgid "X Button 1"
@@ -10104,7 +10013,7 @@ msgstr "ลบไอเทม"
msgid ""
"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'."
-msgstr ""
+msgstr "ชื่อผิดพลาด ไม่สามารถเป็นช่องว่างหรือประà¸à¸­à¸šà¸”้วย '/', ':', '=', '\\' หรือ '\"'"
#: editor/project_settings_editor.cpp
msgid "Add Input Action"
@@ -10119,9 +10028,8 @@ msgid "Settings saved OK."
msgstr "บันทึà¸à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าà¹à¸¥à¹‰à¸§"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Moved Input Action Event"
-msgstr "เพิ่มปุ่มà¸à¸”ของà¸à¸²à¸£à¸à¸£à¸°à¸—ำ"
+msgstr "ย้ายเหตà¸à¸²à¸£à¸“์à¸à¸²à¸£à¸à¸”ปุ่ม"
#: editor/project_settings_editor.cpp
msgid "Override for Feature"
@@ -10129,11 +10037,11 @@ 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"
@@ -10193,7 +10101,7 @@ msgstr "à¸à¸²à¸£à¸à¸£à¸°à¸—ำ"
#: editor/project_settings_editor.cpp
msgid "Deadzone"
-msgstr ""
+msgstr "Deadzone"
#: editor/project_settings_editor.cpp
msgid "Device:"
@@ -10209,11 +10117,11 @@ 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"
@@ -10240,9 +10148,8 @@ msgid "Show All Locales"
msgstr "à¹à¸ªà¸”งทุà¸à¸ à¸¹à¸¡à¸´à¸ à¸²à¸„"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Show Selected Locales Only"
-msgstr "à¹à¸ªà¸”งเฉพาะภูมิภาคที่เลือà¸"
+msgstr "à¹à¸ªà¸”งเฉพาะภภายในเท่านั้น"
#: editor/project_settings_editor.cpp
msgid "Filter mode:"
@@ -10262,7 +10169,7 @@ msgstr "ปลั๊à¸à¸­à¸´à¸™"
#: editor/property_editor.cpp
msgid "Preset..."
-msgstr "à¹à¸šà¸š..."
+msgstr "พรีเซ็ต..."
#: editor/property_editor.cpp
msgid "Zero"
@@ -10317,29 +10224,24 @@ msgid "Select Method"
msgstr "เลือà¸à¹€à¸¡à¸—็อด"
#: editor/rename_dialog.cpp editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Batch Rename"
-msgstr "เปลี่ยนชื่อ"
+msgstr "เปลี่ยนชื่อหลายรายà¸à¸²à¸£"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-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
msgid "Advanced Options"
@@ -10374,6 +10276,8 @@ msgid ""
"Sequential integer counter.\n"
"Compare counter options."
msgstr ""
+"ตัวนับà¹à¸šà¸šà¸•à¸²à¸¡à¸¥à¸³à¸”ับ\n"
+"เปรียบเทียบà¸à¸±à¸šà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าตัวนับ"
#: editor/rename_dialog.cpp
msgid "Per-level Counter"
@@ -10381,7 +10285,7 @@ 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"
@@ -10393,22 +10297,23 @@ 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"
+"ตัวเลขที่ขาดหายไปจะค่าเป็นศูนย์"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Post-Process"
-msgstr "สคริปต์หลังประมวลผล:"
+msgstr "หลังประมวลผล"
#: editor/rename_dialog.cpp
msgid "Keep"
@@ -10416,15 +10321,15 @@ 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
msgid "To Lowercase"
@@ -10435,14 +10340,12 @@ msgid "To Uppercase"
msgstr "ไปตัวพิมพ์ใหà¸à¹ˆ"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Reset"
-msgstr "รีเซ็ตซูม"
+msgstr "รีเซ็ต"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "à¹à¸à¹‰à¹„ขสมà¸à¸²à¸£"
+msgstr "ข้อผิดพลาดของนิพจน์ทั่วไป:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -10454,7 +10357,7 @@ msgstr "หาโหนดà¹à¸¡à¹ˆà¹ƒà¸«à¸¡à¹ˆ"
#: editor/reparent_dialog.cpp
msgid "Reparent Location (Select new Parent):"
-msgstr "เลือà¸à¹‚หนดà¹à¸¡à¹ˆà¹ƒà¸«à¸¡à¹ˆ:"
+msgstr "เลือà¸à¸•à¸³à¹à¸«à¸™à¹ˆà¸‡à¹‚หนดà¹à¸¡à¹ˆà¹ƒà¸«à¸¡à¹ˆ:"
#: editor/reparent_dialog.cpp
msgid "Keep Global Transform"
@@ -10511,9 +10414,8 @@ msgid "Instance Child Scene"
msgstr "อินสà¹à¸•à¸™à¸‹à¹Œà¸‰à¸²à¸à¸¥à¸¹à¸"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach Script"
-msgstr "à¹à¸™à¸šà¸ªà¸„ริปต์"
+msgstr "ค้นพบสคริปต์"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10534,23 +10436,24 @@ msgstr "ทำซ้ำโหนด"
#: 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 ""
+msgstr "โหนดต้องเป็นของฉาà¸à¸—ี่à¹à¸à¹‰à¹„ขจึงจะà¸à¸¥à¸²à¸¢à¹€à¸›à¹‡à¸™à¹‚หนดà¹à¸¡à¹ˆ"
#: editor/scene_tree_dock.cpp
msgid "Instantiated scenes can't become root"
-msgstr ""
+msgstr "ฉาà¸à¸­à¸´à¸™à¸ªà¹à¸•à¸™à¸‹à¹Œà¹„ม่สามารถเป็นฉาà¸à¹à¸¡à¹ˆà¹„ด้"
#: editor/scene_tree_dock.cpp
msgid "Make node as Root"
msgstr "ทำโหนดให้เป็นโหนดà¹à¸¡à¹ˆ"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete %d nodes and any children?"
-msgstr "ลบโหนด \"%s\" à¹à¸¥à¸°à¹‚หนดลูà¸?"
+msgstr "ลบโหนด %d à¹à¸¥à¸°à¹‚หนดลูà¸à¸«à¸£à¸·à¸­à¹„ม่?"
#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
@@ -10585,17 +10488,19 @@ msgid ""
"Disabling \"editable_instance\" will cause all properties of the node to be "
"reverted to their default."
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 ""
+"à¸à¸²à¸£à¹€à¸›à¸´à¸”à¸à¸²à¸£à¸—ำงาน \"Load As Placeholder\" จะปิดà¸à¸²à¸£à¸—ำงาน \"Editable Children\" "
+"à¹à¸¥à¸°à¸ˆà¸°à¸—ำให้คุณสมบัติทั้งหมดของโหนดเปลี่ยนà¸à¸¥à¸±à¸šà¹€à¸›à¹‡à¸™à¸„่าเริ่มต้น"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Make Local"
-msgstr "ระยะใà¸à¸¥à¹‰"
+msgstr "ทำให้เป็นภายใน"
#: editor/scene_tree_dock.cpp
msgid "New Scene Root"
@@ -10681,6 +10586,8 @@ msgid ""
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
+"ไม่สามารถà¹à¸™à¸šà¸ªà¸„ริปต์: ไม่มีภาษาโปรà¹à¸à¸£à¸¡à¸—ี่เปิดใช้\n"
+"อาจเป็นเพราะเอดิเตอร์นี้สร้างขึ้นโดยปิดใช้งานโมดูลภาษาโปรà¹à¸à¸£à¸¡à¸—ั้งหมด"
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -10729,14 +10636,12 @@ msgid ""
msgstr "อินสà¹à¸•à¸™à¸‹à¹Œà¸‰à¸²à¸à¹€à¸›à¹‡à¸™à¹‚หนด สร้างฉาà¸à¸ªà¸·à¸šà¸—อดถ้าไม่มีโหนดราà¸"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script to the selected node."
-msgstr "สร้างสคริปต์ให้โหนดที่เลือà¸"
+msgstr "à¹à¸™à¸šà¸ªà¸„ริปต์ใหม่หรือที่มีอยู่à¸à¸±à¸šà¹‚หนดที่เลือà¸"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach the script from the selected node."
-msgstr "ลบสคริปต์ของโหนดที่เลือà¸"
+msgstr "ถอดสคริปต์ออà¸à¸ˆà¸²à¸à¹‚หนดที่เลือà¸"
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10751,7 +10656,6 @@ msgid "Clear Inheritance? (No Undo!)"
msgstr "ลบà¸à¸²à¸£à¸ªà¸·à¸šà¸—อด? (ย้อนà¸à¸¥à¸±à¸šà¹„ม่ได้!)"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Toggle Visible"
msgstr "ซ่อน/à¹à¸ªà¸”ง"
@@ -10760,9 +10664,8 @@ msgid "Unlock Node"
msgstr "ปลดล็อคโหนด"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Button Group"
-msgstr "ปุ่ม 7"
+msgstr "ชุดของปุ่ม"
#: editor/scene_tree_editor.cpp
msgid "(Connecting From)"
@@ -10773,30 +10676,27 @@ msgid "Node configuration warning:"
msgstr "คำเตือนà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าโหนด:"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid ""
"Node has %s connection(s) and %s group(s).\n"
"Click to show signals dock."
msgstr ""
-"โหนดมีà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚ยงà¹à¸¥à¸°à¸à¸¥à¸¸à¹ˆà¸¡\n"
+"โหนดมีà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­% s à¹à¸¥à¸°à¸à¸¥à¸¸à¹ˆà¸¡% s\n"
"คลิà¸à¹€à¸žà¸·à¹ˆà¸­à¹à¸ªà¸”งà¹à¸œà¸‡à¸ªà¸±à¸à¸à¸²à¸“"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid ""
"Node has %s connection(s).\n"
"Click to show signals dock."
msgstr ""
-"โหนดมีà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚ยง\n"
+"โหนดมีà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­% s\n"
"คลิà¸à¹€à¸žà¸·à¹ˆà¸­à¹à¸ªà¸”งà¹à¸œà¸‡à¸ªà¸±à¸à¸à¸²à¸“"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid ""
"Node is in %s group(s).\n"
"Click to show groups dock."
msgstr ""
-"โหนดอยู่ในà¸à¸¥à¸¸à¹ˆà¸¡\n"
+"โหนดอยู่ในà¸à¸¥à¸¸à¹ˆà¸¡% s\n"
"คลิà¸à¹€à¸žà¸·à¹ˆà¸­à¹à¸ªà¸”งà¹à¸œà¸‡à¸à¸¥à¸¸à¹ˆà¸¡"
#: editor/scene_tree_editor.cpp
@@ -10812,12 +10712,11 @@ msgstr ""
"คลิà¸à¹€à¸žà¸·à¹ˆà¸­à¸›à¸¥à¸”ล็อค"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid ""
"Children are not selectable.\n"
"Click to make selectable."
msgstr ""
-"โหนดลูà¸à¸–ูà¸à¸—ำให้เลือà¸à¹„ม่ได้\n"
+"ลูà¸à¸–ูà¸à¸—ำให้เลือà¸à¹„ม่ได้\n"
"คลิà¸à¹€à¸žà¸·à¹ˆà¸­à¸—ำให้เลือà¸à¹„ด้"
#: editor/scene_tree_editor.cpp
@@ -10861,14 +10760,12 @@ msgid "Filename is empty."
msgstr "ชื่อไฟล์ว่างเปล่า"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Path is not local."
msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่อยู่ไม่ใช่ภายใน"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid base path."
-msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™à¹„ม่ถูà¸à¸•à¹‰à¸­à¸‡"
+msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸à¸²à¸™à¹„ม่ถูà¸à¸•à¹‰à¸­à¸‡"
#: editor/script_create_dialog.cpp
msgid "A directory with the same name exists."
@@ -10879,18 +10776,16 @@ msgid "File does not exist."
msgstr "ไม่พบไฟล์"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid extension."
msgstr "นามสà¸à¸¸à¸¥à¹„ม่ถูà¸à¸•à¹‰à¸­à¸‡"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Wrong extension chosen."
-msgstr "นามสà¸à¸¸à¸¥à¹„ม่ถูà¸à¸•à¹‰à¸­à¸‡"
+msgstr "เลือà¸à¸™à¸²à¸¡à¸ªà¸à¸¸à¸¥à¹„ม่ถูà¸à¸•à¹‰à¸­à¸‡"
#: editor/script_create_dialog.cpp
msgid "Error loading template '%s'"
-msgstr "ผิดพลาดขณะโหลดà¹à¸¡à¹ˆà¹à¸šà¸š '%s'"
+msgstr "ผิดพลาดขณะโหลดเทมเพลต'%s'"
#: editor/script_create_dialog.cpp
msgid "Error - Could not create script in filesystem."
@@ -10917,9 +10812,8 @@ msgid "Open Script"
msgstr "เปิดสคริปต์"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "File exists, it will be reused."
-msgstr "มีไฟล์นี้อยู่à¹à¸¥à¹‰à¸§ จะนำมาใช้"
+msgstr "มีไฟล์นี้อยู่à¹à¸¥à¹‰à¸§ à¹à¸¥à¸°à¸ˆà¸°à¸–ูà¸à¸™à¸³à¸¡à¸²à¹ƒà¸Šà¹‰"
#: editor/script_create_dialog.cpp
msgid "Invalid path."
@@ -10938,14 +10832,12 @@ msgid "Script path/name is valid."
msgstr "ที่อยู่/ชื่อของสคริปต์ถูà¸à¸•à¹‰à¸­à¸‡"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Allowed: a-z, A-Z, 0-9, _ and ."
-msgstr "อัà¸à¸‚ระที่ใช้ได้: a-z, A-Z, 0-9 à¹à¸¥à¸° _"
+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
msgid "Will create a new script file."
@@ -10963,7 +10855,7 @@ msgstr "ไฟล์สคริปต์มีอยู่à¹à¸¥à¹‰à¸§"
msgid ""
"Note: Built-in scripts have some limitations and can't be edited using an "
"external editor."
-msgstr ""
+msgstr "หมายเหตุ: บิวท์อินสคริปต์มีข้อจำà¸à¸±à¸” ไม่สามารถà¹à¸à¹‰à¹„ขได้โดยใช้เอดิเตอร์ภายนอà¸"
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -10971,12 +10863,11 @@ msgstr "ชื่อคลาส:"
#: editor/script_create_dialog.cpp
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"
@@ -11019,25 +10910,22 @@ msgid "C++ Source:"
msgstr "C++ ต้นฉบับ:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Stack Trace"
-msgstr "สà¹à¸•à¸„"
+msgstr "à¹à¸—ร็à¸à¸ªà¹à¸•à¸„"
#: editor/script_editor_debugger.cpp
msgid "Errors"
msgstr "ข้อผิดพลาด"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Child process connected."
-msgstr "เชื่อมà¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£à¹à¸¥à¹‰à¸§"
+msgstr "เชื่อมà¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£à¸¥à¸¹à¸à¹à¸¥à¹‰à¸§"
#: editor/script_editor_debugger.cpp
msgid "Copy Error"
msgstr "คัดลอà¸à¸œà¸´à¸”พลาด"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Video RAM"
msgstr "หน่วยความจำวีดีโอ"
@@ -11062,9 +10950,8 @@ msgid "Profiler"
msgstr "ตัวตรวจวิเคราะห์ประสิทธิภาพ (Profiler)"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Network Profiler"
-msgstr "ส่งออà¸à¹‚ปรเจà¸à¸•à¹Œ"
+msgstr "โปรไฟล์เน็ตเวิร์à¸"
#: editor/script_editor_debugger.cpp
msgid "Monitor"
@@ -11076,7 +10963,7 @@ msgstr "ค่า"
#: editor/script_editor_debugger.cpp
msgid "Monitors"
-msgstr "à¸à¸²à¸£à¸ªà¸±à¸‡à¹€à¸à¸•à¸à¸²à¸£à¸“์"
+msgstr "มอนิเตอร์"
#: editor/script_editor_debugger.cpp
msgid "Pick one or more items from the list to display the graph."
@@ -11091,9 +10978,8 @@ 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"
@@ -11176,13 +11062,12 @@ msgid "Change Camera Size"
msgstr "เปลี่ยนขนาดà¸à¸¥à¹‰à¸­à¸‡"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Change Notifier AABB"
-msgstr "à¹à¸à¹‰à¹„ขขนาด Notifier"
+msgstr "à¹à¸à¹‰à¹„ข Notifier AABB"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Particles AABB"
-msgstr "เปลี่ยนเส้นà¸à¸£à¸­à¸š Particles"
+msgstr "à¹à¸à¹‰à¹„ข Particles AABB"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Probe Extents"
@@ -11209,7 +11094,6 @@ msgid "Change Cylinder Shape Radius"
msgstr "ปรับรัศมีทรงà¹à¸„ปซูล"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Shape Height"
msgstr "ปรับความสูงทรงà¹à¸„ปซูล"
@@ -11226,14 +11110,12 @@ msgid "Change Cylinder Height"
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"
@@ -11325,7 +11207,7 @@ msgstr "ดิà¸à¸Šà¸±à¸™à¸™à¸²à¸£à¸µà¸­à¸´à¸™à¸ªà¹à¸•à¸™à¸‹à¹Œà¸œà¸´à¸”พล
#: modules/gdscript/gdscript_functions.cpp
msgid "Object can't provide a length."
-msgstr "ไม่สามารถบอà¸à¸„วามยาวของวัตถุได้"
+msgstr "ไม่สามารถบอà¸à¸„วามยาวของออบเจà¸à¸•à¹Œà¹„ด้"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -11356,14 +11238,12 @@ msgid "GridMap Delete Selection"
msgstr "ลบที่เลือà¸à¹ƒà¸™ GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Fill Selection"
-msgstr "ลบที่เลือà¸à¹ƒà¸™ GridMap"
+msgstr "เติมที่เลือà¸à¹ƒà¸™ GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Paste Selection"
-msgstr "ลบที่เลือà¸à¹ƒà¸™ GridMap"
+msgstr "วางที่เลือà¸à¹ƒà¸™ GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Paint"
@@ -11450,17 +11330,16 @@ msgid "Pick Distance:"
msgstr "ระยะà¸à¸²à¸£à¹€à¸¥à¸·à¸­à¸:"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Filter meshes"
-msgstr "โหมดà¸à¸²à¸£à¸à¸£à¸­à¸‡:"
+msgstr "ตัวà¸à¸£à¸­à¸‡ mesh"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
-msgstr ""
+msgstr "มอบทรัพยาà¸à¸£ MeshLibrary ให้à¸à¸±à¸š GridMap นี้เพื่อใช้ mesh"
#: 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"
@@ -11468,7 +11347,7 @@ msgstr "สิ้นสุดสà¹à¸•à¸„ข้อผิดพลาดภาย
#: modules/recast/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
-msgstr ""
+msgstr "Bake NavMesh"
#: modules/recast/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
@@ -11702,6 +11581,8 @@ 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\" ค้างไว้à¹à¸¥à¹‰à¸§à¸›à¸¥à¹ˆà¸­à¸¢à¹€à¸žà¸·à¹ˆà¸­à¸„ัดลอà¸à¸¥à¸²à¸¢à¹€à¸‹à¹‡à¸™"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Getter Property"
@@ -11769,15 +11650,15 @@ 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 "เลือà¸à¸­à¸¢à¹ˆà¸²à¸‡à¸™à¹‰à¸­à¸¢à¸«à¸™à¸¶à¹ˆà¸‡à¹‚หนดที่มีพอร์ต sequence"
#: 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
msgid "Create Function"
@@ -11828,7 +11709,6 @@ msgid "function_name"
msgstr "ชื่อฟังà¸à¹Œà¸Šà¸±à¹ˆà¸™"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Select or create a function to edit its graph."
msgstr "เลือà¸à¸«à¸£à¸·à¸­à¸ªà¸£à¹‰à¸²à¸‡à¸Ÿà¸±à¸‡à¸à¹Œà¸Šà¸±à¸™à¹€à¸žà¸·à¹ˆà¸­à¹à¸à¹‰à¹„ขà¸à¸£à¸²à¸Ÿ"
@@ -11878,7 +11758,7 @@ 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!"
@@ -11964,29 +11844,29 @@ msgstr "OpenJDK jarsigner ยังไม่ได้à¸à¸³à¸«à¸™à¸”ค่าใ
#: platform/android/export/export.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
-msgstr ""
+msgstr "Debug keystore ไม่ได้ถูà¸à¸•à¸±à¹‰à¸‡à¹„ว้ในตั้งค่าของเอดิเตอร์หรือในพรีเซ็ต"
#: platform/android/export/export.cpp
msgid "Release keystore incorrectly configured in the export preset."
-msgstr ""
+msgstr "Release keystore à¸à¸³à¸«à¸™à¸”ค่าไว้อย่างไม่ถูà¸à¸•à¹‰à¸­à¸‡à¹ƒà¸™à¸žà¸£à¸µà¹€à¸‹à¹‡à¸•à¸ªà¸³à¸«à¸£à¸±à¸šà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸"
#: 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 "เทมเพลตà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸ªà¸³à¸«à¸£à¸±à¸šà¹à¸­à¸™à¸”รอยด์ไม่ถูà¸à¸•à¸´à¸”ตั้ง สามารถติดตั้งจาà¸à¹€à¸¡à¸™à¸¹à¹‚ปรเจà¸à¸•à¹Œ"
#: platform/android/export/export.cpp
msgid "Invalid public key for APK expansion."
-msgstr ""
+msgstr "public key ผิดพลาดสำหรับ APK expansion"
#: platform/android/export/export.cpp
msgid "Invalid package name:"
@@ -11997,32 +11877,53 @@ 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 ""
+msgstr "\"Use Custom Build\" จำเป็นต้องเปิดà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸«à¸²à¸à¸ˆà¸°à¹ƒà¸Šà¹‰à¸›à¸¥à¸±à¹Šà¸à¸­à¸´à¸™"
#: 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\" เป็น \"Oculus Mobile VR\""
#: platform/android/export/export.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
+msgstr "\"Hand Tracking\" จะสามารถใช้ได้เมื่อ \"Xr Mode\" เป็น \"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\" เป็น \"Oculus Mobile VR\""
+
+#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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 ""
+"พยายามสร้างจาà¸à¹€à¸—มเพลตที่สร้างขึ้นเอง à¹à¸•à¹ˆà¹„ม่มีข้อมูลเวอร์ชัน โปรดติดตั้งใหม่จาà¸à¹€à¸¡à¸™à¸¹ \"โปรเจà¸à¸•à¹Œ\""
#: platform/android/export/export.cpp
msgid ""
@@ -12031,6 +11932,10 @@ msgid ""
" Godot Version: %s\n"
"Please reinstall Android build template from 'Project' menu."
msgstr ""
+"เวอร์ชันบิวด์ Android ไม่ตรงà¸à¸±à¸™:\n"
+" ติดตั้งเทมเพลตà¹à¸¥à¹‰à¸§:% s\n"
+" Godot เวอร์ชัน:% s\n"
+"โปรดติดตั้งเทมเพลตà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸ªà¸³à¸«à¸£à¸±à¸šà¹à¸­à¸™à¸”รอยด์ใหม่จาà¸à¹€à¸¡à¸™à¸¹ \"โปรเจà¸à¸•à¹Œ\""
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
@@ -12041,32 +11946,38 @@ msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
+"à¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¹‚ปรเจà¸à¸•à¹Œà¹à¸­à¸™à¸”รอยด์ล้มเหลว ตรวจสอบผลลัพธ์เพื่อหาข้อผิดพลาด\n"
+"หรือไปที่ docs.godotengine.org สำหรับเอà¸à¸ªà¸²à¸£à¸›à¸£à¸°à¸à¸­à¸šà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸ªà¸³à¸«à¸£à¸±à¸šà¹à¸­à¸™à¸”รอยด์"
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
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
msgid "App Store Team ID not specified - cannot configure the project."
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 "ไอคอนที่จำเป็นไม่ได้ระบุไว้ในพรีเซ็ต"
#: platform/javascript/export/export.cpp
msgid "Stop HTTP Server"
@@ -12086,11 +11997,11 @@ msgstr "เขียนไฟล์ไม่ได้:"
#: platform/javascript/export/export.cpp
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
msgid "Could not read custom HTML shell:"
@@ -12105,14 +12016,12 @@ msgid "Using default boot splash image."
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
msgid "Invalid package publisher display name."
@@ -12159,11 +12068,12 @@ msgid "Invalid splash screen image dimensions (should be 620x300)."
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' เพื่อให้ AnimatedSprite à¹à¸ªà¸”งผลได้"
+msgstr ""
+"ทรัพยาà¸à¸£ SpriteFrames จำเป็นต้องสร้างหรือตั้งค่าคุณสมบัติ 'Frames' เพื่อให้ AnimatedSprite "
+"à¹à¸ªà¸”งผล"
#: scene/2d/canvas_modulate.cpp
msgid ""
@@ -12174,14 +12084,14 @@ msgstr ""
"โหนดà¹à¸£à¸à¹€à¸—่านั้นที่จะทำงานได้ปà¸à¸•à¸´ ที่เหลือจะไม่ทำงาน"
#: 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"
-"à¸à¸£à¸¸à¸“าเพิ่ม CollisionShape2D หรือ CollisionPolygon2D เป็นโหนดลูà¸à¹€à¸žà¸·à¹ˆà¸­à¹ƒà¸«à¹‰à¸¡à¸µà¸£à¸¹à¸›à¸—รง"
+"โหนดนี้ไม่มีโหนดรูปทรง จึงไม่สามารถชนหรือมีปà¸à¸´à¸ªà¸±à¸¡à¸žà¸±à¸™à¸˜à¹Œà¸à¸±à¸šà¸­à¸­à¸šà¹€à¸ˆà¸à¸•à¹Œà¸­à¸·à¹ˆà¸™à¹„ด้\n"
+"à¸à¸£à¸¸à¸“าเพิ่ม CollisionShape2D หรือ CollisionPolygon2D "
+"เป็นโหนดลูà¸à¹€à¸žà¸·à¹ˆà¸­à¹ƒà¸«à¹‰à¸ªà¸²à¸¡à¸²à¸£à¸–สร้างรูปทรงได้"
#: scene/2d/collision_polygon_2d.cpp
msgid ""
@@ -12218,19 +12128,22 @@ msgid ""
"Polygon-based shapes are not meant be used nor edited directly through the "
"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
msgstr ""
+"รูปร่างโพลีà¸à¸­à¸™à¹„ม่สามารถใช้หรือà¹à¸à¹‰à¹„ขโดยตรงจาà¸à¹‚หนด CollisionShape2D à¸à¸£à¸¸à¸“าใช้โหนด "
+"CollisionPolygon2D à¹à¸—น"
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
+"à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™ CPUParticles2D จำเป็นต้องใช้ CanvasItemMaterial โดยเปิดà¸à¸²à¸£à¸—ำงาน "
+"\"Particles Animation\""
#: scene/2d/light_2d.cpp
-#, fuzzy
msgid ""
"A texture with the shape of the light must be supplied to the \"Texture\" "
"property."
-msgstr "ต้องมีรูปร่างของà¹à¸ªà¸‡à¸­à¸¢à¸¹à¹ˆà¹ƒà¸™ 'texture'"
+msgstr "ต้องระบุเทà¸à¹€à¸ˆà¸­à¸£à¹Œà¸—ี่มีรูปร่างของà¹à¸ªà¸‡à¹ƒà¸«à¹‰à¸à¸±à¸šà¸„ุณสมบัติ \"Texture\"'"
#: scene/2d/light_occluder_2d.cpp
msgid ""
@@ -12238,9 +12151,8 @@ msgid ""
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 ""
@@ -12268,6 +12180,8 @@ msgid ""
"Use the CPUParticles2D node instead. You can use the \"Convert to "
"CPUParticles\" option for this purpose."
msgstr ""
+"ไดรเวอร์ GLES2 ไม่สนับสนุนระบบพาร์ติเคิลโดยใช้à¸à¸²à¸£à¹Œà¸”จอ\n"
+"ใช้โหนด CPUParticles2D à¹à¸—น คุณสามารถใช้ตัวเลือภ\"à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™ CPUParticles\" ได้"
#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
msgid ""
@@ -12280,6 +12194,8 @@ msgid ""
"Particles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
+"à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™ Particles2D จำเป็นต้องใช้ CanvasItemMaterial โดยเปิดใช้งาน \"Particles "
+"Animation\""
#: scene/2d/path_2d.cpp
msgid "PathFollow2D only works when set as a child of a Path2D node."
@@ -12291,8 +12207,9 @@ msgid ""
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
-"ระบบฟิสิà¸à¸ªà¹Œà¸ˆà¸°à¸ˆà¸±à¸”à¸à¸²à¸£à¸‚นาดของ RigidBody2D (ในโหมด character หรือ rigid) เมื่อรันเà¸à¸¡\n"
-"à¸à¸£à¸¸à¸“าปรับขนาดของ Collision shape à¹à¸—น"
+"à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸‚นาดของ RigidBody2D (ในโหมด character หรือ rigid) "
+"จะถูà¸à¹à¸—นที่โดยเอ็นจิ้นฟิสิà¸à¸ªà¹Œà¹€à¸¡à¸·à¹ˆà¸­à¸—ำงาน\n"
+"เปลี่ยนขนาดในขอบเขตà¸à¸²à¸£à¸Šà¸™à¸¥à¸¹à¸à¸à¸±à¸™à¹à¸—น"
#: scene/2d/remote_transform_2d.cpp
msgid "Path property must point to a valid Node2D node to work."
@@ -12300,7 +12217,7 @@ msgstr "ต้องà¹à¸à¹‰à¹„ข Path ให้ชี้ไปยังโห
#: 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."
@@ -12309,53 +12226,47 @@ msgstr "Bone2D สามารถทำงานได้à¸à¸±à¸š Skeleton2D à¸
#: 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 ฯลฯ "
-"เพื่อให้มีรูปทรง"
+"TileMap ที่มีโหนดà¹à¸¡à¹ˆ จำเป็นต้องมีโหนดà¹à¸¡à¹ˆ CollisionObject2D เพื่อà¸à¸³à¸«à¸™à¸”รูปร่างให้ "
+"โปรดใช้เป็นโหนดลูà¸à¸‚อง Area2D, StaticBody2D, RigidBody2D, KinematicBody2D à¹à¸¥à¸°à¸­à¸·à¹ˆà¸™ "
+"ๆ เพื่อให้มีรูปร่าง"
#: scene/2d/visibility_notifier_2d.cpp
-#, fuzzy
msgid ""
"VisibilityEnabler2D works best when used with the edited scene root directly "
"as parent."
-msgstr "VisibilityEnable2D ควรจะเป็นโหนดลูà¸à¸‚องโหนดหลัà¸à¹ƒà¸™à¸‰à¸²à¸à¸™à¸µà¹‰"
+msgstr "VisibilityEnable2D จะทำงานดีที่สุดเมื่อใช้à¸à¸±à¸šà¸‰à¸²à¸à¹à¸¡à¹ˆà¸—ี่à¹à¸à¹‰à¹„ขโดยตรง"
#: scene/3d/arvr_nodes.cpp
-#, fuzzy
msgid "ARVRCamera must have an ARVROrigin node as its parent."
msgstr "ARVRCamera ต้องมี ARVROrigin เป็นโหนดà¹à¸¡à¹ˆ"
#: scene/3d/arvr_nodes.cpp
-#, fuzzy
msgid "ARVRController must have an ARVROrigin node as its parent."
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 "Controller id ต้องไม่เป็น 0 ไม่เช่นนั้นตัวควบคุมนี้จะไม่เชื่อมà¸à¸±à¸šà¸­à¸¸à¸›à¸à¸£à¸“์จริง"
+msgstr "id ตัวควบคุมต้องไม่เป็น 0 ไม่เช่นนั้นตัวควบคุมนี้จะไม่ผูà¸à¸à¸±à¸šà¸•à¸±à¸§à¸„วบคุมจริง"
#: scene/3d/arvr_nodes.cpp
msgid "ARVRAnchor must have an ARVROrigin node as its parent."
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 "Anchor id ต้องไม่เป็น 0 ไม่เช่นนั้น anchor นี้จะไม่เชื่อมà¸à¸±à¸š anchor จริง"
+msgstr "id จุดยึดต้องไม่เป็น 0 ไม่เช่นนั้น จุดยึดนี้จะไม่ผูà¸à¸à¸±à¸šà¸ˆà¸¸à¸”ยึดจริง"
#: scene/3d/arvr_nodes.cpp
msgid "ARVROrigin requires an ARVRCamera child node."
@@ -12386,14 +12297,13 @@ msgid "Lighting Meshes: "
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"
-"à¸à¸£à¸¸à¸“าเพิ่ม CollisionShape หรือ CollisionPolygon เป็นโหนดลูà¸à¹€à¸žà¸·à¹ˆà¸­à¹ƒà¸«à¹‰à¸¡à¸µà¸£à¸¹à¸›à¸—รง"
+"โหนดนี้ไม่มีรูปร่าง ดังนั้นจึงไม่สามารถชนหรือมีปà¸à¸´à¸ªà¸±à¸¡à¸žà¸±à¸™à¸˜à¹Œà¸à¸±à¸šà¸­à¸­à¸šà¹€à¸ˆà¸à¸•à¹Œà¸­à¸·à¹ˆà¸™à¹„ด้\n"
+"เพิ่ม CollisionShape หรือ CollisionPolygon เป็นโหนดลูà¸à¹€à¸žà¸·à¹ˆà¸­à¸à¸³à¸«à¸™à¸”รูปร่าง"
#: scene/3d/collision_polygon.cpp
msgid ""
@@ -12418,33 +12328,33 @@ msgstr ""
"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 "ต้องมีรูปทรงเพื่อให้ CollisionShape ทำงานได้ à¸à¸£à¸¸à¸“าสร้างรูปทรง!"
+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 ในโหมดอื่นๆนอà¸à¸ˆà¸²à¸à¹‚หมด static"
#: scene/3d/cpu_particles.cpp
-#, fuzzy
msgid "Nothing is visible because no mesh has been assigned."
-msgstr "ไม่มีà¸à¸²à¸£à¹à¸ªà¸”งผลเนื่องจาà¸à¹„ม่ได้à¸à¸³à¸«à¸™à¸” mesh ใน draw pass"
+msgstr "ไม่มีสิ่งใดมองเห็นได้เนื่องจาà¸à¹„ม่มีà¸à¸²à¸£à¸à¸³à¸«à¸™à¸” mesh"
#: scene/3d/cpu_particles.cpp
msgid ""
"CPUParticles animation requires the usage of a SpatialMaterial whose "
"Billboard Mode is set to \"Particle Billboard\"."
msgstr ""
+"à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™ CPUParticles จำเป็นต้องใช้ SpatialMaterial โดยโหมด Billboard ถูà¸à¸•à¸±à¹‰à¸‡à¹€à¸›à¹‡à¸™ "
+"\"Particle Billboard\""
#: scene/3d/gi_probe.cpp
msgid "Plotting Meshes"
@@ -12461,11 +12371,11 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "InterpolatedCamera เลิà¸à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹à¸¥à¹‰à¸§à¹à¸¥à¸°à¸ˆà¸°à¸–ูà¸à¸¥à¸šà¸­à¸­à¸à¹ƒà¸™ Godot 4.0"
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
-msgstr ""
+msgstr "SpotLight ที่มีมุมมาà¸à¸à¸§à¹ˆà¸² 90 ไม่สามารถสร้างเงา"
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
@@ -12485,6 +12395,8 @@ msgid ""
"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles"
"\" option for this purpose."
msgstr ""
+"ไดรเวอร์ GLES2 ไม่สนับสนุนระบบพาร์ติเคิลโดยใช้à¸à¸²à¸£à¹Œà¸”จอ\n"
+"ใช้โหนด CPUParticles à¹à¸—น คุณสามารถใช้ตัวเลือภ\"à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™ CPUParticles\" ได้"
#: scene/3d/particles.cpp
msgid ""
@@ -12496,17 +12408,20 @@ msgid ""
"Particles animation requires the usage of a SpatialMaterial whose Billboard "
"Mode is set to \"Particle Billboard\"."
msgstr ""
+"à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¸žà¸²à¸£à¹Œà¸•à¸´à¹€à¸„ิลจำเป็นต้องใช้ SpatialMaterial โดยโหมด Billboard ถูà¸à¸•à¸±à¹‰à¸‡à¹€à¸›à¹‡à¸™ "
+"\"Particle Billboard\""
#: scene/3d/path.cpp
-#, fuzzy
msgid "PathFollow only works when set as a child of a Path node."
-msgstr "PathFollow2D จะทำงานได้ต้องเป็นโหนดลูà¸à¸‚องโหนด Path2D"
+msgstr "PathFollow2D จะทำงานได้ต้องเป็นโหนดลูà¸à¸‚องโหนด Path"
#: scene/3d/path.cpp
msgid ""
"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its "
"parent Path's Curve resource."
msgstr ""
+"ROTATION_ORIENTED ของ PathFollow จำเป็นเปิด \"Up Vector\" ในที่อยู่ทรัพยาà¸à¸£ Curve "
+"โหนดà¹à¸¡à¹ˆà¸‚อง Path"
#: scene/3d/physics_body.cpp
msgid ""
@@ -12514,36 +12429,38 @@ msgid ""
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
-"ระบบฟิสิà¸à¸ªà¹Œà¸ˆà¸°à¸ˆà¸±à¸”à¸à¸²à¸£à¸‚นาดของ RigidBody (ในโหมด character หรือ rigid) เมื่อรันเà¸à¸¡\n"
-"à¸à¸£à¸¸à¸“าปรับขนาดของ Collision shape à¹à¸—น"
+"à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸‚นาดของ RigidBody (ในโหมด character หรือ rigid) "
+"จะถูà¸à¹à¸—นที่โดยเอ็นจิ้นฟิสิà¸à¸ªà¹Œà¹€à¸¡à¸·à¹ˆà¸­à¸—ำงาน\n"
+"เปลี่ยนขนาดในขอบเขตà¸à¸²à¸£à¸Šà¸™à¸¥à¸¹à¸à¹à¸—น"
#: scene/3d/remote_transform.cpp
-#, fuzzy
msgid ""
"The \"Remote Path\" property must point to a valid Spatial or Spatial-"
"derived node to work."
-msgstr "ต้องà¹à¸à¹‰à¹„ข Path ให้ชี้ไปยังโหนด Spatial จึงจะทำงานได้"
+msgstr ""
+"คุณสมบัติ \"Remote Path\" จะต้องชี้ไปยังโหนด Spatial หรือ Spatialย่อย "
+"ที่ถูà¸à¸•à¹‰à¸­à¸‡à¹€à¸žà¸·à¹ˆà¸­à¸—ี่จะทำงานได้"
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
-msgstr ""
+msgstr "วัตถุนี้จะถูà¸à¸¥à¸°à¹€à¸§à¹‰à¸™à¸ˆà¸™à¸à¸§à¹ˆà¸²à¸ˆà¸°à¸•à¸±à¹‰à¸‡ mesh"
#: 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 ""
-"ระบบฟิสิà¸à¸ªà¹Œà¸ˆà¸°à¸ˆà¸±à¸”à¸à¸²à¸£à¸‚นาดของ RigidBody (ในโหมด character หรือ rigid) เมื่อรันเà¸à¸¡\n"
-"à¸à¸£à¸¸à¸“าปรับขนาดของ Collision shape à¹à¸—น"
+"à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸‚นาดของ 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' เพื่อให้ AnimatedSprite3D à¹à¸ªà¸”งผลได้"
+msgstr ""
+"ทรัพยาà¸à¸£ SpriteFrames ต้องสร้างหรือตั้งค่าในคุณสมบัติ \"Frames\" เพื่อให้ "
+"AnimatedSprite3D à¹à¸ªà¸”งเฟรม"
#: scene/3d/vehicle_body.cpp
msgid ""
@@ -12555,7 +12472,7 @@ msgstr "VehicleWheel เป็นระบบล้อของ VehicleBody à¸à
msgid ""
"WorldEnvironment requires its \"Environment\" property to contain an "
"Environment to have a visible effect."
-msgstr ""
+msgstr "WorldEnvironment จำเป็นต้องมีคุณสมบัติ \"Environment\" เพื่อที่จะทำให้มองเห็นได้"
#: scene/3d/world_environment.cpp
msgid ""
@@ -12567,10 +12484,12 @@ 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 นี้จะถูà¸à¸¥à¸°à¹€à¸§à¹‰à¸™ เพิ่มà¸à¸¥à¹‰à¸­à¸‡ (สำหรับฉาภ3 มิติ) หรือตั้งโหมด environment's "
+"Background ไปยังà¹à¸„นวาส (สำหรับฉาภ2 มิติ)"
#: 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
msgid "Animation not found: '%s'"
@@ -12578,7 +12497,7 @@ msgstr "ไม่พบà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™: '%s'"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
-msgstr ""
+msgstr "ในโหนด '%s', à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¸œà¸´à¸”พลาด: '%s'."
#: scene/animation/animation_tree.cpp
msgid "Invalid animation: '%s'."
@@ -12590,25 +12509,23 @@ msgstr "ไม่มีà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­à¹„ปที่อิ
#: 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 ""
@@ -12618,11 +12535,11 @@ msgid ""
msgstr ""
"สี: #%s\n"
"คลิà¸à¸‹à¹‰à¸²à¸¢: เลือà¸à¸ªà¸µ\n"
-"คลิà¸à¸‚วา: ลบสี"
+"คลิà¸à¸‚วา: ลบพรีเซ็ต"
#: scene/gui/color_picker.cpp
msgid "Pick a color from the editor window."
-msgstr ""
+msgstr "เลือà¸à¸ªà¸µà¸ˆà¸²à¸à¸«à¸™à¹‰à¸²à¸•à¹ˆà¸²à¸‡à¹€à¸­à¸”ิเตอร์"
#: scene/gui/color_picker.cpp
msgid "HSV"
@@ -12634,12 +12551,11 @@ msgstr "Raw"
#: scene/gui/color_picker.cpp
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
msgid ""
@@ -12647,12 +12563,16 @@ msgid ""
"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
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!"
@@ -12663,29 +12583,26 @@ msgid "Please Confirm..."
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*() "
-"โดยขณะà¹à¸à¹‰à¹„ขสามารถเปิดให้มองเห็นได้ à¹à¸•à¹ˆà¹€à¸¡à¸·à¹ˆà¸­à¹€à¸£à¸´à¹ˆà¸¡à¹‚ปรà¹à¸à¸£à¸¡à¸›à¹Šà¸­à¸›à¸­à¸±à¸žà¸ˆà¸°à¸–ูà¸à¸‹à¹ˆà¸­à¸™"
+"ป๊อปอัปจะถูà¸à¸‹à¹ˆà¸­à¸™à¸•à¸²à¸¡à¸„่าเริ่มต้นยà¸à¹€à¸§à¹‰à¸™à¹à¸•à¹ˆà¸„ุณจะเรียà¸à¹ƒà¸Šà¹‰ popup() หรือฟังà¸à¹Œà¸Šà¸±à¸™ popup*() ใด ๆ "
+"à¸à¸²à¸£à¸—ำให้มองเห็นได้สำหรับà¸à¸²à¸£à¹à¸à¹‰à¹„ขเป็นเรื่องปà¸à¸•à¸´ à¹à¸•à¹ˆà¸ˆà¸°à¸‹à¹ˆà¸­à¸™à¹€à¸¡à¸·à¹ˆà¸­à¸—ำงาน"
#: scene/gui/range.cpp
msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0."
-msgstr ""
+msgstr "ถ้า \"Exp Edit\" เปิดใช้งาน \"Min Value\" จะต้องมาà¸à¸à¸§à¹ˆà¸² 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"
-"ใช้ container เป็นโหนดลูภ(VBox,HBox,ฯลฯ) หรือโหนดà¸à¸¥à¸¸à¹ˆà¸¡ Control "
-"à¹à¸¥à¸°à¸›à¸£à¸±à¸šà¸‚นาดเล็à¸à¸ªà¸¸à¸”ด้วยตนเอง"
+"ใช้ container เป็นโหนดลูภ(VBox,HBox,ฯลฯ) หรือ Control à¹à¸¥à¸°à¸›à¸£à¸±à¸šà¸‚นาดเล็à¸à¸ªà¸¸à¸”ด้วยตนเอง"
#: scene/gui/tree.cpp
msgid "(Other)"
@@ -12712,39 +12629,72 @@ msgstr ""
#: scene/main/viewport.cpp
msgid "Viewport size must be greater than 0 to render anything."
-msgstr ""
+msgstr "ขนาดวิวพอร์ตจะต้องมาà¸à¸à¸§à¹ˆà¸² 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 "Varyings สามารถà¸à¸³à¸«à¸™à¸”ในังà¸à¹Œà¸Šà¸±à¸™à¹€à¸§à¸­à¸£à¹Œà¹€à¸—็à¸à¸‹à¹Œ"
#: servers/visual/shader_language.cpp
msgid "Constants cannot be modified."
msgstr "ค่าคงที่ไม่สามารถà¹à¸à¹‰à¹„ขได้"
+#~ msgid "Move pivot"
+#~ msgstr "ย้ายจุดหมุน"
+
+#~ msgid "Move anchor"
+#~ msgstr "ย้ายจุดยึด (anchor)"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "à¹à¸à¹‰à¸‚นาด CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "รูปหลายเหลี่ยม->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->รูปหลายเหลี่ยม"
+
+#~ msgid "Add initial export..."
+#~ msgstr "เพิ่มà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸à¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "เพิ่มà¹à¸žà¸—ช์à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "ลบà¹à¸žà¸•à¸Šà¹Œ '%s' จาà¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­?"
+
+#~ msgid "Patches"
+#~ msgstr "à¹à¸žà¸•à¸Šà¹Œ"
+
+#~ msgid "Make Patch"
+#~ msgstr "สร้างà¹à¸žà¸•à¸Šà¹Œ"
+
+#~ msgid "Pack File"
+#~ msgstr "ไฟล์"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "ไม่มีà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡ apk ที่: "
+
#, fuzzy
#~ msgid "FileSystem and Import Docks"
#~ msgstr "ระบบไฟล์ à¹à¸¥à¸° นำเข้า"
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index c443d7bb94..91dd17c218 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -53,12 +53,14 @@
# Hazar <duurkak@yandex.com>, 2020.
# Mutlu ORAN <mutlu.oran66@gmail.com>, 2020.
# Yusuf Osman YILMAZ <wolfkan4219@gmail.com>, 2020.
+# furkan atalar <fatalar55@gmail.com>, 2020.
+# Suleyman Poyraz <zaryob.dev@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-15 07:17+0000\n"
-"Last-Translator: Yusuf Osman YILMAZ <wolfkan4219@gmail.com>\n"
+"PO-Revision-Date: 2020-10-12 09:28+0000\n"
+"Last-Translator: Suleyman Poyraz <zaryob.dev@gmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/"
"godot/tr/>\n"
"Language: tr\n"
@@ -141,7 +143,7 @@ msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
-msgstr "Serbest"
+msgstr "Ãœcretsiz"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
@@ -697,7 +699,7 @@ msgstr "Kopyalanacak izleri seç"
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Copy"
-msgstr "Tıpkıla"
+msgstr "Kopyala"
#: editor/animation_track_editor.cpp
msgid "Select All/None"
@@ -729,7 +731,7 @@ msgstr "Dizi DeÄŸerini DeÄŸiÅŸtir"
#: editor/code_editor.cpp
msgid "Go to Line"
-msgstr "Satıra git"
+msgstr "Satıra Git"
#: editor/code_editor.cpp
msgid "Line Number:"
@@ -790,7 +792,7 @@ msgstr "Uzaklaştır"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr "Yaklaşmayı Sıfırla"
+msgstr "Yakınlaştırmayı Sıfırla"
#: editor/code_editor.cpp
msgid "Warnings"
@@ -947,9 +949,8 @@ msgid "Signals"
msgstr "Sinyaller"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Döşemelerde Bul"
+msgstr "Sinyalleri filtrele"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1193,12 +1194,10 @@ msgid "Gold Sponsors"
msgstr "Altın Sponsorlar"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Silver Sponsors"
msgstr "Gümüş Bağışçılar"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Bronze Sponsors"
msgstr "Bronz Bağışçılar"
@@ -1642,6 +1641,37 @@ msgstr ""
"Proje Ayarlarında 'Import Etc' seçeneğini etkinleştirin veya 'Driver "
"Fallback Enabled' seçeneğini devre dışı bırakın."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Hedef platform GLES2 için 'ETC' doku sıkıştırma gerekiyor. Proje "
+"Ayarları'nda 'Import Etc' etkinleştirin."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Hedef platform GLES3 için 'ETC2' doku sıkıştırma gerekiyor. Proje "
+"Ayarları'nda 'Import Etc 2' etkinleştirin."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Hedef platform, sürücünün GLES2'ye düşmesi için 'ETC' doku sıkıştırmasına "
+"ihtiyaç duyuyor.\n"
+"Proje Ayarlarında 'Import Etc' seçeneğini etkinleştirin veya 'Driver "
+"Fallback Enabled' seçeneğini devre dışı bırakı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
@@ -1683,9 +1713,8 @@ msgid "Node Dock"
msgstr "Dock Nod"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "DosyaSistemi"
+msgstr "Dosya sistemi"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -1823,7 +1852,7 @@ msgstr "Bu Klasörü Seç"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Copy Path"
-msgstr "Dosya Yolunu Tıpkıla"
+msgstr "Dosya Yolunu Kopyala"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Open in File Manager"
@@ -2050,7 +2079,6 @@ msgstr ""
"bulunarak[/url][/color] yardım edebilirsiniz!"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Method Descriptions"
msgstr "Yöntem Açıklamaları"
@@ -2499,7 +2527,7 @@ msgstr "Düzenleyiciden çık?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
-msgstr "Proje Yöneticisi Açılsın mı?"
+msgstr "Proje Yöneticisi Açılsın Mı?"
#: editor/editor_node.cpp
msgid "Save & Quit"
@@ -2836,14 +2864,19 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Bu seçenek etkinleştirildiğinde, tek tıklamayla dağıtmanın kullanılması "
+"yürütülebilir dosyanın bu bilgisayarın IP'sine bağlanma girişiminde "
+"bulunmasına neden olur, böylece çalışan proje hata ayıklanabilir.\n"
+"Bu seçenek, uzaktan hata ayıklama için kullanılmak üzere tasarlanmıştır "
+"(tipik olarak bir mobil cihazla).\n"
+"GDScript hata ayıklayıcısını yerel olarak kullanmak için etkinleştirmeniz "
+"gerekmez."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "Ağ DS ile Küçük Dağıtım"
+msgstr "Ağ Dosya Sistemi ile Küçük Dağıtım"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2852,73 +2885,68 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"Bu seçenek etkinleştirildiğinde, dışa aktarma veya dağıtma çok küçük bir "
-"çalıştırılabilir dosya üretir.\n"
-"Dosya düzeni, ağ üzerindeki düzenleyici tarafından tasarıdan sağlanacaktır.\n"
-"Android'de daha hızlı verim için dağıtım uygulaması USB kablosunu "
-"kullanacak. Bu seçenek, ayak izi büyük olan oyunları denemeyi hızlandırır."
+"Bu seçenek etkinleştirildiğinde, Android için tek tıklamayla dağıtmanın "
+"kullanılması, yalnızca proje verileri olmadan yürütülebilir bir dosyayı dışa "
+"aktarır.\n"
+"Dosya sistemi, ağ üzerinden düzenleyici tarafından sağlanacaktır.\n"
+"Android'de dağıtım, daha hızlı performans için USB kablosunu kullanır. Bu "
+"seçenek, büyük varlıklara sahip projeler için hızlandırma sağlar."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "Görünür Çarpışma Şekilleri"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"Bu seçenek açıksa, çalışan oyunda çarpışma şekilleri ve raycast düğümleri "
-"(2B ve 3B için) görünür olacaktır."
+"Bu seçenek etkinleştirildiğinde, çalışan projede 2D ve 3D çarpışma şekilleri "
+"ve ışın izdüşümleri görünebilir olur."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "Görünür Yönlendirici"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"Bu seçenek açıksa, çalışan oyunda yönlendirici örüntüleri ve çokgenler "
-"görünür olacaktır."
+"Bu seçenek etkinleştirildiğinde, gezinme mesh ve poligonlar(çokgenler), "
+"çalışan projede görünür olacaktır."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
-msgstr "Sahne DeÄŸiÅŸikliklerini EÅŸ Zamanla"
+msgstr "Sahne DeÄŸiÅŸikliklerini Senkronize Et"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Bu seçenek etkinleştirildiğinde, düzenleyicide bulunan sahnedeki "
-"değişiklikler çalışmakta olan oyununda çoğaltılır.\n"
-"Bir cihazda uzaktan kullanıldığında, ağ dosya sistemi ile bu işlem daha "
-"verimli olur."
+"Bu seçenek etkinleştirildiğinde, düzenleyicide sahnede yapılan herhangi bir "
+"değişiklik çalışan projede kopyalanacaktır.\n"
+"Bir cihazda uzaktan kullanıldığında, ağ dosya sistemi seçeneği "
+"etkinleÅŸtirildiÄŸinde bu daha etkilidir."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
msgstr "Betik DeÄŸiÅŸikliklerini EÅŸ Zamanla"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Bu seçenek etkinleştirildiğinde, kaydedilen tüm betik çalışan oyunda yeniden "
-"yüklenecektir.\n"
-"Bir cihazda uzaktan kullanıldığında, ağ dosya sistemi ile bu işlem daha "
-"verimli olur."
+"Bu seçenek etkinleştirildiğinde, kaydedilen herhangi bir komut dosyası "
+"çalışan projeye yeniden yüklenecektir.\n"
+"Bir cihazda uzaktan kullanıldığında, bu, ağ dosya sistemi seçeneği "
+"etkinleÅŸtirildiÄŸinde daha etkilidir."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -2972,8 +3000,7 @@ msgstr "Dışa Aktarım Şablonlarını Yönet..."
msgid "Help"
msgstr "Yardım"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3396,14 +3423,14 @@ msgid "Add Key/Value Pair"
msgstr "Anahtar/DeÄŸer Ä°kilisini Ekle"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
-"Çalıştırılabilir dışa aktarma önayarı bu platform için bulunamadı.\n"
-"Lütfen dışa aktar menüsünden çalıştırılabilir bir önayar ekleyin."
+"Bu platform için çalıştırılabilir dışa aktarma ön ayarı bulunamadı.\n"
+"Lütfen Dışa Aktar menüsüne çalıştırılabilir bir ön ayar ekleyin veya mevcut "
+"bir ön ayarı çalıştırılabilir olarak tanımlayın."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -3432,8 +3459,8 @@ msgstr "'_run()' metodunu unuttunuz mu?"
#: editor/editor_spin_slider.cpp
msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Tamsayılara yuvarlamak için Ctrl tuşunu basılı tutun. Hassas değişiklikler "
-"için Shift tuşunu basılı tutun."
+"Tam sayıya yuvarlamak için Ctrl tuşuna basılı tutun. Hassas değişiklikler "
+"için Shift tuşuna basılı tutun."
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -4404,7 +4431,6 @@ msgid "Add Node to BlendTree"
msgstr "Düğümü İşleme düğümüne ekle"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Düğüm Taşındı"
@@ -5234,27 +5260,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Yeni yatay ve dikey kılavuzlar oluştur"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Merkezi Taşı"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate %d CanvasItems"
msgstr "CanvasItem Döndür"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Çapayı Taşı"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "CanvasItem Döndür"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "CanvasItem Yeniden Boyutlandır"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "CanvasItem Taşı"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale %d CanvasItems"
msgstr "CanvasItem Esnet"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr "CanvasItem Esnet"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "CanvasItem Taşı"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "CanvasItem Taşı"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5616,7 +5665,7 @@ msgstr "Cetvelleri göster"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Guides"
-msgstr "Kılavuzları göster"
+msgstr "Kılavuz çizgilerini göster"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Origin"
@@ -5632,15 +5681,15 @@ msgstr "Gruplama ve Kilitleme ikonlarını Göster"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
-msgstr "İçre Seçimi"
+msgstr "Merkez Seçimi"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Frame Selection"
-msgstr "Kafes Seçimi"
+msgstr "Çerçeve Seçimi"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Preview Canvas Scale"
-msgstr "Tuval Esneme Önizlemesi"
+msgstr "Tuval Ölçeğini Önizle"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Translation mask for inserting keys."
@@ -5680,7 +5729,7 @@ msgstr "Animasyon Anahtarı ve Pozlama Seçenekleri"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
-msgstr "Anahtar Gir (Var Olan Ä°zler)"
+msgstr "Anahtar Ekle (Mevcut Parçalar)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
@@ -5700,7 +5749,7 @@ msgstr "Izgara basamağını 2'ye böl"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan View"
-msgstr "Görünümü Sürükle"
+msgstr "Yatay Kaydırma Görünümü"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6532,14 +6581,24 @@ msgid "Move Points"
msgstr "Noktaları Taşı"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Döndür"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Sürükle: Döndürür"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "ÜstKrkt: Tümünü Taşı"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "ÜstKrkt+Ctrl: Ölçek"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Döndür"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "ÜstKrkt+Ctrl: Ölçek"
@@ -6580,12 +6639,14 @@ msgid "Radius:"
msgstr "Yarıçap:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Çokgen->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Çokgen & UV Oluştur"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->Çokgen"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Çokgen2D'ye dönüştür"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6852,11 +6913,11 @@ msgstr "Betik Yolunu Kopyala"
#: editor/plugins/script_editor_plugin.cpp
msgid "History Previous"
-msgstr "Geçmiş Önceki"
+msgstr "Geçmişe Dönüş"
#: editor/plugins/script_editor_plugin.cpp
msgid "History Next"
-msgstr "Sonraki Geçmiş"
+msgstr "Sonrakine Ä°lerle"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
@@ -7032,11 +7093,6 @@ msgstr "Yazım Vurgulama"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
-msgid "Go To"
-msgstr "Åžuna Git"
-
-#: editor/plugins/script_text_editor.cpp
-#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Bookmarks"
msgstr "Yer imleri"
@@ -7044,6 +7100,11 @@ msgstr "Yer imleri"
msgid "Breakpoints"
msgstr "Hata ayıklama noktaları"
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr "Åžuna Git"
+
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7052,7 +7113,7 @@ msgstr "Kes"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Select All"
-msgstr "Hepsini seç"
+msgstr "Hepsini Seç"
#: editor/plugins/script_text_editor.cpp
msgid "Delete Line"
@@ -7124,11 +7185,11 @@ msgstr "Yer imleri Aç / Kapat"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Next Bookmark"
-msgstr "Sonraki Yer imine Git"
+msgstr "Sonraki Yerimine Git"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Previous Bookmark"
-msgstr "Önceki Yer imine Git"
+msgstr "Önceki Yerimine Git"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Bookmarks"
@@ -7413,35 +7474,35 @@ msgstr "GLES2 işleyici kullanılırken kullanılamaz."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
-msgstr "Serbestbakış Sola"
+msgstr "Sola Serbest Bakış"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Right"
-msgstr "Serbestbakış Sağa"
+msgstr "Sağa Serbest Bakış"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Forward"
-msgstr "Serbestbakış İleri"
+msgstr "İleri Serbest Bakış"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Backwards"
-msgstr "Serbestbakış Geriye"
+msgstr "Geriye Serbest Bakış"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Up"
-msgstr "Serbestbakış Yukarı"
+msgstr "Yukarı Serbest Bakış"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Down"
-msgstr "Serbestbakış Aşağı"
+msgstr "Aşağı Serbest Bakış"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Speed Modifier"
-msgstr "Serbestbakış Hız Değiştirici"
+msgstr "Serbest Bakış Hız Değiştirici"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Slow Modifier"
-msgstr "Serbestbakış Hız Değiştirici"
+msgstr "Serbest Bakış Hız Değiştirici"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -7493,7 +7554,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Local Space"
-msgstr "Yerel Eksen Kipi (%s)"
+msgstr "Yerel Ekseni Kullan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
@@ -7541,7 +7602,7 @@ msgstr "Seçime Odaklan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Toggle Freelook"
-msgstr "Serbestbakış Aç / Kapat"
+msgstr "Serbest Bakış Aç / Kapat"
#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -7558,27 +7619,27 @@ msgstr "Dönüştürme İletişim Kutusu..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "1 Viewport"
-msgstr "1 Görüntükapısı"
+msgstr "1 Görüntü Kapısı"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports"
-msgstr "2 Görüntükapısı"
+msgstr "2 Görüntü Kapısı"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports (Alt)"
-msgstr "2 Görüntükapısı (Alt)"
+msgstr "2 Görüntü Kapısı (Alternatif)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports"
-msgstr "3 Görüntükapısı"
+msgstr "3 Görüntü Kapısı"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports (Alt)"
-msgstr "3 Görüntükapısı (Alt)"
+msgstr "3 Görüntü Kapısı (Alternatif)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "4 Viewports"
-msgstr "4 Görüntükapısı"
+msgstr "4 Görüntü Kapısı"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Gizmos"
@@ -7811,9 +7872,8 @@ msgid "New Animation"
msgstr "Yeni Animasyon"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "Hız (FPS):"
+msgstr "Hız:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8133,6 +8193,15 @@ msgid "Paint Tile"
msgstr "Karo Boya"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+SFT: Çizgi Çiz\n"
+"Shift+Ctrl+SFT: Dkidörtgen Boya"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8238,35 +8307,35 @@ msgstr "Derinlik Ä°ndeksi"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Region Mode"
-msgstr "Bölge Şekli"
+msgstr "Bölge Kipi"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Collision Mode"
-msgstr "Temas Åžekli"
+msgstr "Temas Kipi"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Occlusion Mode"
-msgstr "Örtü Şekli"
+msgstr "Örtü Kipi"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Navigation Mode"
-msgstr "Gezinim Åžekli"
+msgstr "Gezinim Kipi"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Bitmask Mode"
-msgstr "BitMaskeleme Åžekli"
+msgstr "Bitmask Kipi"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Priority Mode"
-msgstr "Öncelik Şekli"
+msgstr "Öncelik Kipi"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Icon Mode"
-msgstr "Simge Åžekli"
+msgstr "Simge Kipi"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Z Index Mode"
-msgstr "Z Derinlik Åžekli"
+msgstr "Z Dizin Kipi"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Copy bitmask."
@@ -8659,6 +8728,11 @@ msgid "Add Node to Visual Shader"
msgstr "Visual Shader'a düğüm ekle"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Düğüm Taşındı"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Düğümleri Çokla"
@@ -8676,6 +8750,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Visual Shader giriş Türü Değişti"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Uniform ismi ayarla"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Köşe"
@@ -8922,36 +9001,36 @@ msgstr "Parametrenin mutlak değerini döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-cosine of the parameter."
-msgstr "Cosinüs değeri verilen parametrenin arc-cos; açı değerini, döndürür."
+msgstr "Verilen bir değerin ark-kosinüsünü döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic cosine of the parameter."
-msgstr "Verilen bir değerin ters hiperbolik cosisnüsünü döndürür."
+msgstr "Verilen bir değerin ters hiperbolik kosinüsünü döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-sine of the parameter."
-msgstr "Verilen değerin arc-sinüsünü döndürür."
+msgstr "Verilen bir değerin ark-sinüsünü döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic sine of the parameter."
-msgstr "Verilen parametrenin ters hiperbolik sinüsünü döndürür."
+msgstr "Verilen bir değerin ters hiperbolik sinüsünü döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-tangent of the parameter."
-msgstr "Parametrenin arc-tanjantını döndürür."
+msgstr "Verilen bir değerin ark-tanjantını döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-tangent of the parameters."
-msgstr "Parametrelerin arc-tanjantını döndürür."
+msgstr "Verilen bir değerin ark-tanjantını döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic tangent of the parameter."
-msgstr "Parametrelerin ters hiperbolik tanjantını döndürür."
+msgstr "Verilen bir değerin ters hiperbolik tanjantını döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Finds the nearest integer that is greater than or equal to the parameter."
-msgstr "parametreye eşit ya da büyük eşit olan en yakın tam sayıyı bulur."
+msgstr "Parametreye eşit ya da büyük eşit olan en yakın tam sayıyı bulur."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Constrains a value to lie between two further values."
@@ -8959,11 +9038,11 @@ msgstr "Bir değerin belirtilen iki değer arasına yerleştirilmesini sağlar."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the cosine of the parameter."
-msgstr "Parametrenin cosinüsünü döndürür."
+msgstr "Parametrenin kosinüsünü döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the hyperbolic cosine of the parameter."
-msgstr "Parametrenin hiperbolik cosinüsünü döndürür."
+msgstr "Parametrenin hiperbolik kosinüsünü döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in radians to degrees."
@@ -8995,7 +9074,7 @@ msgstr "DoÄŸal Algoritma."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-2 logarithm."
-msgstr "2-Tabanında algoritma."
+msgstr "2-Tabanında logaritma."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the greater of two values."
@@ -9052,11 +9131,11 @@ msgstr "Verilen değerin sinüsünü döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the hyperbolic sine of the parameter."
-msgstr "verilen değerin hiperbolik sinüsünü döndürür."
+msgstr "Verilen değerin hiperbolik sinüsünü döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the square root of the parameter."
-msgstr "verilen değerin karekökünü döndürür."
+msgstr "Verilen değerin karekökünü döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9337,7 +9416,7 @@ msgstr "Vektörü başka vektörler çarpar."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the remainder of the two vectors."
-msgstr "iki vektörün kalanını döndürür."
+msgstr "İki vektörün kalanını döndürür."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Subtracts vector from vector."
@@ -9382,6 +9461,10 @@ msgstr ""
"değişkenleri tanımlayabilirsiniz."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(Yalnızca Fragment/Light modu) Sayısal Türetim İşlevi SDF."
@@ -9454,18 +9537,6 @@ msgid "Runnable"
msgstr "KoÅŸturulabilir"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "İlk dışa aktarmayı ekle ..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Önceki yamaları ekle..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "'%s' yaması listeden silinsin mi?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "'%s' önayarı silinsin mi?"
@@ -9565,18 +9636,6 @@ msgstr ""
"(virgülle-ayrık, e.g: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Yamalar"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Yama Yap"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Paket Dosyası"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "Özellikler"
@@ -9868,8 +9927,8 @@ msgid ""
"The project settings were created by a newer engine version, whose settings "
"are not compatible with this version."
msgstr ""
-"Proje ayarları, ayarları bu sürümle uyumlu olmayan daha yeni bir motor "
-"sürümü tarafından oluşturuldu."
+"Proje ayarları, bu sürümle uyumlu olmayan daha yeni bir motor sürümü "
+"tarafından oluşturuldu."
#: editor/project_manager.cpp
msgid ""
@@ -10375,19 +10434,16 @@ msgid "Batch Rename"
msgstr "Tümden Yeniden Adlandır"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "DeÄŸiÅŸtir: "
+msgstr "DeÄŸiÅŸtir:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "Ön Ek"
+msgstr "Ön Ek:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "Son Ek"
+msgstr "Son Ek (Suffix) :"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10434,9 +10490,8 @@ msgid "Per-level Counter"
msgstr "Seviye Başına Sayaç"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "Ayarlanmışsa, sayaç her bir alt düğüm grubu için yeniden başlar"
+msgstr "Ayarlanmış sa, her alt düğüm grubu için sayaç yeniden başlatılır."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10495,9 +10550,8 @@ msgid "Reset"
msgstr "Sıfırla"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "Düzenli İfade Hatası"
+msgstr "Düzenli İfade Hatası:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -10748,7 +10802,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
-msgstr "Çocuk Düğüm Ekle"
+msgstr "Alt Düğüm Ekle"
#: editor/scene_tree_dock.cpp
msgid "Expand/Collapse All"
@@ -12022,11 +12076,10 @@ 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ış."
+"Dışa aktarma ön kümesinde yanlış yapılandırılan anahtar deposunu (keystore) "
+"serbest bırakın."
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
@@ -12057,6 +12110,8 @@ msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
+"Geçersiz \"GodotPaymentV3\" modülü \"android/modüller\" proje ayarına dahil "
+"edildi (Godot 3.2.2'de deÄŸiÅŸtirildi).\n"
#: platform/android/export/export.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
@@ -12068,16 +12123,38 @@ msgid ""
"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
"\"."
msgstr ""
+"\"Özgürlük Derecesi (Degrees Of Freedom)\" sadece \"Xr Modu\" \"Oculus "
+"Mobile VR\" olduğunda geçerlidir."
#: platform/android/export/export.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"\"El Takibi(Hand Tracking)\" sadece \"Xr Modu\" \"Oculus Mobile VR\" "
+"olduğunda geçerlidir."
#: platform/android/export/export.cpp
msgid ""
"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"\"Odak Farkındalığı(Focus Awareness)\" yalnızca \"Xr Modu\" \"Oculus Mobil VR"
+"\" olduğunda geçerlidir."
+
+#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+msgstr ""
#: platform/android/export/export.cpp
msgid ""
@@ -12097,7 +12174,7 @@ msgstr ""
"Android derlemesi sürüm uyumsuzluğu:\n"
" Yüklü Şablon: %s\n"
" Godot Versiyonu: %s\n"
-"Lütfen 'Derleme' menüsünden Android derleme şablonunu yeniden yükleyin."
+"Lütfen 'Proje' menüsünden Android derleme şablonunu yeniden yükleyin."
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
@@ -12114,8 +12191,14 @@ msgstr ""
"adresini ziyaret edin.."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Şurada derleme apk oluşturulmadı: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12292,6 +12375,9 @@ msgid ""
"Polygon-based shapes are not meant be used nor edited directly through the "
"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
msgstr ""
+"Çokgen tabanlı şekiller doğrudan CollisionShape2D düğümü aracılığıyla "
+"kullanılamaz veya düzenlenemez. Lütfen bunun yerine CollisionPolygon2D "
+"düğümünü kullanın."
#: scene/2d/cpu_particles_2d.cpp
msgid ""
@@ -12564,6 +12650,8 @@ msgstr ""
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
msgstr ""
+"InterpolatedCamera kullanımdan kaldırılmıştır ve Godot 4.0'da "
+"kaldırılacaktır."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12872,6 +12960,42 @@ msgstr "varyings yalnızca vertex işlevinde atanabilir."
msgid "Constants cannot be modified."
msgstr "Sabit deÄŸerler deÄŸiÅŸtirilemez."
+#~ msgid "Move pivot"
+#~ msgstr "Merkezi Taşı"
+
+#~ msgid "Move anchor"
+#~ msgstr "Çapayı Taşı"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "CanvasItem Yeniden Boyutlandır"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Çokgen->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->Çokgen"
+
+#~ msgid "Add initial export..."
+#~ msgstr "İlk dışa aktarmayı ekle ..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Önceki yamaları ekle..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "'%s' yaması listeden silinsin mi?"
+
+#~ msgid "Patches"
+#~ msgstr "Yamalar"
+
+#~ msgid "Make Patch"
+#~ msgstr "Yama Yap"
+
+#~ msgid "Pack File"
+#~ msgstr "Paket Dosyası"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Şurada derleme apk oluşturulmadı: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "DosyaSistemi ve İçe Aktarım"
diff --git a/editor/translations/tzm.po b/editor/translations/tzm.po
new file mode 100644
index 0000000000..1a370d7ef9
--- /dev/null
+++ b/editor/translations/tzm.po
@@ -0,0 +1,12274 @@
+# Central Atlas Tamazight 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.
+#
+# Hakim Oubouali <hakim.oubouali.skr@gmail.com>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: Godot Engine editor\n"
+"PO-Revision-Date: 2020-10-18 14:21+0000\n"
+"Last-Translator: Hakim Oubouali <hakim.oubouali.skr@gmail.com>\n"
+"Language-Team: Central Atlas Tamazight <https://hosted.weblate.org/projects/"
+"godot-engine/godot/tzm/>\n"
+"Language: tzm\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=n >= 2 && (n < 11 || n > 99);\n"
+"X-Generator: Weblate 4.3.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 ""
+
+#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
+msgid "Expected a string of length 1 (a character)."
+msgstr ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: core/math/expression.cpp
+msgid "Invalid operands to operator %s, %s and %s."
+msgstr ""
+
+#: core/math/expression.cpp
+msgid "Invalid index of type %s for base type %s"
+msgstr ""
+
+#: core/math/expression.cpp
+msgid "Invalid named index '%s' for base type %s"
+msgstr ""
+
+#: core/math/expression.cpp
+msgid "Invalid arguments to construct '%s'"
+msgstr ""
+
+#: core/math/expression.cpp
+msgid "On call to '%s':"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "B"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "KiB"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "MiB"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "GiB"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "TiB"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "PiB"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "EiB"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+msgid "Free"
+msgstr "Amcix"
+
+#: editor/animation_bezier_editor.cpp
+msgid "Balanced"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+msgid "Mirror"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
+msgid "Time:"
+msgstr "Akud:"
+
+#: editor/animation_bezier_editor.cpp
+msgid "Value:"
+msgstr "Azal:"
+
+#: editor/animation_bezier_editor.cpp
+msgid "Insert Key Here"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+msgid "Duplicate Selected Key(s)"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+msgid "Delete Selected Key(s)"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+msgid "Add Bezier Point"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+msgid "Move Bezier Points"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
+msgid "Anim Duplicate Keys"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
+msgid "Anim Delete Keys"
+msgstr ""
+
+#: 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
+msgid "Change Animation Length"
+msgstr ""
+
+#: 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
+msgid "3D Transform Track"
+msgstr ""
+
+#: 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
+msgid "Animation Playback Track"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Animation length (frames)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Animation length (seconds)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Add Track"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Animation Looping"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Functions:"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Audio Clips:"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Clips:"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Change Track Path"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Toggle this track on/off."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Update Mode (How this property is set)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Interpolation Mode"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Remove this track."
+msgstr ""
+
+#: 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 "Amẓ"
+
+#: 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 ""
+
+#: editor/animation_track_editor.cpp
+msgid "Duplicate Key(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Delete Key(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Change Animation Update Mode"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Change Animation Interpolation Mode"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Change Animation Loop Mode"
+msgstr ""
+
+#: 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 ""
+
+#: editor/animation_track_editor.cpp
+msgid "Create %d NEW tracks and insert keys?"
+msgstr ""
+
+#: 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 ""
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Insert Key"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Change Animation Step"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Rearrange Tracks"
+msgstr ""
+
+#: 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
+msgid "Add Transform Track Key"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Add Track Key"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Track path is invalid, so can't add a method key."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Add Method Track Key"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Method not found in object: "
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Move Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Clipboard is empty"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Scale Keys"
+msgstr ""
+
+#: 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
+msgid "Snap:"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Animation step value."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Seconds"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.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
+msgid "Animation properties."
+msgstr ""
+
+#: 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
+msgid "Delete Selection"
+msgstr ""
+
+#: 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 ""
+
+#: 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
+msgid "Select All/None"
+msgstr ""
+
+#: 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
+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
+msgid "Method in target node must be specified."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: 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
+msgid "Connect to Node:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect to Script:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "From Signal:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Scene does not contain any script."
+msgstr ""
+
+#: 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
+msgid "Receiver Method:"
+msgstr ""
+
+#: 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
+msgid "Cannot connect signal"
+msgstr ""
+
+#: 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/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
+msgid "Signal:"
+msgstr ""
+
+#: 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
+msgid "Connect a Signal to a Method"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Edit Connection:"
+msgstr ""
+
+#: 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 "Filter 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
+msgid "Change %s Type"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/project_settings_editor.cpp
+msgid "Change"
+msgstr ""
+
+#: editor/create_dialog.cpp
+msgid "Create New %s"
+msgstr ""
+
+#: 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 editor/rename_dialog.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 ""
+
+#: 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
+msgid "Load failed due to missing dependencies:"
+msgstr ""
+
+#: 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
+msgid "Change Dictionary Value"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Thanks from the Godot community!"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Godot Engine contributors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Project Founders"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Lead Developer"
+msgstr ""
+
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
+#: editor/editor_about.cpp
+msgid "Project Manager "
+msgstr ""
+
+#: 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 "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze 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
+msgid "And %s more files."
+msgstr ""
+
+#: 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
+msgid "Change Audio Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Toggle Audio Bus Solo"
+msgstr ""
+
+#: 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
+msgid "Delete Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Duplicate Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Reset Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Move Audio Bus"
+msgstr ""
+
+#: 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
+msgid "Error saving file: %s"
+msgstr ""
+
+#: 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
+msgid "Can't add autoload:"
+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
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
+msgid "3D Editor"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Script Editor"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Asset Library"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Scene Tree Editing"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Node Dock"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "FileSystem Dock"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+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
+msgid "(Editor Disabled)"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Class Options:"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Enable Contextual Editor"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Enabled Properties:"
+msgstr ""
+
+#: 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
+msgid "Error saving profile to path: '%s'."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Unset"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Current Profile:"
+msgstr ""
+
+#: 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
+msgid "Available Profiles:"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Class Options"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "New profile name:"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Erase Profile"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Godot Feature Profile"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Profile(s)"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Export Profile"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Manage Editor Feature Profiles"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Select Current Folder"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "File Exists, Overwrite?"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Select This Folder"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Open in File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/project_manager.cpp
+msgid "Show in File Manager"
+msgstr ""
+
+#: 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 ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open a File"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open File(s)"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open a Directory"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open a File or Directory"
+msgstr ""
+
+#: 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 ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Save a File"
+msgstr ""
+
+#: 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
+msgid "Go to previous folder."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Go to next folder."
+msgstr ""
+
+#: 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
+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 editor/rename_dialog.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
+msgid "Description"
+msgstr ""
+
+#: 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
+msgid "Theme Properties"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Enumerations"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Constants"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Property Descriptions"
+msgstr ""
+
+#: 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
+msgid "Method Descriptions"
+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 ""
+
+#: 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
+msgid "Signal"
+msgstr ""
+
+#: 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
+msgid "Theme Property"
+msgstr ""
+
+#: 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
+msgid "Copy Selection"
+msgstr ""
+
+#: 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
+msgid "Clear Output"
+msgstr ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: 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
+msgid "Error while parsing '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unexpected end of file '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Missing '%s' or its dependencies."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error while loading '%s'."
+msgstr ""
+
+#: 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
+msgid "This operation can't be done without a tree root."
+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 ""
+
+#: 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 "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
+msgid "Quick Open..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quick Open Scene..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quick Open Script..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save & Close"
+msgstr ""
+
+#: 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
+msgid "No"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Yes"
+msgstr ""
+
+#: 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 ""
+
+#: editor/editor_node.cpp
+msgid "Export Mesh Library"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This operation can't be done without a root node."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Export Tile Set"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This operation can't be done without a selected node."
+msgstr ""
+
+#: 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 "Reload Saved Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+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..."
+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
+msgid "Save & Quit"
+msgstr ""
+
+#: 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
+msgid "Reopen Closed Scene"
+msgstr ""
+
+#: 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
+msgid "Unable to load addon script from path: '%s'."
+msgstr ""
+
+#: 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 ""
+
+#: 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
+msgid "Show in FileSystem"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play This Scene"
+msgstr ""
+
+#: 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
+msgid "%d more folders"
+msgstr ""
+
+#: 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
+msgid "Copy Text"
+msgstr ""
+
+#: 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
+msgid "Save All Scenes"
+msgstr ""
+
+#: 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 "Miscellaneous project or scene-wide tools."
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_manager.cpp
+#: editor/script_create_dialog.cpp
+msgid "Project"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Project Settings..."
+msgstr ""
+
+#: 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
+msgid "Export..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Install Android Build Template..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Project Data Folder"
+msgstr ""
+
+#: 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 ""
+
+#: 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 this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Small Deploy with Network Filesystem"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
+"The filesystem will be provided from the project by the editor over the "
+"network.\n"
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Visible Collision Shapes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Visible Navigation"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Synchronize Scene Changes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Synchronize Script Changes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
+msgstr ""
+
+#: editor/editor_node.cpp editor/script_create_dialog.cpp
+msgid "Editor"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Editor Settings..."
+msgstr ""
+
+#: 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
+msgid "Manage Export Templates..."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
+msgid "Help"
+msgstr ""
+
+#: editor/editor_node.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/settings_config_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 ""
+
+#: editor/editor_node.cpp
+msgid "Play"
+msgstr ""
+
+#: 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 ""
+
+#: editor/editor_node.cpp
+msgid "Play Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play custom scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play Custom Scene"
+msgstr ""
+
+#: 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
+msgid "Save & Restart"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Spins when the editor window redraws."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Update Continuously"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Update When Changed"
+msgstr ""
+
+#: 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
+msgid "Manage Templates"
+msgstr ""
+
+#: 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
+msgid "Template Package"
+msgstr ""
+
+#: 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
+msgid "New Inherited"
+msgstr ""
+
+#: 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
+msgid "Open 2D Editor"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open 3D Editor"
+msgstr ""
+
+#: 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
+msgid "No sub-resources found."
+msgstr ""
+
+#: editor/editor_plugin.cpp
+msgid "Creating Mesh Previews"
+msgstr ""
+
+#: editor/editor_plugin.cpp
+msgid "Thumbnail..."
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Main Script:"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Edit Plugin"
+msgstr ""
+
+#: 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
+msgid "Edit Text:"
+msgstr ""
+
+#: 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
+msgid "New Script"
+msgstr ""
+
+#: editor/editor_properties.cpp editor/scene_tree_dock.cpp
+msgid "Extend Script"
+msgstr ""
+
+#: 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
+msgid "Convert To %s"
+msgstr ""
+
+#: editor/editor_properties.cpp editor/property_editor.cpp
+msgid "Selected node is not a Viewport!"
+msgstr ""
+
+#: 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 or define an existing preset "
+"as runnable."
+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 ""
+
+#: 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_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 ""
+
+#: 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 ""
+
+#: 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
+msgid "Error creating path for templates:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Extracting Export Templates"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Importing:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Error getting the list of mirrors."
+msgstr ""
+
+#: 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
+msgid "Error requesting URL:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Connecting to Mirror..."
+msgstr ""
+
+#: 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
+msgid "Connecting..."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't Connect"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Connected"
+msgstr ""
+
+#: 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
+msgid "Connection Error"
+msgstr ""
+
+#: 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
+msgid "Remove Template"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Select Template File"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Godot Export Templates"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Export Template Manager"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Download Templates"
+msgstr ""
+
+#: 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
+msgid "Error moving:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Error duplicating:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Unable to update dependencies:"
+msgstr ""
+
+#: 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
+msgid "Renaming file:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Renaming folder:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Duplicating file:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Duplicating folder:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "New Inherited Scene"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Set As Main Scene"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Open Scenes"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Instance"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Add to Favorites"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Remove from Favorites"
+msgstr ""
+
+#: 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
+msgid "Duplicate..."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Move To..."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "New Scene..."
+msgstr ""
+
+#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
+msgid "New Script..."
+msgstr ""
+
+#: 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
+msgid "Previous Folder/File"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Next Folder/File"
+msgstr ""
+
+#: 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
+msgid "Create Scene"
+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
+msgid "Find in Files"
+msgstr ""
+
+#: editor/find_in_files.cpp
+msgid "Find:"
+msgstr ""
+
+#: editor/find_in_files.cpp
+msgid "Folder:"
+msgstr ""
+
+#: editor/find_in_files.cpp
+msgid "Filters:"
+msgstr ""
+
+#: 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 ""
+
+#: 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
+msgid "Searching..."
+msgstr ""
+
+#: 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
+msgid "Invalid group name."
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Rename Group"
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Delete Group"
+msgstr ""
+
+#: 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
+msgid "Filter nodes"
+msgstr ""
+
+#: 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
+msgid "Group Editor"
+msgstr ""
+
+#: 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 "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 ""
+
+#: 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
+msgid "Collapse All Properties"
+msgstr ""
+
+#: 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
+msgid "Filter properties"
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Changes may be lost!"
+msgstr ""
+
+#: editor/multi_node_edit.cpp
+msgid "MultiNode Set"
+msgstr ""
+
+#: editor/node_dock.cpp
+msgid "Select a single node to edit its signals and groups."
+msgstr ""
+
+#: editor/plugin_config_dialog.cpp
+msgid "Edit a Plugin"
+msgstr ""
+
+#: editor/plugin_config_dialog.cpp
+msgid "Create a Plugin"
+msgstr ""
+
+#: 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
+msgid "Script Name:"
+msgstr ""
+
+#: editor/plugin_config_dialog.cpp
+msgid "Activate now?"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Create Polygon"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Create points."
+msgstr ""
+
+#: 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
+msgid "Erase points."
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Edit Polygon"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Insert Point"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Edit Polygon (Remove Point)"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Remove Polygon And Point"
+msgstr ""
+
+#: 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
+msgid "Move Node Point"
+msgstr ""
+
+#: 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
+msgid "Add Node Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Add Animation Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Remove BlendSpace1D Point"
+msgstr ""
+
+#: 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
+msgid "Open Editor"
+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 "Open Animation Node"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Triangle already exists."
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Add Triangle"
+msgstr ""
+
+#: 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
+msgid "Remove BlendSpace2D Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Remove BlendSpace2D Triangle"
+msgstr ""
+
+#: 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
+msgid "Toggle Auto Triangles"
+msgstr ""
+
+#: 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
+msgid "Parameter Changed"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Edit Filters"
+msgstr ""
+
+#: 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
+msgid "Add Node to BlendTree"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: 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
+msgid "Nodes Connected"
+msgstr ""
+
+#: 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
+msgid "Set Animation"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Delete Node"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/scene_tree_dock.cpp
+msgid "Delete Node(s)"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Toggle Filter On/Off"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Change Filter"
+msgstr ""
+
+#: 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
+msgid "Functions"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Node Renamed"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node..."
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/root_motion_editor_plugin.cpp
+msgid "Edit Filtered Tracks:"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Enable Filtering"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Toggle Autoplay"
+msgstr ""
+
+#: 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
+msgid "Delete Animation?"
+msgstr ""
+
+#: 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
+msgid "Invalid animation name!"
+msgstr ""
+
+#: 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
+msgid "No animation to edit!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation backwards from current pos. (A)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation backwards from end. (Shift+A)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Stop animation playback. (S)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation from start. (Shift+D)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation from current pos. (D)"
+msgstr ""
+
+#: 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
+msgid "Edit Transitions..."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Open in Inspector"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Display list of animations in player."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Autoplay on Load"
+msgstr ""
+
+#: 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
+msgid "Directions"
+msgstr ""
+
+#: 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
+msgid "Pin AnimationPlayer"
+msgstr ""
+
+#: 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
+msgid "Move Node"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Transition exists!"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Add Transition"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr ""
+
+#: 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
+msgid "Node Removed"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Transition Removed"
+msgstr ""
+
+#: 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
+msgid "Create new nodes."
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Connect nodes."
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Remove selected node or transition."
+msgstr ""
+
+#: 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
+msgid "Transition: "
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Play Mode:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "AnimationTree"
+msgstr ""
+
+#: 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 ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "OneShot Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Mix Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Blend2 Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Blend3 Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Blend4 Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "TimeScale Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "TimeSeek Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Transition Node"
+msgstr ""
+
+#: 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 ""
+
+#: 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
+msgid "View Files"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Connection error, please try again."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't connect to host:"
+msgstr ""
+
+#: 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
+msgid "Error making request"
+msgstr ""
+
+#: 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
+msgid "Import..."
+msgstr ""
+
+#: 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
+msgid "Loading..."
+msgstr ""
+
+#: 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
+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
+msgid "Scale Step:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Vertical Guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create Vertical Guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Remove Vertical Guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Horizontal Guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create Horizontal Guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Remove Horizontal Guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create Horizontal and Vertical Guides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
+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
+msgid "Top Left"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Top Right"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Bottom Right"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Bottom Left"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center Left"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center Top"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center Right"
+msgstr ""
+
+#: 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
+msgid "Left Wide"
+msgstr ""
+
+#: 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
+msgid "Group Selected"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Paste Pose"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Guides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create Custom Bone(s) from Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Bones"
+msgstr ""
+
+#: 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
+msgid "Move Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale Mode"
+msgstr ""
+
+#: 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
+msgid "Ruler Mode"
+msgstr ""
+
+#: 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
+msgid "Snap to Node Sides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to Node Center"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to Other Nodes"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to Guides"
+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 ""
+
+#: 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
+msgid "Skeleton Options"
+msgstr ""
+
+#: 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
+msgid "Clear Custom Bones"
+msgstr ""
+
+#: 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
+msgid "Insert keys (based on mask)."
+msgstr ""
+
+#: 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
+msgid "Auto Insert Key"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Key (Existing Tracks)"
+msgstr ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change Default Type"
+msgstr ""
+
+#: 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
+msgid "Create Polygon3D"
+msgstr ""
+
+#: 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 ""
+
+#: 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
+msgid "Restart"
+msgstr ""
+
+#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr ""
+
+#: 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
+msgid "Emission Mask"
+msgstr ""
+
+#: 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
+msgid "Emission Colors"
+msgstr ""
+
+#: 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
+msgid "Add Point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Remove Point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Left Linear"
+msgstr ""
+
+#: 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
+msgid "Remove Curve Point"
+msgstr ""
+
+#: 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
+msgid "Couldn't create a Trimesh collision shape."
+msgstr ""
+
+#: 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
+msgid "Create Single Convex Shape"
+msgstr ""
+
+#: 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
+msgid "Couldn't create any collision shapes."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Multiple Convex Shapes"
+msgstr ""
+
+#: 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
+msgid "Create Single Convex Collision Sibling"
+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 ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Multiple Convex Collision Siblings"
+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 ""
+
+#: 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
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: 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 ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (invalid path)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (no geometry)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (no faces)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Select a Source Mesh:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Select a Target Surface:"
+msgstr ""
+
+#: 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 ""
+
+#: 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
+msgid "Convert to CPUParticles"
+msgstr ""
+
+#: 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
+msgid "The geometry doesn't contain any faces."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "\"%s\" doesn't inherit from Spatial."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "\"%s\" doesn't contain geometry."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "\"%s\" doesn't contain face geometry."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emitter"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Emission Points:"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Surface Points"
+msgstr ""
+
+#: 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
+msgid "Split Curve"
+msgstr ""
+
+#: 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
+msgid "Set Curve Point Position"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve In Position"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve Out Position"
+msgstr ""
+
+#: 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
+msgid "Move Joint"
+msgstr ""
+
+#: 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
+msgid "Create Internal Vertex"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Remove Internal Vertex"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Invalid Polygon (need 3 different vertices)"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Add Custom Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Remove Custom Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Transform UV Map"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Transform Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Paint Bone Weights"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Open Polygon 2D UV editor."
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Polygon 2D UV Editor"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "UV"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Points"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Polygons"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Bones"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Move Points"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Command: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift: Move All"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+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 "Copy Polygon to UV"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Copy UV to Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Clear UV"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Settings"
+msgstr ""
+
+#: 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
+msgid "Error writing TextFile:"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Could not load file at:"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error saving file!"
+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 "Error importing theme."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error Importing"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "New Text File..."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Open File"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save File As..."
+msgstr ""
+
+#: 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
+msgid "Filter scripts"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Toggle alphabetical sorting of the method list."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Filter methods"
+msgstr ""
+
+#: 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
+msgid "Open..."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Reopen Closed Script"
+msgstr ""
+
+#: 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
+msgid "Search Results"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Clear Recent Scripts"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Connections to method:"
+msgstr ""
+
+#: 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 "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Line"
+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 "Bookmarks"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Breakpoints"
+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 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
+msgid "Delete Line"
+msgstr ""
+
+#: 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
+msgid "Fold/Unfold Line"
+msgstr ""
+
+#: 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
+msgid "Evaluate Selection"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Trim Trailing Whitespace"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert Indent to Spaces"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert Indent to Tabs"
+msgstr ""
+
+#: 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
+msgid "Toggle Bookmark"
+msgstr ""
+
+#: 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
+msgid "Remove All Bookmarks"
+msgstr ""
+
+#: 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
+msgid "Create Rest Pose from Bones"
+msgstr ""
+
+#: 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
+msgid "Play IK"
+msgstr ""
+
+#: 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
+msgid "Translating: "
+msgstr ""
+
+#: 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 ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Animation Key Inserted."
+msgstr ""
+
+#: 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
+msgid "Shader Changes"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Surface Changes"
+msgstr ""
+
+#: 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 ""
+
+#: 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
+msgid "View FPS"
+msgstr ""
+
+#: 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
+msgid "Enable Doppler"
+msgstr ""
+
+#: 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 ""
+"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 ""
+
+#: 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
+msgid "Insert Animation Key"
+msgstr ""
+
+#: 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
+msgid "Settings..."
+msgstr ""
+
+#: 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 ""
+
+#: 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
+msgid "Create Mesh2D"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Mesh2D Preview"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Create Polygon2D"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Polygon2D Preview"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Create CollisionPolygon2D"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "CollisionPolygon2D Preview"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Create LightOccluder2D"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "LightOccluder2D Preview"
+msgstr ""
+
+#: 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
+msgid "Convert to Mesh2D"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Invalid geometry, can't create polygon."
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Convert to Polygon2D"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Invalid geometry, can't create collision polygon."
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Create CollisionPolygon2D Sibling"
+msgstr ""
+
+#: 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
+msgid "Settings:"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "No Frames Selected"
+msgstr ""
+
+#: 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
+msgid "Unable to load images"
+msgstr ""
+
+#: 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
+msgid "Move Frame"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Animations:"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "New Animation"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Speed:"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Loop"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Animation Frames:"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add a Texture from File"
+msgstr ""
+
+#: 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
+msgid "Move (Before)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Move (After)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Select Frames"
+msgstr ""
+
+#: 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
+msgid "TextureRegion"
+msgstr ""
+
+#: 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
+msgid "Remove All Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
+msgid "Remove All"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Edit Theme"
+msgstr ""
+
+#: 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
+msgid "Toggle Button"
+msgstr ""
+
+#: 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
+msgid "Disabled Item"
+msgstr ""
+
+#: 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
+msgid "Editable Item"
+msgstr ""
+
+#: 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
+msgid "Theme File"
+msgstr ""
+
+#: 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
+msgid "Cut Selection"
+msgstr ""
+
+#: 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
+msgid "Enable Priority"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Filter tiles"
+msgstr ""
+
+#: 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+Command+LMB: Rectangle Paint"
+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
+msgid "Rotate Left"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate Right"
+msgstr ""
+
+#: 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
+msgid "Clear Transform"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Add Texture(s) to TileSet."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove selected Texture from TileSet."
+msgstr ""
+
+#: 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
+msgid "Region"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Collision"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Occlusion"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Navigation"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Bitmask"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Priority"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Z Index"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Region Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Collision Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Occlusion Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Navigation Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Bitmask Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Priority Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Icon Mode"
+msgstr ""
+
+#: 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
+msgid "Paste bitmask."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Erase bitmask."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create a new rectangle."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create a new polygon."
+msgstr ""
+
+#: 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
+msgid "Remove selected texture? This will remove all tiles which use it."
+msgstr ""
+
+#: 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
+msgid "Remove Texture"
+msgstr ""
+
+#: 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
+msgid "Delete selected Rect."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid ""
+"Select current edited sub-tile.\n"
+"Click on another Tile to edit it."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Delete polygon."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+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 ""
+
+#: 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
+msgid ""
+"Select sub-tile to change its z index.\n"
+"Click on another Tile to edit it."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Set Tile Region"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create Tile"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Set Tile Icon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Edit Tile Bitmask"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Edit Collision Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Edit Occlusion Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Edit Navigation Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Paste Tile Bitmask"
+msgstr ""
+
+#: 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
+msgid "Make Polygon Convex"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove Tile"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove Collision Polygon"
+msgstr ""
+
+#: 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
+msgid "Edit Tile Priority"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Edit Tile Z Index"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Make Convex"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Make Concave"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create Collision Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create Occlusion Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "This property can't be changed."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "TileSet"
+msgstr ""
+
+#: 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
+msgid "Detect new changes"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Changes"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Modified"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Renamed"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Deleted"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Typechange"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Stage Selected"
+msgstr ""
+
+#: 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
+msgid "Commit Changes"
+msgstr ""
+
+#: 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
+msgid "Add Output"
+msgstr ""
+
+#: 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
+msgid "Add input port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add output port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Change input port type"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Change output port type"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Change input port name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Change output port name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Remove input port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Remove output port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set expression"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Resize VisualShader node"
+msgstr ""
+
+#: 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
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Duplicate Nodes"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Paste Nodes"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Delete Nodes"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name 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
+msgid "Show resulted shader code."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Create Shader Node"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Color function."
+msgstr ""
+
+#: 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
+msgid "Transform function."
+msgstr ""
+
+#: 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
+msgid "Transform constant."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Transform uniform."
+msgstr ""
+
+#: 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 "A reference to an existing uniform."
+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
+msgid "Edit Visual Property"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Mode Changed"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Runnable"
+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
+msgid "Export Path"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Resources"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export all resources in the project"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export selected scenes (and dependencies)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export selected resources (and dependencies)"
+msgstr ""
+
+#: 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 "Features"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Custom (comma-separated):"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Feature List:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Script"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Script Export Mode:"
+msgstr ""
+
+#: 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
+msgid "Export PCK/Zip"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export Project"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export mode?"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export All"
+msgstr ""
+
+#: editor/project_export.cpp editor/project_manager.cpp
+msgid "ZIP File"
+msgstr ""
+
+#: 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
+msgid "Please choose an empty folder."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Please choose a \"project.godot\" or \".zip\" file."
+msgstr ""
+
+#: 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 ""
+
+#: editor/project_manager.cpp
+msgid "Invalid Project Name."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't create folder."
+msgstr ""
+
+#: 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 ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Couldn't load project.godot in project path (error %d). It may be missing or "
+"corrupted."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't edit project.godot in project path."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't create project.godot in project path."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Rename Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Import Existing Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Import & Edit"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Create New Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Create & Edit"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Install Project:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Install & Edit"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Project Name:"
+msgstr ""
+
+#: 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
+msgid "Missing Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Error: Project is missing on the filesystem."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Can't open project at '%s'."
+msgstr ""
+
+#: 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 ""
+
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
+#: editor/project_manager.cpp
+msgid "Project Manager"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Projects"
+msgstr ""
+
+#: 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
+msgid "Remove Missing"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Templates"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Restart Now"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Can't run project"
+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 ""
+
+#: 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 ""
+
+#: 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
+msgid "Change Action deadzone"
+msgstr ""
+
+#: 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 ""
+
+#: 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
+msgid "Delete Item"
+msgstr ""
+
+#: 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
+msgid "Changed Locale Filter"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Changed Locale Filter Mode"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Project Settings (project.godot)"
+msgstr ""
+
+#: 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
+msgid "Action"
+msgstr ""
+
+#: 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
+msgid "Filter mode:"
+msgstr ""
+
+#: 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
+msgid "Select Node"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Error loading file: Not a resource!"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Pick a Node"
+msgstr ""
+
+#: 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 "Replace:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Use Regular Expressions"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Advanced Options"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Substitute"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Node name"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Node's parent name, if available"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Node type"
+msgstr ""
+
+#: 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
+msgid "To Lowercase"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "To Uppercase"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Reset"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Regular Expression Error:"
+msgstr ""
+
+#: 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 ""
+
+#: 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
+msgid "Detach Script"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "This operation can't be done on the tree root."
+msgstr ""
+
+#: 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 ""
+
+#: 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
+msgid "Delete %d nodes and any children?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes?"
+msgstr ""
+
+#: 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
+msgid "Delete node \"%s\"?"
+msgstr ""
+
+#: 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 ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Save New Scene As..."
+msgstr ""
+
+#: 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
+msgid "Create Root Node:"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "2D Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "3D Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "User Interface"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Other Node"
+msgstr ""
+
+#: 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
+msgid "Attach Script"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Remove Node(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Change type of node(s)"
+msgstr ""
+
+#: 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 ""
+
+#: 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 ""
+"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 ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Expand/Collapse All"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Change Type"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Reparent to New Node"
+msgstr ""
+
+#: 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
+msgid "Delete (No Confirm)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Add/Create a New Node."
+msgstr ""
+
+#: 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 to the selected node."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Detach the script from the selected node."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Remote"
+msgstr ""
+
+#: 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
+msgid "Unlock Node"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Button Group"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "(Connecting From)"
+msgstr ""
+
+#: 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
+msgid "Open Script:"
+msgstr ""
+
+#: 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
+msgid "Invalid base path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+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 ""
+
+#: editor/script_create_dialog.cpp
+msgid "Wrong extension chosen."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Error loading template '%s'"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Error - Could not create script in filesystem."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: 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
+msgid "Open Script"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+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 ""
+
+#: 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
+msgid "Will create a new script file."
+msgstr ""
+
+#: 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
+msgid "Template:"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Built-in Script:"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Attach Node Script"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Remote "
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Bytes:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Warning:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Error:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "C++ Error"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "C++ Error:"
+msgstr ""
+
+#: 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
+msgid "Child process connected."
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Copy Error"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Video RAM"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Skip Breakpoints"
+msgstr ""
+
+#: 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
+msgid "Network Profiler"
+msgstr ""
+
+#: 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
+msgid "Export list to a CSV file"
+msgstr ""
+
+#: 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
+msgid "Remove current entry"
+msgstr ""
+
+#: 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
+msgid "GridMap Fill Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paste Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: 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
+msgid "Paste Selects"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clear Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Fill Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Settings"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Pick Distance:"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Filter meshes"
+msgstr ""
+
+#: 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
+msgid "Change Argument Type"
+msgstr ""
+
+#: 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
+msgid "Set Variable Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Input Port"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Output Port"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Override an existing built-in function."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Create a new function."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Variables:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Create a new variable."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Signals:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Create a new signal."
+msgstr ""
+
+#: 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
+msgid "Delete input port"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Signal"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Input Port"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Output Port"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Expression"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove VisualScript Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Duplicate VisualScript Nodes"
+msgstr ""
+
+#: 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
+msgid "Add Preload Node"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node(s) From Tree"
+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 ""
+
+#: 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
+msgid "Change Base Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Move Node(s)"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove VisualScript Node"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Connect Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Disconnect Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Connect Node Data"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Connect Node Sequence"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Script already has function '%s'"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Input Value"
+msgstr ""
+
+#: 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
+msgid "Paste VisualScript Nodes"
+msgstr ""
+
+#: 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
+msgid "Create Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Editing Variable:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Signal"
+msgstr ""
+
+#: 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
+msgid "Change Base Type:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Nodes..."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Function..."
+msgstr ""
+
+#: 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
+msgid "Cut Nodes"
+msgstr ""
+
+#: 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
+msgid "Edit Member"
+msgstr ""
+
+#: 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
+msgid "Search VisualScript"
+msgstr ""
+
+#: 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 "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 ""
+
+#: 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
+msgid "Invalid package name:"
+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 "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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 ""
+
+#: 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 "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+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
+msgid "Could not write file:"
+msgstr ""
+
+#: 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
+msgid "Invalid package short name."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid package unique name."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid package publisher display name."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid product GUID."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid publisher GUID."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid background color."
+msgstr ""
+
+#: 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
+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
+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 ""
+
+#: 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 ""
+
+#: 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/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+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 ""
+
+#: scene/2d/light_occluder_2d.cpp
+msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
+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 ""
+
+#: scene/2d/navigation_polygon.cpp
+msgid ""
+"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
+"node. It only provides navigation data."
+msgstr ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: 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
+msgid ""
+"VisibilityEnabler2D works best when used with the edited scene root directly "
+"as parent."
+msgstr ""
+
+#: 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/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+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
+msgid "PathFollow only works when set as a child of a Path node."
+msgstr ""
+
+#: 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
+msgid ""
+"The \"Remote Path\" property must point to a valid Spatial or Spatial-"
+"derived node to work."
+msgstr ""
+
+#: 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
+msgid ""
+"A SpriteFrames resource must be created or set in the \"Frames\" property in "
+"order for AnimatedSprite3D to display frames."
+msgstr ""
+
+#: 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
+msgid "Animation not found: '%s'"
+msgstr ""
+
+#: 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 ""
+
+#: scene/gui/dialogs.cpp
+msgid "Please Confirm..."
+msgstr ""
+
+#: 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 ""
diff --git a/editor/translations/uk.po b/editor/translations/uk.po
index 417c5aeeeb..d1a9f9132c 100644
--- a/editor/translations/uk.po
+++ b/editor/translations/uk.po
@@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ukrainian (Godot Engine)\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-05 09:37+0000\n"
+"PO-Revision-Date: 2020-09-29 09:14+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/"
"godot/uk/>\n"
@@ -918,9 +918,8 @@ msgid "Signals"
msgstr "Сигнали"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "Фільтрувати плитки"
+msgstr "Фільтрувати Ñигнали"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1611,6 +1610,36 @@ msgstr ""
"Увімкніть пункт «Імпортувати ETC» у параметрах проєкту або вимкніть пункт "
"«Увімкнено резервні драйвери»."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Платформа Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ‚ÐµÐºÑтур «ETC» Ð´Ð»Ñ GLES2. Увімкніть "
+"пункт «Імпортувати ETC» у параметрах проєкту."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Платформа Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ‚ÐµÐºÑтур «ETC2» Ð´Ð»Ñ GLES3. Увімкніть "
+"пункт «Імпортувати ETC 2» у параметрах проєкту."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
@@ -1654,9 +1683,8 @@ msgid "Node Dock"
msgstr "Бічна панель вузлів"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "Файлова ÑиÑтема"
+msgstr "Панель файлової ÑиÑтеми"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2812,14 +2840,19 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Якщо увімкнено цей параметр, викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð² одне ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ "
+"призведе до того, що виконуваний файл Ñпробує вÑтановити з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ–Ð· IP-"
+"адреÑою цього комп'ютера, уможливлюючи діагноÑтику запущеного проєкту.\n"
+"Цей параметр призначено Ð´Ð»Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ñ— діагноÑтики (типово, за допомогою "
+"мобільного приÑтрою).\n"
+"Його Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ðµ знадобитьÑÑ, Ñкщо ви хочете викориÑтовувати заÑіб "
+"діагноÑтики GDScript локально."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "Маленьке Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð· Network File System"
+msgstr "Маленьке Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð· мережевою файловою ÑиÑтемою (NFS)"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2828,71 +2861,66 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"Якщо цей параметр увімкнено, екÑпорт або Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð´Ð°ÑŽÑ‚ÑŒ мінімальний "
-"виконуваний файл.\n"
-"Файлова ÑиÑтема буде надана редактором у проєкті через мережу.\n"
-"Ðа Android Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ швидше при підключенні через USB.. Цей параметр "
-"значно приÑкорює теÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÐ»Ð¸ÐºÐ¸Ñ… ігор."
+"Якщо цей параметр увімкнено, викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð² одне ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ Ð´Ð»Ñ "
+"Android призведе до екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ð¸ÑˆÐµ виконуваного файла без даних "
+"проєкту.\n"
+"Файлова ÑиÑтема буде надана редактором у проєкті за допомогою мережі.\n"
+"Ðа Android Ð´Ð»Ñ Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾Ð´Ñ–Ñ— буде викориÑтано USB-кабель. Цей "
+"параметр значно приÑкорює теÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð³Ð¾Ñ€ зі значними за об'ємом реÑурÑами."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "Видимі контури зіткнень"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"Контури Ð·Ñ–Ñ‚ÐºÐ½ÐµÐ½Ð½Ñ Ñ‚Ð° вузли raycast (Ð´Ð»Ñ 2D та 3D) буде видно в роботі гри, "
-"Ñкщо Ñ†Ñ Ð¾Ð¿Ñ†Ñ–Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð°."
+"Якщо увімкнено цей параметр, контури Ð·Ñ–Ñ‚ÐºÐ½ÐµÐ½Ð½Ñ Ñ‚Ð° вузли raycast (Ð´Ð»Ñ 2D та "
+"3D) буде видно у запущеному проєкті."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "Видимі навігації"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"Ðавігаційні поліÑітки та полігони будуть видимі у запущеній грі, Ñкщо Ñ†Ñ "
-"Ð¾Ð¿Ñ†Ñ–Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð°."
+"Якщо увімкнено цей параметр, у запущеному проєкті буде показано навігаційні "
+"Ñітки та полігони."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Синхронізувати зміни Ñцени"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Якщо цей параметр увімкнено, будь-Ñкі зміни, внеÑені в Ñцену в редакторі, "
-"будуть відтворені в роботі гри.\n"
+"Якщо цей параметр увімкнено, будь-Ñкі зміни, внеÑені у Ñцену в редакторі, "
+"будуть відтворені у запущеному проєкті.\n"
"При віддаленому викориÑтанні на приÑтрої, це більш ефективно з мережевою "
"файловою ÑиÑтемою."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
-msgstr "Синхронізувати зміни в Ñкрипті"
+msgstr "Синхронізувати зміни у Ñкрипті"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Якщо цей параметр увімкнено, будь-Ñкий Ñкрипт, Ñкий буде збережений, буде "
-"перезавантажений у поточній грі.\n"
+"Якщо цей параметр увімкнено, будь-Ñкий Ñкрипт, Ñкий буде збережено, буде "
+"перезавантажено у запущеному проєкті.\n"
"При віддаленому викориÑтанні на приÑтрої, це більш ефективно з мережевою "
"файловою ÑиÑтемою."
@@ -2948,8 +2976,7 @@ msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°Ð¼Ð¸ екÑпортуваннÑ…"
msgid "Help"
msgstr "Довідка"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3372,14 +3399,15 @@ msgid "Add Key/Value Pair"
msgstr "Додати пару ключ-значеннÑ"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
-"Ðе знайдено робочий екÑпортер Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— платформи.\n"
-"Будь лаÑка, додайте його в меню екÑпорту."
+"Ðе знайдено придатний до викориÑÑ‚Ð°Ð½Ð½Ñ Ð½Ð°Ð±Ñ–Ñ€ параметрів екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ "
+"цієї платформи.\n"
+"Будь лаÑка, додайте придатний до викориÑÑ‚Ð°Ð½Ð½Ñ Ð½Ð°Ð±Ñ–Ñ€ параметрів за допомогою "
+"меню «ЕкÑпорт» або визначне наÑвний набір Ñк придатний до викориÑтаннÑ."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -4380,7 +4408,6 @@ msgid "Add Node to BlendTree"
msgstr "Додати вузол до BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "ПереÑунуто вузол"
@@ -5213,27 +5240,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "Створити горизонтальні та вертикальні напрÑмні"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "ПереÑунути опорну точку"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "Обертати CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "Обертати CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "ПереÑунути прив'Ñзку"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "ПереÑунути CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Змінити розмір CanvasItem"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "МаÑштабувати CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "МаÑштабувати CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "ПереÑунути CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "ПереÑунути CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6514,14 +6564,24 @@ msgid "Move Points"
msgstr "ПереміÑтити точки"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl: Повернути"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "ПеретÑгуваннÑ: Поворот"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: ПереміÑтити вÑÑ–"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: МаÑштаб"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl: Повернути"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: МаÑштаб"
@@ -6563,12 +6623,14 @@ msgid "Radius:"
msgstr "РадіуÑ:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "Полігон -> UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "Створити полігон і UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV -> полігон"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Перетворити на Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7019,11 +7081,6 @@ 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 "Закладки"
@@ -7031,6 +7088,11 @@ msgstr "Закладки"
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7800,9 +7862,8 @@ msgid "New Animation"
msgstr "Ðова анімаціÑ"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "ЧаÑтота (кадри за Ñек.):"
+msgstr "ШвидкіÑÑ‚ÑŒ:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8120,6 +8181,15 @@ msgid "Paint Tile"
msgstr "Ðамалювати плитку"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+ліва кнопка: малювати лінію\n"
+"Shift+Ctrl+ліва кнопка: малювати прÑмокутник"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8648,6 +8718,11 @@ msgid "Add Node to Visual Shader"
msgstr "Додати вузол до візуального шейдера"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "ПереÑунуто вузол"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Дублювати вузли"
@@ -8665,6 +8740,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "Змінено тип Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ñ–Ð·ÑƒÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ шейдера"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Ð’Ñтановити однорідну назву"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Вершина"
@@ -9379,6 +9459,10 @@ msgstr ""
"уніформи та Ñталі."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(лише у режимі фрагментів або Ñвітла) Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ ÑкалÑрної похідної."
@@ -9450,18 +9534,6 @@ msgid "Runnable"
msgstr "Ðктивний"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "Додати початкове екÑпортуваннÑ…"
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "Додати попередні латки…"
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "Вилучити латку «%s» зі ÑпиÑку?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "Вилучити набір «%s»?"
@@ -9561,18 +9633,6 @@ msgstr ""
"(з відокремленнÑм комами, приклад: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "Латки"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "Створити латку"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "Файл пакунка"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "МожливоÑÑ‚Ñ–"
@@ -10373,19 +10433,16 @@ msgid "Batch Rename"
msgstr "Пакетне перейменуваннÑ"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "Замінити: "
+msgstr "Заміна:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "ПрефікÑ"
+msgstr "ПрефікÑ:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "СуфікÑ"
+msgstr "СуфікÑ:"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10432,11 +10489,10 @@ msgid "Per-level Counter"
msgstr "Лічильник на рівень"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
"Якщо позначено, лічильник перезапуÑкатиметьÑÑ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— групи дочірніх "
-"вузлів"
+"вузлів."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10495,9 +10551,8 @@ msgid "Reset"
msgstr "Скинути"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "Помилка у формальному виразі"
+msgstr "Помилка у формальному виразі:"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -12099,6 +12154,22 @@ msgstr ""
"«Oculus Mobile VR»."
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12135,8 +12206,14 @@ msgstr ""
"документацією щодо Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð´Ð»Ñ Android."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "Ðемає apk Ð´Ð»Ñ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ñƒ: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12599,6 +12676,7 @@ msgstr ""
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
msgstr ""
+"InterpolatedCamera вважаєтьÑÑ Ð·Ð°Ñтарілою, Ñ—Ñ— буде вилучено у Godot 4.0."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12909,6 +12987,42 @@ msgstr "Змінні величини можна пов'Ñзувати лише
msgid "Constants cannot be modified."
msgstr "Сталі не можна змінювати."
+#~ msgid "Move pivot"
+#~ msgstr "ПереÑунути опорну точку"
+
+#~ msgid "Move anchor"
+#~ msgstr "ПереÑунути прив'Ñзку"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Змінити розмір CanvasItem"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "Полігон -> UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV -> полігон"
+
+#~ msgid "Add initial export..."
+#~ msgstr "Додати початкове екÑпортуваннÑ…"
+
+#~ msgid "Add previous patches..."
+#~ msgstr "Додати попередні латки…"
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "Вилучити латку «%s» зі ÑпиÑку?"
+
+#~ msgid "Patches"
+#~ msgstr "Латки"
+
+#~ msgid "Make Patch"
+#~ msgstr "Створити латку"
+
+#~ msgid "Pack File"
+#~ msgstr "Файл пакунка"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "Ðемає apk Ð´Ð»Ñ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ñƒ: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "Бічна панель файлової ÑиÑтеми та імпортуваннÑ"
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index 2859b66ac9..0daae77789 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -1572,6 +1572,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -2853,8 +2873,7 @@ msgstr ".تمام کا انتخاب"
msgid "Help"
msgstr ""
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4270,7 +4289,6 @@ msgid "Add Node to BlendTree"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "ایکشن منتقل کریں"
@@ -5105,29 +5123,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "سب سکریپشن بنائیں"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move pivot"
-msgstr "ایکشن منتقل کریں"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Rotate %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move anchor"
-msgstr "ایکشن منتقل کریں"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Move CanvasItem \"%s\" Anchor"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6399,7 +6431,7 @@ msgid "Move Points"
msgstr ".تمام کا انتخاب"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6407,6 +6439,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6445,12 +6485,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr ".تمام کا انتخاب"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6899,11 +6940,6 @@ 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 ""
@@ -6912,6 +6948,11 @@ msgstr ""
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8014,6 +8055,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8556,6 +8603,11 @@ msgid "Add Node to Visual Shader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "ایکشن منتقل کریں"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr ""
@@ -8574,6 +8626,10 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9236,6 +9292,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9296,18 +9356,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr ""
-
-#: 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 ""
@@ -9395,18 +9443,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr ""
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -11860,6 +11896,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11884,7 +11936,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12514,6 +12572,14 @@ msgid "Constants cannot be modified."
msgstr ""
#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "ایکشن منتقل کریں"
+
+#, fuzzy
+#~ msgid "Move anchor"
+#~ msgstr "ایکشن منتقل کریں"
+
+#, fuzzy
#~ msgid "Not in resource path."
#~ msgstr ".ÛŒÛ Ø±ÛŒØ³ÙˆØ±Ø³ Ùائل پر مبنی Ù†ÛÛŒ ÛÛ’"
diff --git a/editor/translations/vi.po b/editor/translations/vi.po
index 2b56df15ed..446a1ce2fa 100644
--- a/editor/translations/vi.po
+++ b/editor/translations/vi.po
@@ -1612,6 +1612,36 @@ msgstr ""
"Chá»n kích hoạt 'Nhập ETC' trong Cài đặt Dá»± án, hoặc chá»n tắt 'Kích hoạt "
"Trình Ä‘iá»u khiển Dá»± phòng'."
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"Ná»n tảng yêu cầu dùng kiểu nén 'ETC' cho GLES2. Bật 'Nhập ETC' trong Cài đặt "
+"Dự án."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"Ná»n tảng yêu cầu dùng kiểu nén 'ETC2' cho GLES3. Bật 'Nhập ETC2' trong Cài "
+"đặt Dự án."
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"Ná»n tảng yêu cầu kiểu nén 'ETC' cho trình Ä‘iá»u khiển dá»± phòng GLES2.\n"
+"Chá»n kích hoạt 'Nhập ETC' trong Cài đặt Dá»± án, hoặc chá»n tắt 'Kích hoạt "
+"Trình Ä‘iá»u khiển Dá»± phòng'."
+
#: 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
@@ -2933,8 +2963,7 @@ msgstr "Quản lý Các Mẫu Xuất Bản ..."
msgid "Help"
msgstr "Trợ giúp"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4363,7 +4392,6 @@ msgid "Add Node to BlendTree"
msgstr "Thêm nút vào cây Blend"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "Äã di chuyển Nút"
@@ -5205,27 +5233,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "Di chuyển trục"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate %d CanvasItems"
msgstr "Xoay CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "Di chuyển neo"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "Xoay CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "Äổi kích thÆ°á»›c CanvasItem"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "Di chuyển CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale %d CanvasItems"
msgstr "Tỉ lệ CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr "Tỉ lệ CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "Di chuyển CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Di chuyển CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6504,14 +6555,23 @@ msgid "Move Points"
msgstr "Di chuyển đến..."
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr ""
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "Kéo: Xoay"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6550,12 +6610,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "Xóa Animation"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7015,11 +7076,6 @@ 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 ""
@@ -7028,6 +7084,11 @@ msgstr ""
msgid "Breakpoints"
msgstr "Tạo các điểm."
+#: 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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8143,6 +8204,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8691,6 +8758,11 @@ msgid "Add Node to Visual Shader"
msgstr "Thêm nút vào Visual Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "Äã di chuyển Nút"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "Nhân bản các nút"
@@ -8708,6 +8780,11 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "Äối số đã thay đổi"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9374,6 +9451,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9434,19 +9515,6 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Add initial export..."
-msgstr "Thêm Input"
-
-#: 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 ""
@@ -9542,19 +9610,6 @@ msgstr ""
"(phân tách bằng dấu phẩy, ví dụ: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr ""
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Pack File"
-msgstr " Tệp tin"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -12074,6 +12129,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12106,7 +12177,13 @@ msgstr ""
"Hoặc truy cập 'docs.godotengine.org' xem tài liệu xây dựng Android."
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -12750,6 +12827,23 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Không thể chỉnh sửa hằng số."
+#~ msgid "Move pivot"
+#~ msgstr "Di chuyển trục"
+
+#~ msgid "Move anchor"
+#~ msgstr "Di chuyển neo"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "Äổi kích thÆ°á»›c CanvasItem"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "Thêm Input"
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr " Tệp tin"
+
#~ msgid ""
#~ "When exporting or deploying, the resulting executable will attempt to "
#~ "connect to the IP of this computer in order to be debugged."
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index 1fd689420b..4ce2d7c14d 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -75,7 +75,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Chinese (Simplified) (Godot Engine)\n"
"POT-Creation-Date: 2018-01-20 12:15+0200\n"
-"PO-Revision-Date: 2020-09-24 12:43+0000\n"
+"PO-Revision-Date: 2020-10-18 14:21+0000\n"
"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hans/>\n"
@@ -84,7 +84,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.3-dev\n"
+"X-Generator: Weblate 4.3.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -107,11 +107,11 @@ msgstr "表达å¼ä¸­åŒ…å«çš„%i无效(未传递)"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "实例为null(未传递),无法传递自身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"
@@ -309,7 +309,7 @@ msgstr "动画剪辑:"
#: editor/animation_track_editor.cpp
msgid "Change Track Path"
-msgstr "改å˜è½¨è¿¹è·¯å¾„"
+msgstr "改å˜è½¨é“路径"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
@@ -353,7 +353,7 @@ msgstr "触å‘器"
#: editor/animation_track_editor.cpp
msgid "Capture"
-msgstr "截图"
+msgstr "æ•èŽ·"
#: editor/animation_track_editor.cpp
msgid "Nearest"
@@ -407,7 +407,7 @@ 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?"
@@ -495,23 +495,23 @@ msgstr "轨é“路径无效,因此无法添加键。"
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
-msgstr "轨é“ä¸æ˜¯Spatial类型,ä¸èƒ½æ’入键"
+msgstr "轨é“ä¸æ˜¯Spatial类型,无法æ’入帧"
#: editor/animation_track_editor.cpp
msgid "Add Transform Track Key"
-msgstr "添加转æ¢è½¨é“é”®"
+msgstr "添加å˜æ¢è½¨é“帧"
#: editor/animation_track_editor.cpp
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
msgid "Add Method Track Key"
-msgstr "添加方法轨é“é”®"
+msgstr "添加方法轨é“帧"
#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
@@ -519,7 +519,7 @@ msgstr "方法未找到: "
#: editor/animation_track_editor.cpp
msgid "Anim Move Keys"
-msgstr "移动关键帧"
+msgstr "移动动画关键帧"
#: editor/animation_track_editor.cpp
msgid "Clipboard is empty"
@@ -531,12 +531,12 @@ 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 "此选项ä¸é€‚用于Bezier编辑,因为它åªæ˜¯ä¸€ä¸ªè½¨è¿¹ã€‚"
+msgstr "此选项ä¸é€‚用于è´å¡žå°”编辑,因为它åªæ˜¯å•ä¸ªè½¨é“。"
#: editor/animation_track_editor.cpp
msgid ""
@@ -552,13 +552,14 @@ msgid ""
msgstr ""
"此动画属于导入的场景,因此ä¸ä¼šä¿å­˜å¯¹å¯¼å…¥è½¨é“的更改。\n"
"\n"
-"è¦å¯ç”¨æ·»åŠ è‡ªå®šä¹‰è½¨é“的功能,å¯ä»¥å¯¼èˆªåˆ°åœºæ™¯çš„导入设置,将\n"
-"“动画 > 存储â€è®¾ä¸ºâ€œæ–‡ä»¶â€ï¼Œå¯ç”¨â€œåŠ¨ç”» > ä¿ç•™è‡ªå®šä¹‰è½¨é“â€å¹¶é‡æ–°å¯¼å…¥ã€‚\n"
-"或者也å¯ä»¥é€‰æ‹©ä¸€ä¸ªå¯¼å…¥åŠ¨ç”»çš„导入预设以分隔文件。"
+"è¦å¯ç”¨æ·»åŠ è‡ªå®šä¹‰è½¨é“的功能,å¯ä»¥åœ¨åœºæ™¯çš„导入设置中将\n"
+"“Animation > Storageâ€è®¾ä¸ºâ€œ Filesâ€ï¼Œå¯ç”¨â€œAnimation > Keep Custom Tracksâ€ï¼Œç„¶åŽ"
+"é‡æ–°å¯¼å…¥ã€‚\n"
+"或者也å¯ä»¥ä½¿ç”¨å°†åŠ¨ç”»å¯¼å…¥ä¸ºå•ç‹¬æ–‡ä»¶çš„导入预设。"
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
-msgstr "警告: 正在编辑导入的动画"
+msgstr "警告:正在编辑导入的动画"
#: editor/animation_track_editor.cpp
msgid "Select an AnimationPlayer node to create and edit animations."
@@ -657,15 +658,15 @@ 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"
@@ -673,7 +674,7 @@ msgstr "优化"
#: editor/animation_track_editor.cpp
msgid "Remove invalid keys"
-msgstr "移除无效键"
+msgstr "移除无效帧"
#: editor/animation_track_editor.cpp
msgid "Remove unresolved and empty tracks"
@@ -685,7 +686,7 @@ msgstr "清除所有动画"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr "清除所有动画å—(无法撤销ï¼ï¼‰"
+msgstr "清除动画(无法撤销ï¼ï¼‰"
#: editor/animation_track_editor.cpp
msgid "Clean-Up"
@@ -710,7 +711,7 @@ msgstr "å¤åˆ¶"
#: editor/animation_track_editor.cpp
msgid "Select All/None"
-msgstr "å–消/选择 全部"
+msgstr "全选/å–消"
#: editor/animation_track_editor_plugins.cpp
msgid "Add Audio Track Clip"
@@ -742,7 +743,7 @@ msgstr "转到行"
#: editor/code_editor.cpp
msgid "Line Number:"
-msgstr "è¡Œå·:"
+msgstr "è¡Œå·ï¼š"
#: editor/code_editor.cpp
msgid "%d replaced."
@@ -825,11 +826,11 @@ msgstr "找ä¸åˆ°ç›®æ ‡æ–¹æ³•ã€‚请指定一个有效的方法或者把脚本附
#: editor/connections_dialog.cpp
msgid "Connect to Node:"
-msgstr "连接到节点:"
+msgstr "连接到节点:"
#: editor/connections_dialog.cpp
msgid "Connect to Script:"
-msgstr "连接到脚本:"
+msgstr "连接到脚本:"
#: editor/connections_dialog.cpp
msgid "From Signal:"
@@ -929,12 +930,12 @@ msgstr "断开所有与信å·â€œ%sâ€çš„连接"
#: editor/connections_dialog.cpp
msgid "Connect..."
-msgstr "连接信å·..."
+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"
@@ -953,9 +954,8 @@ msgid "Signals"
msgstr "ä¿¡å·"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "筛选图å—"
+msgstr "筛选信å·"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -998,13 +998,13 @@ msgstr "最近使用:"
#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.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
@@ -1012,11 +1012,11 @@ 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:"
@@ -1054,7 +1054,7 @@ msgstr "路径"
#: editor/dependency_editor.cpp
msgid "Dependencies:"
-msgstr "ä¾èµ–:"
+msgstr "ä¾èµ–:"
#: editor/dependency_editor.cpp
msgid "Fix Broken"
@@ -1258,7 +1258,7 @@ msgstr "许å¯è¯"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Error opening package file, not in ZIP format."
-msgstr "打开压缩文件时出错,éžzipæ ¼å¼ã€‚"
+msgstr "打开压缩文件时出错,éžZIPæ ¼å¼ã€‚"
#: editor/editor_asset_installer.cpp
msgid "%s (Already Exists)"
@@ -1637,6 +1637,31 @@ msgstr ""
"目标平å°éœ€è¦â€œETCâ€çº¹ç†åŽ‹ç¼©ï¼Œä»¥ä¾¿é©±åŠ¨ç¨‹åºå›žé€€åˆ°GLES2。\n"
"在项目设置中å¯ç”¨â€œå¯¼å…¥Etcâ€ï¼Œæˆ–ç¦ç”¨â€œå¯ç”¨é©±åŠ¨ç¨‹åºå›žé€€â€ã€‚"
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr "目标平å°éœ€è¦GLES2的“ETCâ€çº¹ç†åŽ‹ç¼©ã€‚在项目设置中å¯ç”¨â€œå¯¼å…¥Etcâ€ã€‚"
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr "目标平å°éœ€è¦GLES3的“ETC2â€çº¹ç†åŽ‹ç¼©ã€‚在项目设置中å¯ç”¨â€œå¯¼å…¥Etc 2â€ã€‚"
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
@@ -1678,9 +1703,8 @@ msgid "Node Dock"
msgstr "节点é¢æ¿"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "文件系统"
+msgstr "文件系统é¢æ¿"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2498,7 +2522,7 @@ msgstr "在打开项目管ç†å™¨ä¹‹å‰ä¿å­˜æ›´æ”¹å—?"
msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
-msgstr "此选项已弃用。必须强制刷新的情况现在被视为 bug。请报告。"
+msgstr "该选项已废弃。必须强制刷新的情况现在被视为 bug。请报告。"
#: editor/editor_node.cpp
msgid "Pick a Main Scene"
@@ -2805,14 +2829,16 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"å¯ç”¨è¯¥é€‰é¡¹æ—¶ï¼Œä¸€é”®éƒ¨ç½²åŽçš„å¯æ‰§è¡Œæ–‡ä»¶å°†å°è¯•è¿žæŽ¥åˆ°è¿™å°ç”µè„‘çš„IP以便调试所è¿è¡Œçš„"
+"工程。\n"
+"该选项æ„在进行远程调试(尤其是移动设备)。\n"
+"在本地使用GDScript调试器无需å¯ç”¨ã€‚"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
msgstr "使用网络文件系统进行å°åž‹éƒ¨ç½²"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2821,63 +2847,58 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"当å¯ç”¨æ­¤é¡¹åŽï¼Œå°†åœ¨å¯¼å‡ºæˆ–å‘布项目时生æˆæœ€å°åŒ–å¯è‡ªè¡Œæ–‡ä»¶ã€‚\n"
-"文件系统将通过网络连接到编辑器æ¥å®žçŽ°ã€‚\n"
-"在Androidå¹³å°ï¼Œé€šè¿‡USBå‘布能获得更快的效率。此选项å¯ä»¥åŠ å¿«å¤§ä½“积游æˆçš„测试。"
+"å¯ç”¨è¯¥é€‰é¡¹æ—¶ï¼Œä¸€é”®éƒ¨ç½²åˆ°Android时所导出的å¯æ‰§è¡Œæ–‡ä»¶å°†ä¸åŒ…å«å·¥ç¨‹æ•°æ®ã€‚\n"
+"文件系统将由编辑器基于工程通过网络æ供。\n"
+"在Androidå¹³å°ï¼Œéƒ¨ç½²å°†é€šè¿‡USB线缆进行以æ高性能。如果工程中包å«è¾ƒå¤§çš„ç´ æ,该"
+"选项会æ高测试速度。"
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "显示碰撞区域"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
-msgstr "如果å¯ç”¨æ­¤é¡¹ï¼ŒèŠ‚点的碰撞区域和raycast将在游æˆè¿è¡Œæ—¶å¯è§ã€‚"
+msgstr "å¯ç”¨è¯¥é€‰é¡¹æ—¶ï¼Œç¢°æ’žåŒºåŸŸå’Œå…‰çº¿æŠ•å°„节点(2Då’Œ3D)将在工程è¿è¡Œæ—¶å¯è§ã€‚"
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "显示导航"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
-msgstr "如果å¯ç”¨æ­¤é¡¹ï¼Œç”¨äºŽå¯¼èˆªçš„mesh和多边形将在游æˆè¿è¡Œæ—¶å¯è§ã€‚"
+msgstr "å¯ç”¨è¯¥é€‰é¡¹æ—¶ï¼Œå¯¼èˆªç½‘格和多边形将在工程è¿è¡Œæ—¶å¯è§ã€‚"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "åŒæ­¥åœºæ™¯ä¿®æ”¹"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"å¼€å¯æ­¤é¡¹åŽï¼Œåœ¨ç¼–辑器中对场景的所有修改都会被应用与正在è¿è¡Œçš„游æˆä¸­ã€‚\n"
-"当使用远程设备调试时,使用网络文件系统能有效æ高编辑效率。"
+"å¯ç”¨è¯¥é€‰é¡¹æ—¶ï¼Œåœ¨ç¼–辑器中对场景的任何修改都会被应用于正在è¿è¡Œçš„工程中。\n"
+"当使用于远程设备时,å¯ç”¨ç½‘络文件系统能æ高编辑效率。"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
-msgstr "åŒæ­¥è„šæœ¬å˜æ›´"
+msgstr "åŒæ­¥è„šæœ¬ä¿®æ”¹"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"å¼€å¯æ­¤é¡¹åŽï¼Œæ‰€æœ‰è„šæœ¬åœ¨ä¿å­˜æ—¶éƒ½ä¼šè¢«æ­£åœ¨è¿è¡Œçš„游æˆé‡æ–°åŠ è½½ã€‚\n"
-"当使用远程设备调试时,使用网络文件系统能有效æ高编辑效率。"
+"å¯ç”¨è¯¥é€‰é¡¹æ—¶ï¼Œä¿å­˜çš„任何脚本都会被正在è¿è¡Œçš„工程é‡æ–°åŠ è½½ã€‚\n"
+"当使用于远程设备时,å¯ç”¨ç½‘络文件系统能æ高编辑效率。"
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -2931,8 +2952,7 @@ msgstr "管ç†å¯¼å‡ºæ¨¡æ¿..."
msgid "Help"
msgstr "帮助"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3287,7 +3307,7 @@ msgstr "新建脚本"
#: editor/editor_properties.cpp editor/scene_tree_dock.cpp
msgid "Extend Script"
-msgstr "打开脚本"
+msgstr "扩展脚本"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "New %s"
@@ -3345,14 +3365,13 @@ msgid "Add Key/Value Pair"
msgstr "添加键/值对"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
"没有对应该平å°çš„å¯æ‰§è¡Œå¯¼å‡ºé¢„设。\n"
-"请在导出èœå•ä¸­æ·»åŠ å¯æ‰§è¡Œé¢„设。"
+"请在导出èœå•ä¸­æ·»åŠ å¯æ‰§è¡Œé¢„设,或将已有预设设为å¯æ‰§è¡Œã€‚"
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -3765,8 +3784,8 @@ msgid ""
"Scanning Files,\n"
"Please Wait..."
msgstr ""
-"扫æ文件,\n"
-"请ç¨å€™ã€‚"
+"正在扫æ文件,\n"
+"请ç¨å€™â€¦â€¦"
#: editor/filesystem_dock.cpp
msgid "Move"
@@ -4336,7 +4355,6 @@ msgid "Add Node to BlendTree"
msgstr "在åˆæˆæ ‘中添加节点"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "节点已移动"
@@ -5155,27 +5173,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "创建垂直水平å‚考线"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "移动轴心点"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate %d CanvasItems"
msgstr "旋转 CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "移动锚点"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr "旋转 CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "移动 CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "调整 CanvasItem 尺寸"
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "缩放包å«é¡¹"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "缩放包å«é¡¹"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "移动 CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "移动 CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6439,14 +6480,24 @@ msgid "Move Points"
msgstr "移动点"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl:旋转"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "拖动æ¥æ—‹è½¬"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: 移动所有"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl: 缩放"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl:旋转"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl: 缩放"
@@ -6485,12 +6536,14 @@ msgid "Radius:"
msgstr "åŠå¾„:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "多边形->UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "创建多边形和 UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV->多边形"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "转æ¢ä¸ºPolygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6542,7 +6595,7 @@ 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"
@@ -6568,14 +6621,14 @@ 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
@@ -6933,11 +6986,6 @@ 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 "书签"
@@ -6945,6 +6993,11 @@ msgstr "书签"
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7406,7 +7459,7 @@ msgstr "仰视图"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View"
-msgstr "俯视"
+msgstr "俯视图"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View"
@@ -7711,9 +7764,8 @@ msgid "New Animation"
msgstr "新建动画"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "速度(FPS):"
+msgstr "速度:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8031,6 +8083,15 @@ msgid "Paint Tile"
msgstr "绘制图å—"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+鼠标左键:绘制直线\n"
+"Shift+Ctrl+鼠标左键:绘制矩形"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8550,6 +8611,11 @@ msgid "Add Node to Visual Shader"
msgstr "将节点添加到å¯è§†ç€è‰²å™¨"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "节点已移动"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "å¤åˆ¶èŠ‚点"
@@ -8567,6 +8633,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "å¯è§†ç€è‰²å™¨è¾“入类型已更改"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "设置统一å称"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "顶点"
@@ -9253,6 +9324,10 @@ msgstr ""
"ç§å‡½æ•°å®šä¹‰ï¼Œç„¶åŽåœ¨è¡¨è¾¾å¼ä¸­è°ƒç”¨ã€‚您还å¯ä»¥å£°æ˜Ž varyingã€uniform 和常é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(仅é™ç‰‡æ®µ/光照模å¼ï¼‰æ ‡é‡å¯¼æ•°å‡½æ•°ã€‚"
@@ -9313,18 +9388,6 @@ msgid "Runnable"
msgstr "å¯æ‰§è¡Œçš„"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "添加原始导出项..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "添加已有补ä¸..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "是å¦ä»Žåˆ—表中删除补ä¸â€œ%sâ€ï¼Ÿ"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "是å¦åˆ é™¤é¢„设“%sâ€ï¼Ÿ"
@@ -9422,18 +9485,6 @@ msgstr ""
"(以英文逗å·åˆ†éš”,如:*.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "è¡¥ä¸"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "制作补ä¸"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "包文件"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "特性"
@@ -9552,7 +9603,7 @@ 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."
@@ -9560,7 +9611,7 @@ msgstr "为项目命å是一个好主æ„。"
#: editor/project_manager.cpp
msgid "Invalid project path (changed anything?)."
-msgstr "项目路径éžæ³•ï¼ˆè¢«å¤–部修改?)。"
+msgstr "项目路径无效(被外部修改?)。"
#: editor/project_manager.cpp
msgid ""
@@ -9762,7 +9813,7 @@ msgid ""
"Remove all missing projects from the list?\n"
"The project folders' contents won't be modified."
msgstr ""
-"是å¦ä»Žåˆ—表中删除所有缺失的项目?\n"
+"是å¦ä»Žåˆ—表中移除所有缺失的项目?\n"
"项目文件夹的内容ä¸ä¼šè¢«ä¿®æ”¹ã€‚"
#: editor/project_manager.cpp
@@ -9808,7 +9859,7 @@ msgstr "新建项目"
#: editor/project_manager.cpp
msgid "Remove Missing"
-msgstr "删除缺失"
+msgstr "移除缺失项"
#: editor/project_manager.cpp
msgid "Templates"
@@ -10217,19 +10268,16 @@ msgid "Batch Rename"
msgstr "批é‡é‡å‘½å"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "替æ¢ï¼š "
+msgstr "替æ¢ï¼š"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "å‰ç¼€"
+msgstr "å‰ç¼€ï¼š"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "åŽç¼€"
+msgstr "åŽç¼€ï¼š"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10276,9 +10324,8 @@ msgid "Per-level Counter"
msgstr "å„级å•ç‹¬è®¡æ•°"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "如果å¯ç”¨ï¼Œè®¡æ•°å™¨å°†ä¸ºæ¯ç»„å­èŠ‚点é‡ç½®"
+msgstr "如果å¯ç”¨ï¼Œè®¡æ•°å™¨å°†ä¸ºæ¯ç»„å­èŠ‚点é‡ç½®ã€‚"
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10337,9 +10384,8 @@ msgid "Reset"
msgstr "é‡ç½®"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "正则表达å¼å‡ºé”™"
+msgstr "正则表达å¼å‡ºé”™ï¼š"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -11193,7 +11239,7 @@ 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."
@@ -11891,6 +11937,22 @@ msgid ""
msgstr "“焦点感知â€åªæœ‰åœ¨å½““Xr Modeâ€æ˜¯â€œOculus Mobile VRâ€æ—¶æ‰æœ‰æ•ˆã€‚"
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -11922,8 +11984,14 @@ msgstr ""
"你也å¯ä»¥è®¿é—®docs.godotengine.org查看Android构建文档。"
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "在以下ä½ç½®æœªç”Ÿæˆæž„建APK: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -11995,11 +12063,11 @@ msgstr "å‘布者显示å称无效。"
#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
-msgstr "产å“GUIDéžæ³•ã€‚"
+msgstr "产å“GUID无效。"
#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr "å‘布GUIDéžæ³•ã€‚"
+msgstr "å‘布者GUID无效。"
#: platform/uwp/export/export.cpp
msgid "Invalid background color."
@@ -12333,7 +12401,7 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "InterpolatedCamera已废弃,将在Godot 4.0中删除。"
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12485,7 +12553,7 @@ msgstr "AnimationPlayer根节点ä¸æ˜¯æœ‰æ•ˆèŠ‚点。"
#: scene/animation/animation_tree_player.cpp
msgid "This node has been deprecated. Use AnimationTree instead."
-msgstr "这个节点已被弃用。请使用Animation Tree代替。"
+msgstr "该节点已废弃。请使用Animation Tree代替。"
#: scene/gui/color_picker.cpp
msgid ""
@@ -12596,7 +12664,7 @@ msgstr "预览的æºèµ„æºæ— æ•ˆã€‚"
#: scene/resources/visual_shader_nodes.cpp
msgid "Invalid source for shader."
-msgstr "éžæ³•çš„ç€è‰²å™¨æºã€‚"
+msgstr "ç€è‰²å™¨çš„æºèµ„æºæ— æ•ˆã€‚"
#: scene/resources/visual_shader_nodes.cpp
msgid "Invalid comparison function for that type."
@@ -12618,6 +12686,42 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸­æŒ‡å®šã€‚"
msgid "Constants cannot be modified."
msgstr "ä¸å…许修改常é‡ã€‚"
+#~ msgid "Move pivot"
+#~ msgstr "移动轴心点"
+
+#~ msgid "Move anchor"
+#~ msgstr "移动锚点"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "调整 CanvasItem 尺寸"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "多边形->UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV->多边形"
+
+#~ msgid "Add initial export..."
+#~ msgstr "添加原始导出项..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "添加已有补ä¸..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "是å¦ä»Žåˆ—表中删除补ä¸â€œ%sâ€ï¼Ÿ"
+
+#~ msgid "Patches"
+#~ msgstr "è¡¥ä¸"
+
+#~ msgid "Make Patch"
+#~ msgstr "制作补ä¸"
+
+#~ msgid "Pack File"
+#~ msgstr "包文件"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "在以下ä½ç½®æœªç”Ÿæˆæž„建APK: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "文件系统和导入é¢æ¿"
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index 5ccf540635..cfc8abfafa 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -1652,6 +1652,26 @@ msgid ""
"Enabled'."
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' 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
@@ -3009,8 +3029,7 @@ msgstr "管ç†è¼¸å‡ºç¯„本"
msgid "Help"
msgstr "幫助"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -4513,7 +4532,6 @@ msgid "Add Node to BlendTree"
msgstr "由主幹新增節點"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Node Moved"
msgstr "移動模å¼"
@@ -5390,29 +5408,43 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "新增"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move pivot"
-msgstr "上移"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+msgid "Rotate %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
-msgid "Move anchor"
-msgstr "移動模å¼"
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale %d CanvasItems"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+msgid "Move %d CanvasItems"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6708,7 +6740,7 @@ msgid "Move Points"
msgstr "下移"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
+msgid "Command: Rotate"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -6716,6 +6748,14 @@ msgid "Shift: Move All"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr ""
@@ -6754,12 +6794,13 @@ msgid "Radius:"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
+msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "轉為..."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7234,11 +7275,6 @@ 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 ""
@@ -7247,6 +7283,11 @@ msgstr ""
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -8393,6 +8434,12 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
@@ -8959,6 +9006,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
+msgid "Node(s) Moved"
+msgstr "移動模å¼"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid "Duplicate Nodes"
msgstr "複製動畫幀"
@@ -8978,6 +9030,11 @@ msgid "Visual Shader Input Type Changed"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "當改變時更新"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -9642,6 +9699,10 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr ""
@@ -9706,20 +9767,6 @@ msgstr "啟用"
#: editor/project_export.cpp
#, fuzzy
-msgid "Add initial export..."
-msgstr "新增訊號"
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Delete patch '%s' from list?"
-msgstr "刪除"
-
-#: editor/project_export.cpp
-#, fuzzy
msgid "Delete preset '%s'?"
msgstr "è¦åˆªé™¤é¸ä¸­æª”案?"
@@ -9811,20 +9858,6 @@ msgid ""
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
-msgid "Patches"
-msgstr "å»åˆ"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr ""
-
-#: editor/project_export.cpp
-#, fuzzy
-msgid "Pack File"
-msgstr "檔案"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr ""
@@ -12373,6 +12406,22 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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."
@@ -12397,7 +12446,13 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
msgstr ""
#: platform/iphone/export/export.cpp
@@ -13046,6 +13101,30 @@ msgid "Constants cannot be modified."
msgstr ""
#, fuzzy
+#~ msgid "Move pivot"
+#~ msgstr "上移"
+
+#, fuzzy
+#~ msgid "Move anchor"
+#~ msgstr "移動模å¼"
+
+#, fuzzy
+#~ msgid "Add initial export..."
+#~ msgstr "新增訊號"
+
+#, fuzzy
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "刪除"
+
+#, fuzzy
+#~ msgid "Patches"
+#~ msgstr "å»åˆ"
+
+#, fuzzy
+#~ msgid "Pack File"
+#~ msgstr "檔案"
+
+#, fuzzy
#~ msgid "FileSystem and Import Docks"
#~ msgstr "檔案系統"
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index 4c693ce275..e579ce7d7c 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -29,7 +29,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-09-08 11:40+0000\n"
+"PO-Revision-Date: 2020-10-11 17:17+0000\n"
"Last-Translator: BinotaLIU <me@binota.org>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hant/>\n"
@@ -47,7 +47,7 @@ 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
@@ -61,7 +61,7 @@ msgstr "é‹ç®—å¼ä¸­çš„輸入 %i 無效 (未傳éžï¼‰"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "該實體爲 null,無法使用 self"
+msgstr "該實體為 null,無法使用 self"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -77,7 +77,7 @@ 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':"
@@ -908,9 +908,8 @@ msgid "Signals"
msgstr "訊號"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Filter signals"
-msgstr "篩é¸åœ–å¡Š"
+msgstr "篩é¸è¨Šè™Ÿ"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -1596,6 +1595,35 @@ msgstr ""
"目標平å°ä¸Šçš„ GLES2 回退驅動器功能必須使用「ETCã€ç´‹ç†å£“縮。\n"
"請在專案設定中啟用「Import Etcã€æˆ–是ç¦ç”¨ã€ŒDriver Fallback Enabledã€ã€‚"
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+"目標平å°ä¸Šçš„ GLES2 必須使用「ETCã€ç´‹ç†å£“縮。請在專案設定中啟用「Import "
+"Etcã€ã€‚"
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+"目標平å°ä¸Šçš„ GLES3 必須使用「ETC2ã€ç´‹ç†å£“縮。請在專案設定中啟用「Import Etc "
+"2ã€ã€‚"
+
+#: editor/editor_export.cpp
+#, fuzzy
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+"目標平å°ä¸Šçš„ GLES2 回退驅動器功能必須使用「ETCã€ç´‹ç†å£“縮。\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
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
@@ -1637,9 +1665,8 @@ msgid "Node Dock"
msgstr "節點 Dock"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem Dock"
-msgstr "檔案系統"
+msgstr "檔案系統 Dock"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2726,7 +2753,7 @@ msgstr "匯出..."
#: editor/editor_node.cpp
msgid "Install Android Build Template..."
-msgstr "å®‰è£ Android 建構樣æ¿..."
+msgstr "å®‰è£ Android 建置樣æ¿..."
#: editor/editor_node.cpp
msgid "Open Project Data Folder"
@@ -2762,14 +2789,16 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"當開啓該é¸é …後,一éµéƒ¨ç½²æ‰€ç”¢ç”Ÿçš„執行檔會嘗試連線至本電腦之 IP ä½ç½®ä»¥å°åŸ·è¡Œä¸­"
+"的專案進行除錯。\n"
+"該é¸é …旨在進行é ç«¯é™¤éŒ¯ï¼ˆé€šå¸¸é…åˆè¡Œå‹•è£ç½®ä½¿ç”¨ï¼‰ã€‚\n"
+"è‹¥è¦ä½¿ç”¨æœ¬æ©Ÿ GDScript 除錯工具,則ä¸è¨±å•Ÿç”¨è©²é¸é …。"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
msgstr "使用網路檔案系統進行å°åž‹éƒ¨ç½²"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2778,40 +2807,36 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"啟用該é¸é …後,匯出或部署是會產生最å°å¯åŸ·è¡Œæª”。\n"
-"專案之檔案系統將由本編輯器以網路æ供。\n"
-"部署至 Android å¹³å°éœ€ä½¿ç”¨ USB 線以ç²å¾—更快速的效能。該é¸é …å°æ–¼å¤§åž‹éŠæˆ²èƒ½åŠ é€Ÿ"
-"測試。"
+"啟用該é¸é …後,一éµéƒ¨ç½²è‡³ Android 時的å¯åŸ·è¡Œæª”å°‡ä¸æœƒåŒ…å«å°ˆæ¡ˆè³‡æ–™ã€‚\n"
+"專案之檔案系統將由本編輯器é€éŽç¶²è·¯æ供。\n"
+"部署至 Android å¹³å°éœ€ä½¿ç”¨ USB 線以ç²å¾—更快速的效能。該é¸é …é©ç”¨æ–¼æœ‰å¤§åž‹ç´ æçš„"
+"專案,å¯åŠ é€Ÿæ¸¬è©¦ã€‚"
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "顯示碰撞å€åŸŸ"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
-msgstr "é–‹å•Ÿé¸é …後,執行éŠæˆ²æ™‚å°‡å¯çœ‹è¦‹ç¢°æ’žå€åŸŸèˆ‡ï¼ˆ2D 或 3D 的)射線節點。"
+msgstr "開啟該é¸é …後,碰撞å€åŸŸèˆ‡å°„線節點(2D 與 3D)會在專案執行時å¯è¦‹ã€‚"
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "顯示導航"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
-msgstr "開啟該é¸é …後,執行éŠæˆ²æ™‚å°‡å¯çœ‹è¦‹å°Žèˆªç¶²æ ¼ (mesh) 與多邊形。"
+msgstr "開啟該é¸é …後,導航網格與多邊形將在專案執行時å¯è¦‹ã€‚"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Scene Changes"
-msgstr "åŒæ­¥å ´æ™¯æ”¹å‹•"
+msgstr "åŒæ­¥å¸¸è¦‹æ›´æ”¹"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
@@ -2822,19 +2847,17 @@ msgstr ""
"若在é ç«¯è£ç½®ä¸Šä½¿ç”¨ï¼Œå¯ä½¿ç”¨ç¶²è·¯æª”案系統 NFS 以ç²å¾—最佳效能。"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Synchronize Script Changes"
-msgstr "åŒæ­¥è…³æœ¬æ”¹å‹•"
+msgstr "åŒæ­¥è…³æœ¬æ›´æ”¹"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"開啟該é¸é …後,ä¿å­˜ä¹‹è…³æœ¬éƒ½å°‡æ–¼åŸ·è¡Œä¸­çš„éŠæˆ²é‡æ–°è¼‰å…¥ã€‚\n"
+"開啟該é¸é …後,ä¿å­˜è…³æœ¬æ™‚會於執行中的éŠæˆ²å…§é‡æ–°è¼‰å…¥è…³æœ¬ã€‚\n"
"若在é ç«¯è£ç½®ä¸Šä½¿ç”¨ï¼Œå¯ä½¿ç”¨ç¶²è·¯æª”案系統 NFS 以ç²å¾—最佳效能。"
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2889,8 +2912,7 @@ msgstr "管ç†åŒ¯å‡ºæ¨£æ¿..."
msgid "Help"
msgstr "說明"
-#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#: editor/plugins/script_editor_plugin.cpp
+#: editor/editor_node.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
@@ -3006,7 +3028,7 @@ msgstr "ä¸ä¿å­˜"
#: editor/editor_node.cpp
msgid "Android build template is missing, please install relevant templates."
-msgstr "缺少 Android 建構樣æ¿ï¼Œè«‹å…ˆå®‰è£å°æ‡‰çš„樣æ¿ã€‚"
+msgstr "缺少 Android 建置樣æ¿ï¼Œè«‹å…ˆå®‰è£å°æ‡‰çš„樣æ¿ã€‚"
#: editor/editor_node.cpp
msgid "Manage Templates"
@@ -3022,11 +3044,11 @@ msgid ""
"the \"Use Custom Build\" option should be enabled in the Android export "
"preset."
msgstr ""
-"將於「res://android/buildã€å®‰è£åŽŸå§‹æ¨£æ¿ä»¥ç‚ºè©²é …目設定自定 Android 建構樣"
+"將於「res://android/buildã€å®‰è£åŽŸå§‹æ¨£æ¿ä»¥ç‚ºè©²é …目設定自定 Android 建置樣"
"æ¿ã€‚\n"
-"輸出時å¯å¥—用修改並建構自定 APK(如新增模組ã€ä¿®æ”¹ AndroidManifest.xml …"
+"輸出時å¯å¥—用修改並建置自定 APK(如新增模組ã€ä¿®æ”¹ AndroidManifest.xml …"
"等)。\n"
-"請注æ„,若è¦ä½¿ç”¨è‡ªå®šå»ºæ§‹è€Œéžä½¿ç”¨é å…ˆå»ºæ§‹ä¹‹ APK,請啟用 Android 匯出é è¨­è¨­å®šä¸­"
+"請注æ„,若è¦ä½¿ç”¨è‡ªå®šå»ºç½®è€Œéžä½¿ç”¨é å…ˆå»ºç½®ä¹‹ APK,請啟用 Android 匯出é è¨­è¨­å®šä¸­"
"çš„ [Use Custom Build] é¸é …。"
#: editor/editor_node.cpp
@@ -3036,7 +3058,7 @@ msgid ""
"Remove the \"res://android/build\" directory manually before attempting this "
"operation again."
msgstr ""
-"è©²å°ˆæ¡ˆä¸­å·²å®‰è£ Android 建構樣æ¿ï¼Œå°‡ä¸æœƒè¦†è“‹ã€‚\n"
+"è©²å°ˆæ¡ˆä¸­å·²å®‰è£ Android 建置樣æ¿ï¼Œå°‡ä¸æœƒè¦†è“‹ã€‚\n"
"è‹¥è¦å†æ¬¡åŸ·è¡Œæ­¤æ“作,請先手動移除「res://android/buildã€ç›®éŒ„。"
#: editor/editor_node.cpp
@@ -3304,14 +3326,13 @@ msgid "Add Key/Value Pair"
msgstr "新增索引éµï¼å€¼çµ„"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the Export menu or define an existing preset "
"as runnable."
msgstr ""
-"該平å°æ²’有å¯åŸ·è¡Œçš„匯出é è¨­è¨­å®šã€‚\n"
-"請在匯出é¸å–®ä¸­æ–°å¢žä¸€å€‹å¯åŸ·è¡Œçš„é è¨­è¨­å®šã€‚"
+"為找到å¯åŸ·è¡Œæ–¼è©²å¹³å°çš„匯出é è¨­è¨­å®šã€‚\n"
+"請在 [匯出] é¸å–®ä¸­æ–°å¢žä¸€å€‹å¯åŸ·è¡Œçš„é è¨­è¨­å®šï¼Œæœƒå°‡ç¾æœ‰çš„é è¨­è¨­å®šè¨­ç‚ºå¯åŸ·è¡Œã€‚"
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -3376,7 +3397,7 @@ msgstr "下載"
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
-msgstr "開發建構 (Development Build) 下無法使用官方匯出樣æ¿ã€‚"
+msgstr "開發建置 (Development Build) 下無法使用官方匯出樣æ¿ã€‚"
#: editor/export_template_manager.cpp
msgid "(Missing)"
@@ -3528,7 +3549,7 @@ msgstr "SSL 交æ¡éŒ¯èª¤"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
-msgstr "正在解壓縮 Android 建構來æº"
+msgstr "正在解壓縮 Android 建置來æº"
#: editor/export_template_manager.cpp
msgid "Current Version:"
@@ -4295,7 +4316,6 @@ msgid "Add Node to BlendTree"
msgstr "新增節點至混åˆæ¨¹"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
msgstr "已移動節點"
@@ -5115,27 +5135,50 @@ msgid "Create Horizontal and Vertical Guides"
msgstr "建立水平與垂直åƒè€ƒç·š"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move pivot"
-msgstr "移動軸心"
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Rotate %d CanvasItems"
+msgstr "旋轉 CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate CanvasItem"
+#, fuzzy
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
msgstr "旋轉 CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move anchor"
-msgstr "移動錨點"
+#, fuzzy
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr "移動 CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Resize CanvasItem"
-msgstr "調整 CanvasItem 大å°"
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Scale %d CanvasItems"
+msgstr "縮放 CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Scale CanvasItem"
+#, fuzzy
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
msgstr "縮放 CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move CanvasItem"
+#, fuzzy
+msgid "Move %d CanvasItems"
+msgstr "移動 CanvasItem"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "移動 CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6399,14 +6442,24 @@ msgid "Move Points"
msgstr "移動點"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr "Ctrl:旋轉"
+#, fuzzy
+msgid "Command: Rotate"
+msgstr "拖移:旋轉"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift:移動全部"
#: editor/plugins/polygon_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Shift+Command: Scale"
+msgstr "Shift+Ctrl:縮放"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr "Ctrl:旋轉"
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
msgstr "Shift+Ctrl:縮放"
@@ -6445,12 +6498,14 @@ msgid "Radius:"
msgstr "åŠå¾‘:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr "多邊形 -> UV"
+#, fuzzy
+msgid "Copy Polygon to UV"
+msgstr "建立多邊形與 UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr "UV -> 多邊形"
+#, fuzzy
+msgid "Copy UV to Polygon"
+msgstr "轉æ›ç‚º Polygon2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -6893,11 +6948,6 @@ 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 "書籤"
@@ -6905,6 +6955,11 @@ msgstr "書籤"
msgid "Breakpoints"
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 scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
@@ -7270,7 +7325,7 @@ msgstr "效果é è¦½"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr "使用 GLES2 轉譯器時無法使用。"
+msgstr "使用 GLES2 算繪引擎時無法使用。"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -7671,9 +7726,8 @@ msgid "New Animation"
msgstr "新增動畫"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "速度 (FPS):"
+msgstr "速度:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -7991,6 +8045,15 @@ msgid "Paint Tile"
msgstr "繪製圖塊"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+"Shift+å·¦éµï¼šç›´ç·šç¹ªè£½\n"
+"Shift+Ctrl+å·¦éµï¼šçŸ©å½¢ç¹ªåœ–"
+
+#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
@@ -8510,6 +8573,11 @@ msgid "Add Node to Visual Shader"
msgstr "將節點新增至視覺著色器"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node(s) Moved"
+msgstr "已移動節點"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Duplicate Nodes"
msgstr "é‡è¤‡ç¯€é»ž"
@@ -8527,6 +8595,11 @@ msgid "Visual Shader Input Type Changed"
msgstr "已修改視覺著色器輸入類型"
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "UniformRef Name Changed"
+msgstr "設定å‡å‹»å稱"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "頂點"
@@ -9214,6 +9287,10 @@ msgstr ""
"裡é¢ï¼Œä¸¦æ–¼ç¨å¾Œåœ¨è¡¨ç¤ºå¼ä¸­å‘¼å«ã€‚也å¯ä»¥è²æ˜Ž Varyingã€Uniform 與常數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
msgstr "(é™ç‰‡æ®µï¼å…‰ç…§æ¨¡å¼ï¼‰ç´”é‡å°Žå‡½æ•¸ã€‚"
@@ -9274,18 +9351,6 @@ msgid "Runnable"
msgstr "å¯åŸ·è¡Œ"
#: editor/project_export.cpp
-msgid "Add initial export..."
-msgstr "新增åˆå§‹åŒ¯å‡º..."
-
-#: editor/project_export.cpp
-msgid "Add previous patches..."
-msgstr "新增上回修正檔..."
-
-#: editor/project_export.cpp
-msgid "Delete patch '%s' from list?"
-msgstr "是å¦è¦è‡ªåˆ—表中刪除「%sã€ä¿®æ­£æª”?"
-
-#: editor/project_export.cpp
msgid "Delete preset '%s'?"
msgstr "確定è¦åˆªé™¤é è¨­è¨­å®šã€Œ%sã€ï¼Ÿ"
@@ -9383,18 +9448,6 @@ msgstr ""
"(以åŠå½¢é€—號å€åˆ†ï¼Œå¦‚: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
-msgid "Patches"
-msgstr "修正檔"
-
-#: editor/project_export.cpp
-msgid "Make Patch"
-msgstr "製作修正檔"
-
-#: editor/project_export.cpp
-msgid "Pack File"
-msgstr "打包檔案"
-
-#: editor/project_export.cpp
msgid "Features"
msgstr "功能"
@@ -9579,7 +9632,7 @@ msgstr "專案安è£è·¯å¾‘:"
#: editor/project_manager.cpp
msgid "Renderer:"
-msgstr "轉譯器:"
+msgstr "算繪引擎:"
#: editor/project_manager.cpp
msgid "OpenGL ES 3.0"
@@ -9615,7 +9668,7 @@ msgstr ""
#: 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"
@@ -10177,19 +10230,16 @@ msgid "Batch Rename"
msgstr "批次é‡æ–°å‘½å"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Replace:"
-msgstr "å–代: "
+msgstr "å–代:"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
-msgstr "å‰ç½®"
+msgstr "å‰ç½®ï¼š"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Suffix:"
-msgstr "後置"
+msgstr "後置:"
#: editor/rename_dialog.cpp
msgid "Use Regular Expressions"
@@ -10236,9 +10286,8 @@ msgid "Per-level Counter"
msgstr "å„級別分別計數器"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "若啟用則計數器將ä¾æ“šæ¯çµ„å­ç¯€é»žé‡æ–°å•Ÿå‹•"
+msgstr "若啟用則計數器將ä¾æ“šæ¯çµ„å­ç¯€é»žé‡æ–°å•Ÿå‹•ã€‚"
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -10297,9 +10346,8 @@ msgid "Reset"
msgstr "é‡è¨­"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Regular Expression Error:"
-msgstr "æ­£è¦è¡¨ç¤ºå¼éŒ¯èª¤"
+msgstr "æ­£è¦è¡¨ç¤ºå¼éŒ¯èª¤ï¼š"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -10537,7 +10585,7 @@ msgid ""
"disabled."
msgstr ""
"無法附加腳本:未註冊任何語言。\n"
-"å¯èƒ½æ˜¯ç”±æ–¼ç·¨è¼¯å™¨åœ¨å»ºæ§‹æ™‚未啟用任何語言模組。"
+"å¯èƒ½æ˜¯ç”±æ–¼ç·¨è¼¯å™¨åœ¨å»ºç½®æ™‚未啟用任何語言模組。"
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -11321,7 +11369,7 @@ msgstr "正在標記å¯ç§»å‹•çš„三角形..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
-msgstr "正在建構緊湊 Heightfield..."
+msgstr "正在建置緊湊 Heightfield..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
@@ -11802,7 +11850,7 @@ msgstr "發行金鑰儲存å€ä¸­ä¸æ­£ç¢ºä¹‹çµ„態設定至匯出é è¨­è¨­å®šã€‚
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
-msgstr "自定建構需è¦æœ‰åœ¨ç·¨è¼¯å™¨è¨­å®šä¸­è¨­å®šä¸€å€‹æœ‰æ•ˆçš„ Android SDK ä½ç½®ã€‚"
+msgstr "自定建置需è¦æœ‰åœ¨ç·¨è¼¯å™¨è¨­å®šä¸­è¨­å®šä¸€å€‹æœ‰æ•ˆçš„ Android SDK ä½ç½®ã€‚"
#: platform/android/export/export.cpp
msgid "Invalid Android SDK path for custom build in Editor Settings."
@@ -11812,7 +11860,7 @@ msgstr "編輯器設定中用於自定義設定之 Android SDK 路徑無效。"
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
-msgstr "å°šæœªæ–¼å°ˆæ¡ˆä¸­å®‰è£ Android 建構樣æ¿ã€‚請先於專案目錄中進行安è£ã€‚"
+msgstr "å°šæœªæ–¼å°ˆæ¡ˆä¸­å®‰è£ Android 建置樣æ¿ã€‚請先於專案目錄中進行安è£ã€‚"
#: platform/android/export/export.cpp
msgid "Invalid public key for APK expansion."
@@ -11832,7 +11880,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
-msgstr "「使用自定建構ã€å¿…須啟用以使用本外掛。"
+msgstr "「使用自定建置ã€å¿…須啟用以使用本外掛。"
#: platform/android/export/export.cpp
msgid ""
@@ -11857,11 +11905,27 @@ msgstr ""
"Mobile VRã€æ™‚å¯ç”¨ã€‚"
#: platform/android/export/export.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+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 ""
-"嘗試自自定建構樣æ¿é€²è¡Œå»ºæ§‹ï¼Œä½†ç„¡ç‰ˆæœ¬è³‡è¨Šå¯ç”¨ã€‚請自「專案ã€é¸å–®ä¸­é‡æ–°å®‰è£ã€‚"
+"嘗試自自定建置樣æ¿é€²è¡Œå»ºç½®ï¼Œä½†ç„¡ç‰ˆæœ¬è³‡è¨Šå¯ç”¨ã€‚請自「專案ã€é¸å–®ä¸­é‡æ–°å®‰è£ã€‚"
#: platform/android/export/export.cpp
msgid ""
@@ -11870,26 +11934,32 @@ msgid ""
" Godot Version: %s\n"
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-"Android 建構版本ä¸ç¬¦åˆï¼š\n"
+"Android 建置版本ä¸ç¬¦åˆï¼š\n"
" 已安è£çš„樣æ¿ï¼š%s\n"
" Godot 版本:%s\n"
-"請自「專案ã€ç›®éŒ„中é‡æ–°å®‰è£ Android 建構樣æ¿ã€‚"
+"請自「專案ã€ç›®éŒ„中é‡æ–°å®‰è£ Android 建置樣æ¿ã€‚"
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
-msgstr "建構 Android 專案(Gradle)"
+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 建構說明文件。"
+"建置 Android 專案失敗,請檢查輸出以確èªéŒ¯èª¤ã€‚\n"
+"也å¯ä»¥ç€è¦½ docs.godotengine.org 以ç€è¦½ Android 建置說明文件。"
#: platform/android/export/export.cpp
-msgid "No build apk generated at: "
-msgstr "無建構 APK 產生於: "
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12303,7 +12373,7 @@ msgstr ""
#: scene/3d/interpolated_camera.cpp
msgid ""
"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr ""
+msgstr "InterpolatedCamera å·²åœæ­¢ç¶­è­·ï¼Œä¸”將於 Godot 4.0 中移除。"
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12594,6 +12664,42 @@ msgstr "Varying 變數åªå¯åœ¨é ‚點函å¼ä¸­æŒ‡æ´¾ã€‚"
msgid "Constants cannot be modified."
msgstr "ä¸å¯ä¿®æ”¹å¸¸æ•¸ã€‚"
+#~ msgid "Move pivot"
+#~ msgstr "移動軸心"
+
+#~ msgid "Move anchor"
+#~ msgstr "移動錨點"
+
+#~ msgid "Resize CanvasItem"
+#~ msgstr "調整 CanvasItem 大å°"
+
+#~ msgid "Polygon->UV"
+#~ msgstr "多邊形 -> UV"
+
+#~ msgid "UV->Polygon"
+#~ msgstr "UV -> 多邊形"
+
+#~ msgid "Add initial export..."
+#~ msgstr "新增åˆå§‹åŒ¯å‡º..."
+
+#~ msgid "Add previous patches..."
+#~ msgstr "新增上回修正檔..."
+
+#~ msgid "Delete patch '%s' from list?"
+#~ msgstr "是å¦è¦è‡ªåˆ—表中刪除「%sã€ä¿®æ­£æª”?"
+
+#~ msgid "Patches"
+#~ msgstr "修正檔"
+
+#~ msgid "Make Patch"
+#~ msgstr "製作修正檔"
+
+#~ msgid "Pack File"
+#~ msgstr "打包檔案"
+
+#~ msgid "No build apk generated at: "
+#~ msgstr "無建置 APK 產生於: "
+
#~ msgid "FileSystem and Import Docks"
#~ msgstr "檔案系統與匯入 Dock"
diff --git a/main/main.cpp b/main/main.cpp
index 5ebd0138d3..f2d057665a 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -334,7 +334,10 @@ void Main::print_help(const char *p_binary) {
OS::get_singleton()->print(" -d, --debug Debug (local stdout debugger).\n");
OS::get_singleton()->print(" -b, --breakpoints Breakpoint list as source::line comma-separated pairs, no spaces (use %%20 instead).\n");
OS::get_singleton()->print(" --profiling Enable profiling in the script debugger.\n");
+#if DEBUG_ENABLED
+ OS::get_singleton()->print(" --vk-layers Enable Vulkan Validation layers for debugging.\n");
OS::get_singleton()->print(" --gpu-abort Abort on GPU errors (usually validation layer errors), may help see the problem if your system freezes.\n");
+#endif
OS::get_singleton()->print(" --remote-debug <uri> Remote debug (<protocol>://<host/IP>[:<port>], e.g. tcp://127.0.0.1:6007).\n");
#if defined(DEBUG_ENABLED) && !defined(SERVER_ENABLED)
OS::get_singleton()->print(" --debug-collisions Show collision shapes when running the scene.\n");
@@ -695,9 +698,12 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
} else if (I->get() == "-w" || I->get() == "--windowed") { // force windowed window
init_windowed = true;
- } else if (I->get() == "--gpu-abort") { // force windowed window
-
+#ifdef DEBUG_ENABLED
+ } else if (I->get() == "--vk-layers") {
+ Engine::singleton->use_validation_layers = true;
+ } else if (I->get() == "--gpu-abort") {
Engine::singleton->abort_on_gpu_errors = true;
+#endif
} else if (I->get() == "--tablet-driver") {
if (I->next()) {
tablet_driver = I->next()->get();
@@ -1267,7 +1273,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
OS::get_singleton()->_allow_layered = false;
}
- Engine::get_singleton()->_pixel_snap = GLOBAL_DEF("rendering/quality/2d/use_pixel_snap", false);
OS::get_singleton()->_keep_screen_on = GLOBAL_DEF("display/window/energy_saving/keep_screen_on", true);
if (rtm == -1) {
rtm = GLOBAL_DEF("rendering/threads/thread_model", OS::RENDER_THREAD_SAFE);
diff --git a/modules/gdnative/gdnative/color.cpp b/modules/gdnative/gdnative/color.cpp
index c75e74daba..e08183ab63 100644
--- a/modules/gdnative/gdnative/color.cpp
+++ b/modules/gdnative/gdnative/color.cpp
@@ -148,13 +148,6 @@ godot_color GDAPI godot_color_inverted(const godot_color *p_self) {
return dest;
}
-godot_color GDAPI godot_color_contrasted(const godot_color *p_self) {
- godot_color dest;
- const Color *self = (const Color *)p_self;
- *((Color *)&dest) = self->contrasted();
- return dest;
-}
-
godot_color GDAPI godot_color_lerp(const godot_color *p_self, const godot_color *p_b, const godot_real p_t) {
godot_color dest;
const Color *self = (const Color *)p_self;
diff --git a/modules/gdnative/gdnative_api.json b/modules/gdnative/gdnative_api.json
index 82bfbd23de..40d0f75871 100644
--- a/modules/gdnative/gdnative_api.json
+++ b/modules/gdnative/gdnative_api.json
@@ -1255,13 +1255,6 @@
]
},
{
- "name": "godot_color_contrasted",
- "return_type": "godot_color",
- "arguments": [
- ["const godot_color *", "p_self"]
- ]
- },
- {
"name": "godot_color_lerp",
"return_type": "godot_color",
"arguments": [
diff --git a/modules/gdnative/include/gdnative/color.h b/modules/gdnative/include/gdnative/color.h
index e7737bf8e1..e64097ef57 100644
--- a/modules/gdnative/include/gdnative/color.h
+++ b/modules/gdnative/include/gdnative/color.h
@@ -93,8 +93,6 @@ godot_int GDAPI godot_color_to_argb32(const godot_color *p_self);
godot_color GDAPI godot_color_inverted(const godot_color *p_self);
-godot_color GDAPI godot_color_contrasted(const godot_color *p_self);
-
godot_color GDAPI godot_color_lerp(const godot_color *p_self, const godot_color *p_b, const godot_real p_t);
godot_color GDAPI godot_color_blend(const godot_color *p_self, const godot_color *p_over);
diff --git a/modules/gdscript/gdscript_analyzer.cpp b/modules/gdscript/gdscript_analyzer.cpp
index 5250115608..ab4edb04b9 100644
--- a/modules/gdscript/gdscript_analyzer.cpp
+++ b/modules/gdscript/gdscript_analyzer.cpp
@@ -2279,10 +2279,12 @@ void GDScriptAnalyzer::reduce_identifier(GDScriptParser::IdentifierNode *p_ident
StringName name = p_identifier->name;
p_identifier->source = GDScriptParser::IdentifierNode::UNDEFINED_SOURCE;
- // Check globals.
- if (GDScriptParser::get_builtin_type(name) < Variant::VARIANT_MAX) {
+ // Check globals. We make an exception for Variant::OBJECT because it's the base class for
+ // non-builtin types so we allow doing e.g. Object.new()
+ Variant::Type builtin_type = GDScriptParser::get_builtin_type(name);
+ if (builtin_type != Variant::OBJECT && builtin_type < Variant::VARIANT_MAX) {
if (can_be_builtin) {
- p_identifier->set_datatype(make_builtin_meta_type(GDScriptParser::get_builtin_type(name)));
+ p_identifier->set_datatype(make_builtin_meta_type(builtin_type));
return;
} else {
push_error(R"(Builtin type cannot be used as a name on its own.)", p_identifier);
diff --git a/modules/gdscript/gdscript_function.cpp b/modules/gdscript/gdscript_function.cpp
index e59f99fc56..1da0e7b4c6 100644
--- a/modules/gdscript/gdscript_function.cpp
+++ b/modules/gdscript/gdscript_function.cpp
@@ -1093,6 +1093,13 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
OPCODE_BREAK;
}
}
+ } else if (methodstr == "call_recursive" && basestr == "TreeItem") {
+ if (argc >= 1) {
+ methodstr = String(*argptrs[0]) + " (via TreeItem.call_recursive)";
+ if (err.error == Callable::CallError::CALL_ERROR_INVALID_ARGUMENT) {
+ err.argument += 1;
+ }
+ }
}
err_text = _get_call_error(err, "function '" + methodstr + "' in base '" + basestr + "'", (const Variant **)argptrs);
OPCODE_BREAK;
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Color.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Color.cs
index 3700a6194f..d0add835c0 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Color.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Color.cs
@@ -257,20 +257,6 @@ namespace Godot
}
/// <summary>
- /// Returns the most contrasting color.
- /// </summary>
- /// <returns>The most contrasting color</returns>
- public Color Contrasted()
- {
- return new Color(
- (r + 0.5f) % 1.0f,
- (g + 0.5f) % 1.0f,
- (b + 0.5f) % 1.0f,
- a
- );
- }
-
- /// <summary>
/// Returns a new color resulting from making this color darker
/// by the specified ratio (on the range of 0 to 1).
/// </summary>
diff --git a/modules/visual_script/doc_classes/VisualScriptPropertyGet.xml b/modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
index f13d449064..1c22070ab1 100644
--- a/modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
@@ -31,5 +31,7 @@
</constant>
<constant name="CALL_MODE_INSTANCE" value="2" enum="CallMode">
</constant>
+ <constant name="CALL_MODE_BASIC_TYPE" value="3" enum="CallMode">
+ </constant>
</constants>
</class>
diff --git a/platform/android/android_keys_utils.h b/platform/android/android_keys_utils.h
index 857bef02d1..a10afa1df8 100644
--- a/platform/android/android_keys_utils.h
+++ b/platform/android/android_keys_utils.h
@@ -31,130 +31,9 @@
#ifndef ANDROID_KEYS_UTILS_H
#define ANDROID_KEYS_UTILS_H
+#include <android/input.h>
#include <core/os/keyboard.h>
-/*
- * Android Key codes.
- */
-enum {
- AKEYCODE_UNKNOWN = 0,
- AKEYCODE_SOFT_LEFT = 1,
- AKEYCODE_SOFT_RIGHT = 2,
- AKEYCODE_HOME = 3,
- AKEYCODE_BACK = 4,
- AKEYCODE_CALL = 5,
- AKEYCODE_ENDCALL = 6,
- AKEYCODE_0 = 7,
- AKEYCODE_1 = 8,
- AKEYCODE_2 = 9,
- AKEYCODE_3 = 10,
- AKEYCODE_4 = 11,
- AKEYCODE_5 = 12,
- AKEYCODE_6 = 13,
- AKEYCODE_7 = 14,
- AKEYCODE_8 = 15,
- AKEYCODE_9 = 16,
- AKEYCODE_STAR = 17,
- AKEYCODE_POUND = 18,
- AKEYCODE_DPAD_UP = 19,
- AKEYCODE_DPAD_DOWN = 20,
- AKEYCODE_DPAD_LEFT = 21,
- AKEYCODE_DPAD_RIGHT = 22,
- AKEYCODE_DPAD_CENTER = 23,
- AKEYCODE_VOLUME_UP = 24,
- AKEYCODE_VOLUME_DOWN = 25,
- AKEYCODE_POWER = 26,
- AKEYCODE_CAMERA = 27,
- AKEYCODE_CLEAR = 28,
- AKEYCODE_A = 29,
- AKEYCODE_B = 30,
- AKEYCODE_C = 31,
- AKEYCODE_D = 32,
- AKEYCODE_E = 33,
- AKEYCODE_F = 34,
- AKEYCODE_G = 35,
- AKEYCODE_H = 36,
- AKEYCODE_I = 37,
- AKEYCODE_J = 38,
- AKEYCODE_K = 39,
- AKEYCODE_L = 40,
- AKEYCODE_M = 41,
- AKEYCODE_N = 42,
- AKEYCODE_O = 43,
- AKEYCODE_P = 44,
- AKEYCODE_Q = 45,
- AKEYCODE_R = 46,
- AKEYCODE_S = 47,
- AKEYCODE_T = 48,
- AKEYCODE_U = 49,
- AKEYCODE_V = 50,
- AKEYCODE_W = 51,
- AKEYCODE_X = 52,
- AKEYCODE_Y = 53,
- AKEYCODE_Z = 54,
- AKEYCODE_COMMA = 55,
- AKEYCODE_PERIOD = 56,
- AKEYCODE_ALT_LEFT = 57,
- AKEYCODE_ALT_RIGHT = 58,
- AKEYCODE_SHIFT_LEFT = 59,
- AKEYCODE_SHIFT_RIGHT = 60,
- AKEYCODE_TAB = 61,
- AKEYCODE_SPACE = 62,
- AKEYCODE_SYM = 63,
- AKEYCODE_EXPLORER = 64,
- AKEYCODE_ENVELOPE = 65,
- AKEYCODE_ENTER = 66,
- AKEYCODE_DEL = 67,
- AKEYCODE_GRAVE = 68,
- AKEYCODE_MINUS = 69,
- AKEYCODE_EQUALS = 70,
- AKEYCODE_LEFT_BRACKET = 71,
- AKEYCODE_RIGHT_BRACKET = 72,
- AKEYCODE_BACKSLASH = 73,
- AKEYCODE_SEMICOLON = 74,
- AKEYCODE_APOSTROPHE = 75,
- AKEYCODE_SLASH = 76,
- AKEYCODE_AT = 77,
- AKEYCODE_NUM = 78,
- AKEYCODE_HEADSETHOOK = 79,
- AKEYCODE_FOCUS = 80, // *Camera* focus
- AKEYCODE_PLUS = 81,
- AKEYCODE_MENU = 82,
- AKEYCODE_NOTIFICATION = 83,
- AKEYCODE_SEARCH = 84,
- AKEYCODE_MEDIA_PLAY_PAUSE = 85,
- AKEYCODE_MEDIA_STOP = 86,
- AKEYCODE_MEDIA_NEXT = 87,
- AKEYCODE_MEDIA_PREVIOUS = 88,
- AKEYCODE_MEDIA_REWIND = 89,
- AKEYCODE_MEDIA_FAST_FORWARD = 90,
- AKEYCODE_MUTE = 91,
- AKEYCODE_PAGE_UP = 92,
- AKEYCODE_PAGE_DOWN = 93,
- AKEYCODE_PICTSYMBOLS = 94,
- AKEYCODE_SWITCH_CHARSET = 95,
- AKEYCODE_BUTTON_A = 96,
- AKEYCODE_BUTTON_B = 97,
- AKEYCODE_BUTTON_C = 98,
- AKEYCODE_BUTTON_X = 99,
- AKEYCODE_BUTTON_Y = 100,
- AKEYCODE_BUTTON_Z = 101,
- AKEYCODE_BUTTON_L1 = 102,
- AKEYCODE_BUTTON_R1 = 103,
- AKEYCODE_BUTTON_L2 = 104,
- AKEYCODE_BUTTON_R2 = 105,
- AKEYCODE_BUTTON_THUMBL = 106,
- AKEYCODE_BUTTON_THUMBR = 107,
- AKEYCODE_BUTTON_START = 108,
- AKEYCODE_BUTTON_SELECT = 109,
- AKEYCODE_BUTTON_MODE = 110,
- AKEYCODE_CONTROL_LEFT = 113,
- AKEYCODE_CONTROL_RIGHT = 114,
-
- // NOTE: If you add a new keycode here you must also add it to several other files.
- // Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list.
-};
-
struct _WinTranslatePair {
unsigned int keysym;
unsigned int keycode;
@@ -248,8 +127,8 @@ static _WinTranslatePair _ak_to_keycode[] = {
{ KEY_BACKSLASH, AKEYCODE_BACKSLASH },
{ KEY_BRACKETLEFT, AKEYCODE_LEFT_BRACKET },
{ KEY_BRACKETRIGHT, AKEYCODE_RIGHT_BRACKET },
- { KEY_CONTROL, AKEYCODE_CONTROL_LEFT },
- { KEY_CONTROL, AKEYCODE_CONTROL_RIGHT },
+ { KEY_CONTROL, AKEYCODE_CTRL_LEFT },
+ { KEY_CONTROL, AKEYCODE_CTRL_RIGHT },
{ KEY_UNKNOWN, 0 }
};
/*
diff --git a/platform/android/display_server_android.cpp b/platform/android/display_server_android.cpp
index 23452b2833..d6d64b0265 100644
--- a/platform/android/display_server_android.cpp
+++ b/platform/android/display_server_android.cpp
@@ -36,6 +36,8 @@
#include "java_godot_wrapper.h"
#include "os_android.h"
+#include <android/input.h>
+
#if defined(VULKAN_ENABLED)
#include "drivers/vulkan/rendering_device_vulkan.h"
#include "platform/android/vulkan/vulkan_context_android.h"
@@ -55,7 +57,7 @@ bool DisplayServerAndroid::has_feature(Feature p_feature) const {
//case FEATURE_HIDPI:
//case FEATURE_ICON:
//case FEATURE_IME:
- //case FEATURE_MOUSE:
+ case FEATURE_MOUSE:
//case FEATURE_MOUSE_WARP:
//case FEATURE_NATIVE_DIALOG:
//case FEATURE_NATIVE_ICON:
@@ -343,7 +345,7 @@ void DisplayServerAndroid::alert(const String &p_alert, const String &p_title) {
}
void DisplayServerAndroid::process_events() {
- // Nothing to do
+ Input::get_singleton()->flush_accumulated_events();
}
Vector<String> DisplayServerAndroid::get_rendering_drivers_func() {
@@ -398,6 +400,8 @@ DisplayServerAndroid::DisplayServerAndroid(const String &p_rendering_driver, Dis
keep_screen_on = GLOBAL_GET("display/window/energy_saving/keep_screen_on");
+ buttons_state = 0;
+
#if defined(OPENGL_ENABLED)
if (rendering_driver == "opengl") {
bool gl_initialization_error = false;
@@ -532,12 +536,12 @@ void DisplayServerAndroid::process_key_event(int p_keycode, int p_scancode, int
OS_Android::get_singleton()->main_loop_request_go_back();
}
- Input::get_singleton()->parse_input_event(ev);
+ Input::get_singleton()->accumulate_input_event(ev);
}
-void DisplayServerAndroid::process_touch(int p_what, int p_pointer, const Vector<DisplayServerAndroid::TouchPos> &p_points) {
- switch (p_what) {
- case 0: { //gesture begin
+void DisplayServerAndroid::process_touch(int p_event, int p_pointer, const Vector<DisplayServerAndroid::TouchPos> &p_points) {
+ switch (p_event) {
+ case AMOTION_EVENT_ACTION_DOWN: { //gesture begin
if (touch.size()) {
//end all if exist
for (int i = 0; i < touch.size(); i++) {
@@ -546,7 +550,7 @@ void DisplayServerAndroid::process_touch(int p_what, int p_pointer, const Vector
ev->set_index(touch[i].id);
ev->set_pressed(false);
ev->set_position(touch[i].pos);
- Input::get_singleton()->parse_input_event(ev);
+ Input::get_singleton()->accumulate_input_event(ev);
}
}
@@ -563,11 +567,11 @@ void DisplayServerAndroid::process_touch(int p_what, int p_pointer, const Vector
ev->set_index(touch[i].id);
ev->set_pressed(true);
ev->set_position(touch[i].pos);
- Input::get_singleton()->parse_input_event(ev);
+ Input::get_singleton()->accumulate_input_event(ev);
}
} break;
- case 1: { //motion
+ case AMOTION_EVENT_ACTION_MOVE: { //motion
ERR_FAIL_COND(touch.size() != p_points.size());
for (int i = 0; i < touch.size(); i++) {
@@ -589,12 +593,13 @@ void DisplayServerAndroid::process_touch(int p_what, int p_pointer, const Vector
ev->set_index(touch[i].id);
ev->set_position(p_points[idx].pos);
ev->set_relative(p_points[idx].pos - touch[i].pos);
- Input::get_singleton()->parse_input_event(ev);
+ Input::get_singleton()->accumulate_input_event(ev);
touch.write[i].pos = p_points[idx].pos;
}
} break;
- case 2: { //release
+ case AMOTION_EVENT_ACTION_CANCEL:
+ case AMOTION_EVENT_ACTION_UP: { //release
if (touch.size()) {
//end all if exist
for (int i = 0; i < touch.size(); i++) {
@@ -603,12 +608,12 @@ void DisplayServerAndroid::process_touch(int p_what, int p_pointer, const Vector
ev->set_index(touch[i].id);
ev->set_pressed(false);
ev->set_position(touch[i].pos);
- Input::get_singleton()->parse_input_event(ev);
+ Input::get_singleton()->accumulate_input_event(ev);
}
touch.clear();
}
} break;
- case 3: { // add touch
+ case AMOTION_EVENT_ACTION_POINTER_DOWN: { // add touch
for (int i = 0; i < p_points.size(); i++) {
if (p_points[i].id == p_pointer) {
TouchPos tp = p_points[i];
@@ -620,13 +625,13 @@ void DisplayServerAndroid::process_touch(int p_what, int p_pointer, const Vector
ev->set_index(tp.id);
ev->set_pressed(true);
ev->set_position(tp.pos);
- Input::get_singleton()->parse_input_event(ev);
+ Input::get_singleton()->accumulate_input_event(ev);
break;
}
}
} break;
- case 4: { // remove touch
+ case AMOTION_EVENT_ACTION_POINTER_UP: { // remove touch
for (int i = 0; i < touch.size(); i++) {
if (touch[i].id == p_pointer) {
Ref<InputEventScreenTouch> ev;
@@ -634,7 +639,7 @@ void DisplayServerAndroid::process_touch(int p_what, int p_pointer, const Vector
ev->set_index(touch[i].id);
ev->set_pressed(false);
ev->set_position(touch[i].pos);
- Input::get_singleton()->parse_input_event(ev);
+ Input::get_singleton()->accumulate_input_event(ev);
touch.remove(i);
break;
@@ -647,30 +652,116 @@ void DisplayServerAndroid::process_touch(int p_what, int p_pointer, const Vector
void DisplayServerAndroid::process_hover(int p_type, Point2 p_pos) {
// https://developer.android.com/reference/android/view/MotionEvent.html#ACTION_HOVER_ENTER
switch (p_type) {
- case 7: // hover move
- case 9: // hover enter
- case 10: { // hover exit
+ case AMOTION_EVENT_ACTION_HOVER_MOVE: // hover move
+ case AMOTION_EVENT_ACTION_HOVER_ENTER: // hover enter
+ case AMOTION_EVENT_ACTION_HOVER_EXIT: { // hover exit
Ref<InputEventMouseMotion> ev;
ev.instance();
_set_key_modifier_state(ev);
ev->set_position(p_pos);
ev->set_global_position(p_pos);
ev->set_relative(p_pos - hover_prev_pos);
- Input::get_singleton()->parse_input_event(ev);
+ Input::get_singleton()->accumulate_input_event(ev);
hover_prev_pos = p_pos;
} break;
}
}
-void DisplayServerAndroid::process_double_tap(Point2 p_pos) {
+void DisplayServerAndroid::process_mouse_event(int event_action, int event_android_buttons_mask, Point2 event_pos, float event_vertical_factor, float event_horizontal_factor) {
+ int event_buttons_mask = _android_button_mask_to_godot_button_mask(event_android_buttons_mask);
+ switch (event_action) {
+ case AMOTION_EVENT_ACTION_BUTTON_PRESS:
+ case AMOTION_EVENT_ACTION_BUTTON_RELEASE: {
+ Ref<InputEventMouseButton> ev;
+ ev.instance();
+ _set_key_modifier_state(ev);
+ ev->set_position(event_pos);
+ ev->set_global_position(event_pos);
+ ev->set_pressed(event_action == AMOTION_EVENT_ACTION_BUTTON_PRESS);
+ int changed_button_mask = buttons_state ^ event_buttons_mask;
+
+ buttons_state = event_buttons_mask;
+
+ ev->set_button_index(_button_index_from_mask(changed_button_mask));
+ ev->set_button_mask(event_buttons_mask);
+ Input::get_singleton()->accumulate_input_event(ev);
+ } break;
+
+ case AMOTION_EVENT_ACTION_MOVE: {
+ Ref<InputEventMouseMotion> ev;
+ ev.instance();
+ _set_key_modifier_state(ev);
+ ev->set_position(event_pos);
+ ev->set_global_position(event_pos);
+ ev->set_relative(event_pos - hover_prev_pos);
+ ev->set_button_mask(event_buttons_mask);
+ Input::get_singleton()->accumulate_input_event(ev);
+ hover_prev_pos = event_pos;
+ } break;
+ case AMOTION_EVENT_ACTION_SCROLL: {
+ Ref<InputEventMouseButton> ev;
+ ev.instance();
+ ev->set_position(event_pos);
+ ev->set_global_position(event_pos);
+ ev->set_pressed(true);
+ buttons_state = event_buttons_mask;
+ if (event_vertical_factor > 0) {
+ _wheel_button_click(event_buttons_mask, ev, BUTTON_WHEEL_UP, event_vertical_factor);
+ } else if (event_vertical_factor < 0) {
+ _wheel_button_click(event_buttons_mask, ev, BUTTON_WHEEL_DOWN, -event_vertical_factor);
+ }
+
+ if (event_horizontal_factor > 0) {
+ _wheel_button_click(event_buttons_mask, ev, BUTTON_WHEEL_RIGHT, event_horizontal_factor);
+ } else if (event_horizontal_factor < 0) {
+ _wheel_button_click(event_buttons_mask, ev, BUTTON_WHEEL_LEFT, -event_horizontal_factor);
+ }
+ } break;
+ }
+}
+
+void DisplayServerAndroid::_wheel_button_click(int event_buttons_mask, const Ref<InputEventMouseButton> &ev, int wheel_button, float factor) {
+ Ref<InputEventMouseButton> evd = ev->duplicate();
+ _set_key_modifier_state(evd);
+ evd->set_button_index(wheel_button);
+ evd->set_button_mask(event_buttons_mask ^ (1 << (wheel_button - 1)));
+ evd->set_factor(factor);
+ Input::get_singleton()->accumulate_input_event(evd);
+ Ref<InputEventMouseButton> evdd = evd->duplicate();
+ evdd->set_pressed(false);
+ evdd->set_button_mask(event_buttons_mask);
+ Input::get_singleton()->accumulate_input_event(evdd);
+}
+
+void DisplayServerAndroid::process_double_tap(int event_android_button_mask, Point2 p_pos) {
+ int event_button_mask = _android_button_mask_to_godot_button_mask(event_android_button_mask);
Ref<InputEventMouseButton> ev;
ev.instance();
_set_key_modifier_state(ev);
ev->set_position(p_pos);
ev->set_global_position(p_pos);
- ev->set_pressed(false);
+ ev->set_pressed(event_button_mask != 0);
+ ev->set_button_index(_button_index_from_mask(event_button_mask));
+ ev->set_button_mask(event_button_mask);
ev->set_doubleclick(true);
- Input::get_singleton()->parse_input_event(ev);
+ Input::get_singleton()->accumulate_input_event(ev);
+}
+
+int DisplayServerAndroid::_button_index_from_mask(int button_mask) {
+ switch (button_mask) {
+ case BUTTON_MASK_LEFT:
+ return BUTTON_LEFT;
+ case BUTTON_MASK_RIGHT:
+ return BUTTON_RIGHT;
+ case BUTTON_MASK_MIDDLE:
+ return BUTTON_MIDDLE;
+ case BUTTON_MASK_XBUTTON1:
+ return BUTTON_XBUTTON1;
+ case BUTTON_MASK_XBUTTON2:
+ return BUTTON_XBUTTON2;
+ default:
+ return 0;
+ }
}
void DisplayServerAndroid::process_scroll(Point2 p_pos) {
@@ -679,7 +770,7 @@ void DisplayServerAndroid::process_scroll(Point2 p_pos) {
_set_key_modifier_state(ev);
ev->set_position(p_pos);
ev->set_delta(p_pos - scroll_prev_pos);
- Input::get_singleton()->parse_input_event(ev);
+ Input::get_singleton()->accumulate_input_event(ev);
scroll_prev_pos = p_pos;
}
@@ -698,3 +789,32 @@ void DisplayServerAndroid::process_magnetometer(const Vector3 &p_magnetometer) {
void DisplayServerAndroid::process_gyroscope(const Vector3 &p_gyroscope) {
Input::get_singleton()->set_gyroscope(p_gyroscope);
}
+
+Point2i DisplayServerAndroid::mouse_get_position() const {
+ return hover_prev_pos;
+}
+
+int DisplayServerAndroid::mouse_get_button_state() const {
+ return buttons_state;
+}
+
+int DisplayServerAndroid::_android_button_mask_to_godot_button_mask(int android_button_mask) {
+ int godot_button_mask = 0;
+ if (android_button_mask & AMOTION_EVENT_BUTTON_PRIMARY) {
+ godot_button_mask |= BUTTON_MASK_LEFT;
+ }
+ if (android_button_mask & AMOTION_EVENT_BUTTON_SECONDARY) {
+ godot_button_mask |= BUTTON_MASK_RIGHT;
+ }
+ if (android_button_mask & AMOTION_EVENT_BUTTON_TERTIARY) {
+ godot_button_mask |= BUTTON_MASK_MIDDLE;
+ }
+ if (android_button_mask & AMOTION_EVENT_BUTTON_BACK) {
+ godot_button_mask |= BUTTON_MASK_XBUTTON1;
+ }
+ if (android_button_mask & AMOTION_EVENT_BUTTON_SECONDARY) {
+ godot_button_mask |= BUTTON_MASK_XBUTTON2;
+ }
+
+ return godot_button_mask;
+}
diff --git a/platform/android/display_server_android.h b/platform/android/display_server_android.h
index 5cdc69ee83..aa5a2c1185 100644
--- a/platform/android/display_server_android.h
+++ b/platform/android/display_server_android.h
@@ -68,6 +68,8 @@ private:
bool control_mem = false;
bool meta_mem = false;
+ int buttons_state;
+
bool keep_screen_on;
Vector<TouchPos> touch;
@@ -91,6 +93,12 @@ private:
void _set_key_modifier_state(Ref<InputEventWithModifiers> ev);
+ static int _button_index_from_mask(int button_mask);
+
+ static int _android_button_mask_to_godot_button_mask(int android_button_mask);
+
+ void _wheel_button_click(int event_buttons_mask, const Ref<InputEventMouseButton> &ev, int wheel_button, float factor);
+
public:
static DisplayServerAndroid *get_singleton();
@@ -162,9 +170,10 @@ public:
void process_gravity(const Vector3 &p_gravity);
void process_magnetometer(const Vector3 &p_magnetometer);
void process_gyroscope(const Vector3 &p_gyroscope);
- void process_touch(int p_what, int p_pointer, const Vector<TouchPos> &p_points);
+ void process_touch(int p_event, int p_pointer, const Vector<TouchPos> &p_points);
void process_hover(int p_type, Point2 p_pos);
- void process_double_tap(Point2 p_pos);
+ void process_mouse_event(int event_action, int event_android_buttons_mask, Point2 event_pos, float event_vertical_factor = 0, float event_horizontal_factor = 0);
+ void process_double_tap(int event_android_button_mask, Point2 p_pos);
void process_scroll(Point2 p_pos);
void process_joy_event(JoypadEvent p_event);
void process_key_event(int p_keycode, int p_scancode, int p_unicode_char, bool p_pressed);
@@ -175,6 +184,9 @@ public:
void reset_window();
+ virtual Point2i mouse_get_position() const;
+ virtual int mouse_get_button_state() const;
+
DisplayServerAndroid(const String &p_rendering_driver, WindowMode p_mode, uint32_t p_flags, const Vector2i &p_resolution, Error &r_error);
~DisplayServerAndroid();
};
diff --git a/platform/android/java/app/build.gradle b/platform/android/java/app/build.gradle
index ceacfec9e1..6de1d2dd30 100644
--- a/platform/android/java/app/build.gradle
+++ b/platform/android/java/app/build.gradle
@@ -70,8 +70,8 @@ android {
buildToolsVersion versions.buildTools
compileOptions {
- sourceCompatibility 1.8
- targetCompatibility 1.8
+ sourceCompatibility versions.javaVersion
+ targetCompatibility versions.javaVersion
}
defaultConfig {
diff --git a/platform/android/java/app/config.gradle b/platform/android/java/app/config.gradle
index d1176e6196..e6c45b73a7 100644
--- a/platform/android/java/app/config.gradle
+++ b/platform/android/java/app/config.gradle
@@ -1,12 +1,13 @@
ext.versions = [
- androidGradlePlugin: '3.5.3',
+ androidGradlePlugin: '4.1.0',
compileSdk : 29,
minSdk : 18,
targetSdk : 29,
- buildTools : '29.0.3',
+ buildTools : '30.0.1',
supportCoreUtils : '1.0.0',
- kotlinVersion : '1.3.61',
- v4Support : '1.0.0'
+ kotlinVersion : '1.4.10',
+ v4Support : '1.0.0',
+ javaVersion : 1.8
]
diff --git a/platform/android/java/gradle.properties b/platform/android/java/gradle.properties
index e14cd5ba5c..2dc069ad2f 100644
--- a/platform/android/java/gradle.properties
+++ b/platform/android/java/gradle.properties
@@ -18,3 +18,5 @@ org.gradle.jvmargs=-Xmx1536m
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
+
+org.gradle.warning.mode=all
diff --git a/platform/android/java/gradle/wrapper/gradle-wrapper.properties b/platform/android/java/gradle/wrapper/gradle-wrapper.properties
index f56b0f6a5e..a7d8a0f310 100644
--- a/platform/android/java/gradle/wrapper/gradle-wrapper.properties
+++ b/platform/android/java/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
diff --git a/platform/android/java/lib/build.gradle b/platform/android/java/lib/build.gradle
index 19eee5a315..e3c5a02203 100644
--- a/platform/android/java/lib/build.gradle
+++ b/platform/android/java/lib/build.gradle
@@ -18,6 +18,11 @@ android {
targetSdkVersion versions.targetSdk
}
+ compileOptions {
+ sourceCompatibility versions.javaVersion
+ targetCompatibility versions.javaVersion
+ }
+
lintOptions {
abortOnError false
disable 'MissingTranslation', 'UnusedResources'
@@ -50,15 +55,6 @@ android {
def buildType = variant.buildType.name.capitalize()
- def taskPrefix = ""
- if (project.path != ":") {
- taskPrefix = project.path + ":"
- }
-
- // Disable the externalNativeBuild* task as it would cause build failures since the cmake build
- // files is only setup for editing support.
- gradle.startParameter.excludedTaskNames += taskPrefix + "externalNativeBuild" + buildType
-
def releaseTarget = buildType.toLowerCase()
if (releaseTarget == null || releaseTarget == "") {
throw new GradleException("Invalid build type: " + buildType)
@@ -78,10 +74,4 @@ android {
// Schedule the tasks so the generated libs are present before the aar file is packaged.
tasks["merge${buildType}JniLibFolders"].dependsOn taskName
}
-
- externalNativeBuild {
- cmake {
- path "CMakeLists.txt"
- }
- }
}
diff --git a/platform/android/java/lib/src/org/godotengine/godot/Godot.java b/platform/android/java/lib/src/org/godotengine/godot/Godot.java
index 524f32bf5e..6cf340c418 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/Godot.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/Godot.java
@@ -70,6 +70,7 @@ import android.os.VibrationEffect;
import android.os.Vibrator;
import android.provider.Settings.Secure;
import android.view.Display;
+import android.view.InputDevice;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -854,63 +855,6 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC
}
}
- public boolean gotTouchEvent(final MotionEvent event) {
- final int evcount = event.getPointerCount();
- if (evcount == 0)
- return true;
-
- if (mRenderView != null) {
- final int[] arr = new int[event.getPointerCount() * 3];
-
- for (int i = 0; i < event.getPointerCount(); i++) {
- arr[i * 3 + 0] = (int)event.getPointerId(i);
- arr[i * 3 + 1] = (int)event.getX(i);
- arr[i * 3 + 2] = (int)event.getY(i);
- }
- final int pointer_idx = event.getPointerId(event.getActionIndex());
-
- //System.out.printf("gaction: %d\n",event.getAction());
- final int action = event.getAction() & MotionEvent.ACTION_MASK;
- mRenderView.queueOnRenderThread(new Runnable() {
- @Override
- public void run() {
- switch (action) {
- case MotionEvent.ACTION_DOWN: {
- GodotLib.touch(0, 0, evcount, arr);
- //System.out.printf("action down at: %f,%f\n", event.getX(),event.getY());
- } break;
- case MotionEvent.ACTION_MOVE: {
- GodotLib.touch(1, 0, evcount, arr);
- /*
- for(int i=0;i<event.getPointerCount();i++) {
- System.out.printf("%d - moved to: %f,%f\n",i, event.getX(i),event.getY(i));
- }
- */
- } break;
- case MotionEvent.ACTION_POINTER_UP: {
- GodotLib.touch(4, pointer_idx, evcount, arr);
- //System.out.printf("%d - s.up at: %f,%f\n",pointer_idx, event.getX(pointer_idx),event.getY(pointer_idx));
- } break;
- case MotionEvent.ACTION_POINTER_DOWN: {
- GodotLib.touch(3, pointer_idx, evcount, arr);
- //System.out.printf("%d - s.down at: %f,%f\n",pointer_idx, event.getX(pointer_idx),event.getY(pointer_idx));
- } break;
- case MotionEvent.ACTION_CANCEL:
- case MotionEvent.ACTION_UP: {
- GodotLib.touch(2, 0, evcount, arr);
- /*
- for(int i=0;i<event.getPointerCount();i++) {
- System.out.printf("%d - up! %f,%f\n",i, event.getX(i),event.getY(i));
- }
- */
- } break;
- }
- }
- });
- }
- return true;
- }
-
public boolean onKeyMultiple(final int inKeyCode, int repeatCount, KeyEvent event) {
String s = event.getCharacters();
if (s == null || s.length() == 0)
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java b/platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java
index d169f46599..d731e080c4 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java
@@ -29,7 +29,6 @@
/*************************************************************************/
package org.godotengine.godot;
-
import org.godotengine.godot.input.GodotGestureHandler;
import org.godotengine.godot.input.GodotInputHandler;
import org.godotengine.godot.utils.GLUtils;
@@ -127,7 +126,7 @@ public class GodotGLRenderView extends GLSurfaceView implements GodotRenderView
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
this.detector.onTouchEvent(event);
- return godot.gotTouchEvent(event);
+ return inputHandler.onTouchEvent(event);
}
@Override
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java b/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java
index 318e2816ff..6ccbe91e60 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java
@@ -94,17 +94,19 @@ public class GodotLib {
/**
* Forward touch events from the main thread to the GL thread.
*/
- public static native void touch(int what, int pointer, int howmany, int[] arr);
+ public static native void touch(int inputDevice, int event, int pointer, int pointerCount, float[] positions);
+ public static native void touch(int inputDevice, int event, int pointer, int pointerCount, float[] positions, int buttonsMask);
+ public static native void touch(int inputDevice, int event, int pointer, int pointerCount, float[] positions, int buttonsMask, float verticalFactor, float horizontalFactor);
/**
* Forward hover events from the main thread to the GL thread.
*/
- public static native void hover(int type, int x, int y);
+ public static native void hover(int type, float x, float y);
/**
* Forward double_tap events from the main thread to the GL thread.
*/
- public static native void doubletap(int x, int y);
+ public static native void doubleTap(int buttonMask, int x, int y);
/**
* Forward scroll events from the main thread to the GL thread.
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java b/platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java
index 65708389c3..6cd5ca7b4e 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java
@@ -38,6 +38,7 @@ import org.godotengine.godot.vulkan.VkSurfaceView;
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.GestureDetector;
+import android.view.InputDevice;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceView;
@@ -100,22 +101,22 @@ public class GodotVulkanRenderView extends VkSurfaceView implements GodotRenderV
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
mGestureDetector.onTouchEvent(event);
- return godot.gotTouchEvent(event);
+ return mInputHandler.onTouchEvent(event);
}
@Override
public boolean onKeyUp(final int keyCode, KeyEvent event) {
- return mInputHandler.onKeyUp(keyCode, event) || super.onKeyUp(keyCode, event);
+ return mInputHandler.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(final int keyCode, KeyEvent event) {
- return mInputHandler.onKeyDown(keyCode, event) || super.onKeyDown(keyCode, event);
+ return mInputHandler.onKeyDown(keyCode, event);
}
@Override
public boolean onGenericMotionEvent(MotionEvent event) {
- return mInputHandler.onGenericMotionEvent(event) || super.onGenericMotionEvent(event);
+ return mInputHandler.onGenericMotionEvent(event);
}
@Override
diff --git a/platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.java b/platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.java
index 1c9a683bbd..fb151fa504 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.java
@@ -33,7 +33,6 @@ package org.godotengine.godot.input;
import org.godotengine.godot.GodotLib;
import org.godotengine.godot.GodotRenderView;
-import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
@@ -75,10 +74,11 @@ public class GodotGestureHandler extends GestureDetector.SimpleOnGestureListener
//Log.i("GodotGesture", "onDoubleTap");
final int x = Math.round(event.getX());
final int y = Math.round(event.getY());
+ final int buttonMask = event.getButtonState();
queueEvent(new Runnable() {
@Override
public void run() {
- GodotLib.doubletap(x, y);
+ GodotLib.doubleTap(buttonMask, x, y);
}
});
return true;
diff --git a/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java b/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java
index 9abd65cc67..f3e985f944 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java
@@ -36,6 +36,7 @@ import org.godotengine.godot.GodotLib;
import org.godotengine.godot.GodotRenderView;
import org.godotengine.godot.input.InputManagerCompat.InputDeviceListener;
+import android.os.Build;
import android.util.Log;
import android.view.InputDevice;
import android.view.InputDevice.MotionRange;
@@ -156,6 +157,53 @@ public class GodotInputHandler implements InputDeviceListener {
return true;
}
+ public boolean onTouchEvent(final MotionEvent event) {
+ // Mouse drag (mouse pressed and move) doesn't fire onGenericMotionEvent so this is needed
+ if (event.isFromSource(InputDevice.SOURCE_MOUSE)) {
+ if (event.getAction() != MotionEvent.ACTION_MOVE) {
+ // we return true because every time a mouse event is fired, the event is already handled
+ // in onGenericMotionEvent, so by touch event we can say that the event is also handled
+ return true;
+ }
+ return handleMouseEvent(event);
+ }
+
+ final int evcount = event.getPointerCount();
+ if (evcount == 0)
+ return true;
+
+ if (mRenderView != null) {
+ final float[] arr = new float[event.getPointerCount() * 3]; // pointerId1, x1, y1, pointerId2, etc...
+
+ for (int i = 0; i < event.getPointerCount(); i++) {
+ arr[i * 3 + 0] = event.getPointerId(i);
+ arr[i * 3 + 1] = event.getX(i);
+ arr[i * 3 + 2] = event.getY(i);
+ }
+ final int action = event.getActionMasked();
+
+ mRenderView.queueOnRenderThread(new Runnable() {
+ @Override
+ public void run() {
+ switch (action) {
+ case MotionEvent.ACTION_DOWN:
+ case MotionEvent.ACTION_CANCEL:
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_MOVE: {
+ GodotLib.touch(event.getSource(), action, 0, evcount, arr);
+ } break;
+ case MotionEvent.ACTION_POINTER_UP:
+ case MotionEvent.ACTION_POINTER_DOWN: {
+ int pointer_idx = event.getPointerId(event.getActionIndex());
+ GodotLib.touch(event.getSource(), action, pointer_idx, evcount, arr);
+ } break;
+ }
+ }
+ });
+ }
+ return true;
+ }
+
public boolean onGenericMotionEvent(MotionEvent event) {
if ((event.getSource() & InputDevice.SOURCE_JOYSTICK) == InputDevice.SOURCE_JOYSTICK && event.getAction() == MotionEvent.ACTION_MOVE) {
final int device_id = findJoystickDevice(event.getDeviceId());
@@ -189,8 +237,8 @@ public class GodotInputHandler implements InputDeviceListener {
return true;
}
} else if ((event.getSource() & InputDevice.SOURCE_STYLUS) == InputDevice.SOURCE_STYLUS) {
- final int x = Math.round(event.getX());
- final int y = Math.round(event.getY());
+ final float x = event.getX();
+ final float y = event.getY();
final int type = event.getAction();
queueEvent(new Runnable() {
@Override
@@ -199,6 +247,10 @@ public class GodotInputHandler implements InputDeviceListener {
}
});
return true;
+ } else if ((event.getSource() & InputDevice.SOURCE_MOUSE) == InputDevice.SOURCE_MOUSE) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ return handleMouseEvent(event);
+ }
}
return false;
@@ -366,4 +418,53 @@ public class GodotInputHandler implements InputDeviceListener {
return -1;
}
+
+ private boolean handleMouseEvent(final MotionEvent event) {
+ switch (event.getActionMasked()) {
+ case MotionEvent.ACTION_HOVER_ENTER:
+ case MotionEvent.ACTION_HOVER_MOVE:
+ case MotionEvent.ACTION_HOVER_EXIT: {
+ final float x = event.getX();
+ final float y = event.getY();
+ final int type = event.getAction();
+ queueEvent(new Runnable() {
+ @Override
+ public void run() {
+ GodotLib.hover(type, x, y);
+ }
+ });
+ return true;
+ }
+ case MotionEvent.ACTION_BUTTON_PRESS:
+ case MotionEvent.ACTION_BUTTON_RELEASE:
+ case MotionEvent.ACTION_MOVE: {
+ final float x = event.getX();
+ final float y = event.getY();
+ final int buttonsMask = event.getButtonState();
+ final int action = event.getAction();
+ queueEvent(new Runnable() {
+ @Override
+ public void run() {
+ GodotLib.touch(event.getSource(), action, 0, 1, new float[] { 0, x, y }, buttonsMask);
+ }
+ });
+ return true;
+ }
+ case MotionEvent.ACTION_SCROLL: {
+ final float x = event.getX();
+ final float y = event.getY();
+ final int buttonsMask = event.getButtonState();
+ final int action = event.getAction();
+ final float verticalFactor = event.getAxisValue(MotionEvent.AXIS_VSCROLL);
+ final float horizontalFactor = event.getAxisValue(MotionEvent.AXIS_HSCROLL);
+ queueEvent(new Runnable() {
+ @Override
+ public void run() {
+ GodotLib.touch(event.getSource(), action, 0, 1, new float[] { 0, x, y }, buttonsMask, verticalFactor, horizontalFactor);
+ }
+ });
+ }
+ }
+ return false;
+ }
}
diff --git a/platform/android/java/nativeSrcsConfigs/AndroidManifest.xml b/platform/android/java/nativeSrcsConfigs/AndroidManifest.xml
new file mode 100644
index 0000000000..dc180375d5
--- /dev/null
+++ b/platform/android/java/nativeSrcsConfigs/AndroidManifest.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest package="org.godotengine.godot" />
diff --git a/platform/android/java/lib/CMakeLists.txt b/platform/android/java/nativeSrcsConfigs/CMakeLists.txt
index d3bdf6a5f2..34925684da 100644
--- a/platform/android/java/lib/CMakeLists.txt
+++ b/platform/android/java/nativeSrcsConfigs/CMakeLists.txt
@@ -1,3 +1,4 @@
+# Non functional cmake build file used to provide Android Studio editor support to the project.
cmake_minimum_required(VERSION 3.6)
project(godot)
diff --git a/platform/android/java/nativeSrcsConfigs/README.md b/platform/android/java/nativeSrcsConfigs/README.md
new file mode 100644
index 0000000000..e48505ccda
--- /dev/null
+++ b/platform/android/java/nativeSrcsConfigs/README.md
@@ -0,0 +1,4 @@
+## Native sources configs
+
+This is a non functional Android library used to provide Android Studio editor support to the Godot project native files.
+Nothing else should be added to this library.
diff --git a/platform/android/java/nativeSrcsConfigs/build.gradle b/platform/android/java/nativeSrcsConfigs/build.gradle
new file mode 100644
index 0000000000..65b7bb9dc9
--- /dev/null
+++ b/platform/android/java/nativeSrcsConfigs/build.gradle
@@ -0,0 +1,54 @@
+// Non functional android library used to provide Android Studio editor support to the project.
+plugins {
+ id 'com.android.library'
+}
+
+android {
+ compileSdkVersion versions.compileSdk
+ buildToolsVersion versions.buildTools
+
+ defaultConfig {
+ minSdkVersion versions.minSdk
+ targetSdkVersion versions.targetSdk
+ }
+
+ compileOptions {
+ sourceCompatibility versions.javaVersion
+ targetCompatibility versions.javaVersion
+ }
+
+ packagingOptions {
+ exclude 'META-INF/LICENSE'
+ exclude 'META-INF/NOTICE'
+
+ // Should be uncommented for development purpose within Android Studio
+ // doNotStrip '**/*.so'
+ }
+
+ sourceSets {
+ main {
+ manifest.srcFile 'AndroidManifest.xml'
+ }
+ }
+
+ externalNativeBuild {
+ cmake {
+ path "CMakeLists.txt"
+ }
+ }
+
+ libraryVariants.all { variant ->
+ def buildType = variant.buildType.name.capitalize()
+
+ def taskPrefix = ""
+ if (project.path != ":") {
+ taskPrefix = project.path + ":"
+ }
+
+ // Disable the externalNativeBuild* task as it would cause build failures since the cmake build
+ // files is only setup for editing support.
+ gradle.startParameter.excludedTaskNames += taskPrefix + "externalNativeBuild" + buildType
+ }
+}
+
+dependencies {}
diff --git a/platform/android/java/settings.gradle b/platform/android/java/settings.gradle
index f6921c70aa..524031d93f 100644
--- a/platform/android/java/settings.gradle
+++ b/platform/android/java/settings.gradle
@@ -3,3 +3,4 @@ rootProject.name = "Godot"
include ':app'
include ':lib'
+include ':nativeSrcsConfigs'
diff --git a/platform/android/java_godot_lib_jni.cpp b/platform/android/java_godot_lib_jni.cpp
index 4610b94363..35bd53a958 100644
--- a/platform/android/java_godot_lib_jni.cpp
+++ b/platform/android/java_godot_lib_jni.cpp
@@ -51,6 +51,7 @@
#include "string_android.h"
#include "thread_jandroid.h"
+#include <android/input.h>
#include <unistd.h>
#include <android/native_window_jni.h>
@@ -237,40 +238,51 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env, jcl
}
}
-JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_touch(JNIEnv *env, jclass clazz, jint ev, jint pointer, jint count, jintArray positions) {
+void touch_preprocessing(JNIEnv *env, jclass clazz, jint input_device, jint ev, jint pointer, jint pointer_count, jfloatArray positions, jint buttons_mask, jfloat vertical_factor, jfloat horizontal_factor) {
if (step == 0)
return;
Vector<DisplayServerAndroid::TouchPos> points;
- for (int i = 0; i < count; i++) {
- jint p[3];
- env->GetIntArrayRegion(positions, i * 3, 3, p);
+ for (int i = 0; i < pointer_count; i++) {
+ jfloat p[3];
+ env->GetFloatArrayRegion(positions, i * 3, 3, p);
DisplayServerAndroid::TouchPos tp;
tp.pos = Point2(p[1], p[2]);
- tp.id = p[0];
+ tp.id = (int)p[0];
points.push_back(tp);
}
- DisplayServerAndroid::get_singleton()->process_touch(ev, pointer, points);
+ if ((input_device & AINPUT_SOURCE_MOUSE) == AINPUT_SOURCE_MOUSE) {
+ DisplayServerAndroid::get_singleton()->process_mouse_event(ev, buttons_mask, points[0].pos, vertical_factor, horizontal_factor);
+ } else {
+ DisplayServerAndroid::get_singleton()->process_touch(ev, pointer, points);
+ }
+}
+
+JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_touch__IIII_3F(JNIEnv *env, jclass clazz, jint input_device, jint ev, jint pointer, jint pointer_count, jfloatArray position) {
+ touch_preprocessing(env, clazz, input_device, ev, pointer, pointer_count, position);
+}
+
+JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_touch__IIII_3FI(JNIEnv *env, jclass clazz, jint input_device, jint ev, jint pointer, jint pointer_count, jfloatArray position, jint buttons_mask) {
+ touch_preprocessing(env, clazz, input_device, ev, pointer, pointer_count, position, buttons_mask);
+}
- /*
- if (os_android)
- os_android->process_touch(ev,pointer,points);
- */
+JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_touch__IIII_3FIFF(JNIEnv *env, jclass clazz, jint input_device, jint ev, jint pointer, jint pointer_count, jfloatArray position, jint buttons_mask, jfloat vertical_factor, jfloat horizontal_factor) {
+ touch_preprocessing(env, clazz, input_device, ev, pointer, pointer_count, position, buttons_mask, vertical_factor, horizontal_factor);
}
-JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_hover(JNIEnv *env, jclass clazz, jint p_type, jint p_x, jint p_y) {
+JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_hover(JNIEnv *env, jclass clazz, jint p_type, jfloat p_x, jfloat p_y) {
if (step == 0)
return;
DisplayServerAndroid::get_singleton()->process_hover(p_type, Point2(p_x, p_y));
}
-JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_doubletap(JNIEnv *env, jclass clazz, jint p_x, jint p_y) {
+JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_doubleTap(JNIEnv *env, jclass clazz, jint p_button_mask, jint p_x, jint p_y) {
if (step == 0)
return;
- DisplayServerAndroid::get_singleton()->process_double_tap(Point2(p_x, p_y));
+ DisplayServerAndroid::get_singleton()->process_double_tap(p_button_mask, Point2(p_x, p_y));
}
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_scroll(JNIEnv *env, jclass clazz, jint p_x, jint p_y) {
diff --git a/platform/android/java_godot_lib_jni.h b/platform/android/java_godot_lib_jni.h
index 07584518e5..b499f6dfa1 100644
--- a/platform/android/java_godot_lib_jni.h
+++ b/platform/android/java_godot_lib_jni.h
@@ -44,9 +44,12 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_resize(JNIEnv *env, j
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_newcontext(JNIEnv *env, jclass clazz, jobject p_surface, jboolean p_32_bits);
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env, jclass clazz);
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_back(JNIEnv *env, jclass clazz);
-JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_touch(JNIEnv *env, jclass clazz, jint ev, jint pointer, jint count, jintArray positions);
-JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_hover(JNIEnv *env, jclass clazz, jint p_type, jint p_x, jint p_y);
-JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_doubletap(JNIEnv *env, jclass clazz, jint p_x, jint p_y);
+void touch_preprocessing(JNIEnv *env, jclass clazz, jint input_device, jint ev, jint pointer, jint pointer_count, jfloatArray positions, jint buttons_mask = 0, jfloat vertical_factor = 0, jfloat horizontal_factor = 0);
+JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_touch__IIII_3F(JNIEnv *env, jclass clazz, jint input_device, jint ev, jint pointer, jint pointer_count, jfloatArray positions);
+JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_touch__IIII_3FI(JNIEnv *env, jclass clazz, jint input_device, jint ev, jint pointer, jint pointer_count, jfloatArray positions, jint buttons_mask);
+JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_touch__IIII_3FIFF(JNIEnv *env, jclass clazz, jint input_device, jint ev, jint pointer, jint pointer_count, jfloatArray positions, jint buttons_mask, jfloat vertical_factor, jfloat horizontal_factor);
+JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_hover(JNIEnv *env, jclass clazz, jint p_type, jfloat p_x, jfloat p_y);
+JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_doubleTap(JNIEnv *env, jclass clazz, jint p_button_mask, jint p_x, jint p_y);
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_scroll(JNIEnv *env, jclass clazz, jint p_x, jint p_y);
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_key(JNIEnv *env, jclass clazz, jint p_keycode, jint p_scancode, jint p_unicode_char, jboolean p_pressed);
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joybutton(JNIEnv *env, jclass clazz, jint p_device, jint p_button, jboolean p_pressed);
diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp
index baf6ee952a..cde3abe20c 100644
--- a/platform/android/os_android.cpp
+++ b/platform/android/os_android.cpp
@@ -153,6 +153,7 @@ void OS_Android::main_loop_begin() {
bool OS_Android::main_loop_iterate() {
if (!main_loop)
return false;
+ DisplayServerAndroid::get_singleton()->process_events();
return Main::iteration();
}
diff --git a/platform/android/vulkan/vulkan_context_android.cpp b/platform/android/vulkan/vulkan_context_android.cpp
index 5fb7a83da4..56ef99dfc7 100644
--- a/platform/android/vulkan/vulkan_context_android.cpp
+++ b/platform/android/vulkan/vulkan_context_android.cpp
@@ -29,6 +29,7 @@
/*************************************************************************/
#include "vulkan_context_android.h"
+
#include <vulkan/vulkan_android.h>
const char *VulkanContextAndroid::_get_platform_surface_extension() const {
diff --git a/platform/iphone/detect.py b/platform/iphone/detect.py
index 5ebabdd3dc..ab453c353f 100644
--- a/platform/iphone/detect.py
+++ b/platform/iphone/detect.py
@@ -119,7 +119,7 @@ def configure(env):
arch_flag = "i386" if env["arch"] == "x86" else env["arch"]
env.Append(
CCFLAGS=(
- "-arch "
+ "-fobjc-arc -arch "
+ arch_flag
+ " -fobjc-abi-version=2 -fobjc-legacy-dispatch -fmessage-length=0 -fpascal-strings -fblocks"
" -fasm-blocks -isysroot $IPHONESDK -mios-simulator-version-min=13.0"
diff --git a/platform/windows/joypad_windows.cpp b/platform/windows/joypad_windows.cpp
index d1454c9096..2a5c8a7763 100644
--- a/platform/windows/joypad_windows.cpp
+++ b/platform/windows/joypad_windows.cpp
@@ -194,7 +194,7 @@ void JoypadWindows::setup_joypad_object(const DIDEVICEOBJECTINSTANCE *ob, int p_
HRESULT res;
DIPROPRANGE prop_range;
DIPROPDWORD dilong;
- DWORD ofs;
+ LONG ofs;
if (ob->guidType == GUID_XAxis)
ofs = DIJOFS_X;
else if (ob->guidType == GUID_YAxis)
@@ -395,7 +395,7 @@ void JoypadWindows::process_joypads() {
// on mingw, these constants are not constants
int count = 8;
- unsigned int axes[] = { DIJOFS_X, DIJOFS_Y, DIJOFS_Z, DIJOFS_RX, DIJOFS_RY, DIJOFS_RZ, DIJOFS_SLIDER(0), DIJOFS_SLIDER(1) };
+ LONG axes[] = { DIJOFS_X, DIJOFS_Y, DIJOFS_Z, DIJOFS_RX, DIJOFS_RY, DIJOFS_RZ, (LONG)DIJOFS_SLIDER(0), (LONG)DIJOFS_SLIDER(1) };
int values[] = { js.lX, js.lY, js.lZ, js.lRx, js.lRy, js.lRz, js.rglSlider[0], js.rglSlider[1] };
for (int j = 0; j < joy->joy_axis.size(); j++) {
diff --git a/platform/windows/joypad_windows.h b/platform/windows/joypad_windows.h
index c961abf0a5..223b44fcd6 100644
--- a/platform/windows/joypad_windows.h
+++ b/platform/windows/joypad_windows.h
@@ -77,7 +77,7 @@ private:
DWORD last_pad;
LPDIRECTINPUTDEVICE8 di_joy;
- List<DWORD> joy_axis;
+ List<LONG> joy_axis;
GUID guid;
dinput_gamepad() {
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index f73516b370..b108d74b2e 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -244,7 +244,7 @@ void OS_Windows::finalize_core() {
}
Error OS_Windows::open_dynamic_library(const String p_path, void *&p_library_handle, bool p_also_set_library_path) {
- String path = p_path;
+ String path = p_path.replace("/", "\\");
if (!FileAccess::exists(path)) {
//this code exists so gdnative can load .dll files from within the executable path
@@ -412,8 +412,10 @@ String OS_Windows::_quote_command_line_argument(const String &p_text) const {
}
Error OS_Windows::execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id, String *r_pipe, int *r_exitcode, bool read_stderr, Mutex *p_pipe_mutex) {
+ String path = p_path.replace("/", "\\");
+
if (p_blocking && r_pipe) {
- String argss = _quote_command_line_argument(p_path);
+ String argss = _quote_command_line_argument(path);
for (const List<String>::Element *E = p_arguments.front(); E; E = E->next()) {
argss += " " + _quote_command_line_argument(E->get());
}
@@ -446,7 +448,7 @@ Error OS_Windows::execute(const String &p_path, const List<String> &p_arguments,
return OK;
}
- String cmdline = _quote_command_line_argument(p_path);
+ String cmdline = _quote_command_line_argument(path);
const List<String>::Element *I = p_arguments.front();
while (I) {
cmdline += " " + _quote_command_line_argument(I->get());
@@ -509,7 +511,7 @@ Error OS_Windows::set_cwd(const String &p_cwd) {
String OS_Windows::get_executable_path() const {
WCHAR bufname[4096];
GetModuleFileNameW(nullptr, bufname, 4096);
- String s = String::utf16((const char16_t *)bufname);
+ String s = String::utf16((const char16_t *)bufname).replace("\\", "/");
return s;
}
diff --git a/scene/2d/animated_sprite_2d.cpp b/scene/2d/animated_sprite_2d.cpp
index 127748cdd5..0f98fad824 100644
--- a/scene/2d/animated_sprite_2d.cpp
+++ b/scene/2d/animated_sprite_2d.cpp
@@ -31,6 +31,7 @@
#include "animated_sprite_2d.h"
#include "core/os/os.h"
+#include "scene/main/viewport.h"
#include "scene/scene_string_names.h"
#ifdef TOOLS_ENABLED
@@ -443,7 +444,7 @@ void AnimatedSprite2D::_notification(int p_what) {
ofs -= s / 2;
}
- if (Engine::get_singleton()->get_use_pixel_snap()) {
+ if (get_viewport() && get_viewport()->is_snap_2d_transforms_to_pixel_enabled()) {
ofs = ofs.floor();
}
Rect2 dst_rect(ofs, s);
diff --git a/scene/2d/canvas_group.cpp b/scene/2d/canvas_group.cpp
new file mode 100644
index 0000000000..39cae8e0c6
--- /dev/null
+++ b/scene/2d/canvas_group.cpp
@@ -0,0 +1,87 @@
+/*************************************************************************/
+/* canvas_group.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 "canvas_group.h"
+
+void CanvasGroup::set_fit_margin(float p_fit_margin) {
+ ERR_FAIL_COND(p_fit_margin < 0.0);
+
+ fit_margin = p_fit_margin;
+ RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RS::CANVAS_GROUP_MODE_TRANSPARENT, clear_margin, true, fit_margin, use_mipmaps);
+
+ update();
+}
+
+float CanvasGroup::get_fit_margin() const {
+ return fit_margin;
+}
+
+void CanvasGroup::set_clear_margin(float p_clear_margin) {
+ ERR_FAIL_COND(p_clear_margin < 0.0);
+
+ clear_margin = p_clear_margin;
+ RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RS::CANVAS_GROUP_MODE_TRANSPARENT, clear_margin, true, clear_margin, use_mipmaps);
+
+ update();
+}
+
+float CanvasGroup::get_clear_margin() const {
+ return clear_margin;
+}
+
+void CanvasGroup::set_use_mipmaps(bool p_use_mipmaps) {
+ use_mipmaps = p_use_mipmaps;
+ RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RS::CANVAS_GROUP_MODE_TRANSPARENT, clear_margin, true, fit_margin, use_mipmaps);
+}
+bool CanvasGroup::is_using_mipmaps() const {
+ return use_mipmaps;
+}
+
+void CanvasGroup::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("set_fit_margin", "fit_margin"), &CanvasGroup::set_fit_margin);
+ ClassDB::bind_method(D_METHOD("get_fit_margin"), &CanvasGroup::get_fit_margin);
+
+ ClassDB::bind_method(D_METHOD("set_clear_margin", "clear_margin"), &CanvasGroup::set_clear_margin);
+ ClassDB::bind_method(D_METHOD("get_clear_margin"), &CanvasGroup::get_clear_margin);
+
+ ClassDB::bind_method(D_METHOD("set_use_mipmaps", "use_mipmaps"), &CanvasGroup::set_use_mipmaps);
+ ClassDB::bind_method(D_METHOD("is_using_mipmaps"), &CanvasGroup::is_using_mipmaps);
+
+ ADD_GROUP("Tweaks", "");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "fit_margin", PROPERTY_HINT_RANGE, "0,1024,1.0,or_greater"), "set_fit_margin", "get_fit_margin");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "clear_margin", PROPERTY_HINT_RANGE, "0,1024,1.0,or_greater"), "set_clear_margin", "get_clear_margin");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_mipmaps"), "set_use_mipmaps", "is_using_mipmaps");
+}
+
+CanvasGroup::CanvasGroup() {
+ set_fit_margin(10.0); //sets things
+}
+CanvasGroup::~CanvasGroup() {
+}
diff --git a/scene/2d/canvas_group.h b/scene/2d/canvas_group.h
new file mode 100644
index 0000000000..19630befc7
--- /dev/null
+++ b/scene/2d/canvas_group.h
@@ -0,0 +1,59 @@
+/*************************************************************************/
+/* canvas_group.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 CANVASGROUP_H
+#define CANVASGROUP_H
+
+#include "scene/2d/node_2d.h"
+
+class CanvasGroup : public Node2D {
+ GDCLASS(CanvasGroup, Node2D)
+ float fit_margin = 10.0;
+ float clear_margin = 10.0;
+ bool use_mipmaps = false;
+
+protected:
+ static void _bind_methods();
+
+public:
+ void set_fit_margin(float p_fit_margin);
+ float get_fit_margin() const;
+
+ void set_clear_margin(float p_clear_margin);
+ float get_clear_margin() const;
+
+ void set_use_mipmaps(bool p_use_mipmaps);
+ bool is_using_mipmaps() const;
+
+ CanvasGroup();
+ ~CanvasGroup();
+};
+
+#endif // CANVASGROUP_H
diff --git a/scene/2d/light_2d.cpp b/scene/2d/light_2d.cpp
index 4fc0882fdd..8e425b62da 100644
--- a/scene/2d/light_2d.cpp
+++ b/scene/2d/light_2d.cpp
@@ -33,54 +33,6 @@
#include "core/engine.h"
#include "servers/rendering_server.h"
-#ifdef TOOLS_ENABLED
-Dictionary Light2D::_edit_get_state() const {
- Dictionary state = Node2D::_edit_get_state();
- state["offset"] = get_texture_offset();
- return state;
-}
-
-void Light2D::_edit_set_state(const Dictionary &p_state) {
- Node2D::_edit_set_state(p_state);
- set_texture_offset(p_state["offset"]);
-}
-
-void Light2D::_edit_set_pivot(const Point2 &p_pivot) {
- set_position(get_transform().xform(p_pivot));
- set_texture_offset(get_texture_offset() - p_pivot);
-}
-
-Point2 Light2D::_edit_get_pivot() const {
- return Vector2();
-}
-
-bool Light2D::_edit_use_pivot() const {
- return true;
-}
-
-Rect2 Light2D::_edit_get_rect() const {
- if (texture.is_null()) {
- return Rect2();
- }
-
- Size2 s = texture->get_size() * _scale;
- return Rect2(texture_offset - s / 2.0, s);
-}
-
-bool Light2D::_edit_use_rect() const {
- return !texture.is_null();
-}
-#endif
-
-Rect2 Light2D::get_anchorable_rect() const {
- if (texture.is_null()) {
- return Rect2();
- }
-
- Size2 s = texture->get_size() * _scale;
- return Rect2(texture_offset - s / 2.0, s);
-}
-
void Light2D::_update_light_visibility() {
if (!is_inside_tree()) {
return;
@@ -123,32 +75,6 @@ bool Light2D::is_editor_only() const {
return editor_only;
}
-void Light2D::set_texture(const Ref<Texture2D> &p_texture) {
- texture = p_texture;
- if (texture.is_valid()) {
- RS::get_singleton()->canvas_light_set_texture(canvas_light, texture->get_rid());
- } else {
- RS::get_singleton()->canvas_light_set_texture(canvas_light, RID());
- }
-
- update_configuration_warning();
-}
-
-Ref<Texture2D> Light2D::get_texture() const {
- return texture;
-}
-
-void Light2D::set_texture_offset(const Vector2 &p_offset) {
- texture_offset = p_offset;
- RS::get_singleton()->canvas_light_set_texture_offset(canvas_light, texture_offset);
- item_rect_changed();
- _change_notify("offset");
-}
-
-Vector2 Light2D::get_texture_offset() const {
- return texture_offset;
-}
-
void Light2D::set_color(const Color &p_color) {
color = p_color;
RS::get_singleton()->canvas_light_set_color(canvas_light, color);
@@ -176,20 +102,6 @@ float Light2D::get_energy() const {
return energy;
}
-void Light2D::set_texture_scale(float p_scale) {
- _scale = p_scale;
- // Avoid having 0 scale values, can lead to errors in physics and rendering.
- if (_scale == 0) {
- _scale = CMP_EPSILON;
- }
- RS::get_singleton()->canvas_light_set_scale(canvas_light, _scale);
- item_rect_changed();
-}
-
-float Light2D::get_texture_scale() const {
- return _scale;
-}
-
void Light2D::set_z_range_min(int p_min_z) {
z_min = p_min_z;
RS::get_singleton()->canvas_light_set_z_range(canvas_light, z_min, z_max);
@@ -244,15 +156,6 @@ int Light2D::get_item_shadow_cull_mask() const {
return item_shadow_mask;
}
-void Light2D::set_mode(Mode p_mode) {
- mode = p_mode;
- RS::get_singleton()->canvas_light_set_mode(canvas_light, RS::CanvasLightMode(p_mode));
-}
-
-Light2D::Mode Light2D::get_mode() const {
- return mode;
-}
-
void Light2D::set_shadow_enabled(bool p_enabled) {
shadow = p_enabled;
RS::get_singleton()->canvas_light_set_shadow_enabled(canvas_light, shadow);
@@ -281,6 +184,15 @@ Color Light2D::get_shadow_color() const {
return shadow_color;
}
+void Light2D::set_blend_mode(BlendMode p_mode) {
+ blend_mode = p_mode;
+ RS::get_singleton()->canvas_light_set_blend_mode(_get_light(), RS::CanvasLightBlendMode(p_mode));
+}
+
+Light2D::BlendMode Light2D::get_blend_mode() const {
+ return blend_mode;
+}
+
void Light2D::_notification(int p_what) {
if (p_what == NOTIFICATION_ENTER_TREE) {
RS::get_singleton()->canvas_light_attach_to_canvas(canvas_light, get_canvas());
@@ -300,19 +212,6 @@ void Light2D::_notification(int p_what) {
}
}
-String Light2D::get_configuration_warning() const {
- String warning = Node2D::get_configuration_warning();
-
- if (!texture.is_valid()) {
- if (!warning.empty()) {
- warning += "\n\n";
- }
- warning += TTR("A texture with the shape of the light must be supplied to the \"Texture\" property.");
- }
-
- return warning;
-}
-
void Light2D::set_shadow_smooth(float p_amount) {
shadow_smooth = p_amount;
RS::get_singleton()->canvas_light_set_shadow_smooth(canvas_light, shadow_smooth);
@@ -329,24 +228,12 @@ void Light2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_editor_only", "editor_only"), &Light2D::set_editor_only);
ClassDB::bind_method(D_METHOD("is_editor_only"), &Light2D::is_editor_only);
- ClassDB::bind_method(D_METHOD("set_texture", "texture"), &Light2D::set_texture);
- ClassDB::bind_method(D_METHOD("get_texture"), &Light2D::get_texture);
-
- ClassDB::bind_method(D_METHOD("set_texture_offset", "texture_offset"), &Light2D::set_texture_offset);
- ClassDB::bind_method(D_METHOD("get_texture_offset"), &Light2D::get_texture_offset);
-
ClassDB::bind_method(D_METHOD("set_color", "color"), &Light2D::set_color);
ClassDB::bind_method(D_METHOD("get_color"), &Light2D::get_color);
- ClassDB::bind_method(D_METHOD("set_height", "height"), &Light2D::set_height);
- ClassDB::bind_method(D_METHOD("get_height"), &Light2D::get_height);
-
ClassDB::bind_method(D_METHOD("set_energy", "energy"), &Light2D::set_energy);
ClassDB::bind_method(D_METHOD("get_energy"), &Light2D::get_energy);
- ClassDB::bind_method(D_METHOD("set_texture_scale", "texture_scale"), &Light2D::set_texture_scale);
- ClassDB::bind_method(D_METHOD("get_texture_scale"), &Light2D::get_texture_scale);
-
ClassDB::bind_method(D_METHOD("set_z_range_min", "z"), &Light2D::set_z_range_min);
ClassDB::bind_method(D_METHOD("get_z_range_min"), &Light2D::get_z_range_min);
@@ -365,9 +252,6 @@ void Light2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_item_shadow_cull_mask", "item_shadow_cull_mask"), &Light2D::set_item_shadow_cull_mask);
ClassDB::bind_method(D_METHOD("get_item_shadow_cull_mask"), &Light2D::get_item_shadow_cull_mask);
- ClassDB::bind_method(D_METHOD("set_mode", "mode"), &Light2D::set_mode);
- ClassDB::bind_method(D_METHOD("get_mode"), &Light2D::get_mode);
-
ClassDB::bind_method(D_METHOD("set_shadow_enabled", "enabled"), &Light2D::set_shadow_enabled);
ClassDB::bind_method(D_METHOD("is_shadow_enabled"), &Light2D::is_shadow_enabled);
@@ -380,16 +264,18 @@ void Light2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_shadow_color", "shadow_color"), &Light2D::set_shadow_color);
ClassDB::bind_method(D_METHOD("get_shadow_color"), &Light2D::get_shadow_color);
+ ClassDB::bind_method(D_METHOD("set_blend_mode", "mode"), &Light2D::set_blend_mode);
+ ClassDB::bind_method(D_METHOD("get_blend_mode"), &Light2D::get_blend_mode);
+
+ ClassDB::bind_method(D_METHOD("set_height", "height"), &Light2D::set_height);
+ ClassDB::bind_method(D_METHOD("get_height"), &Light2D::get_height);
+
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "enabled"), "set_enabled", "is_enabled");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "editor_only"), "set_editor_only", "is_editor_only");
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D"), "set_texture", "get_texture");
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "offset"), "set_texture_offset", "get_texture_offset");
- ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "texture_scale", PROPERTY_HINT_RANGE, "0.01,50,0.01"), "set_texture_scale", "get_texture_scale");
ADD_PROPERTY(PropertyInfo(Variant::COLOR, "color"), "set_color", "get_color");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "energy", PROPERTY_HINT_RANGE, "0,16,0.01,or_greater"), "set_energy", "get_energy");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "mode", PROPERTY_HINT_ENUM, "Add,Sub,Mix,Mask"), "set_mode", "get_mode");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "blend_mode", PROPERTY_HINT_ENUM, "Add,Sub,Mix"), "set_blend_mode", "get_blend_mode");
ADD_GROUP("Range", "range_");
- ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "range_height", PROPERTY_HINT_RANGE, "-2048,2048,0.1,or_lesser,or_greater"), "set_height", "get_height");
ADD_PROPERTY(PropertyInfo(Variant::INT, "range_z_min", PROPERTY_HINT_RANGE, itos(RS::CANVAS_ITEM_Z_MIN) + "," + itos(RS::CANVAS_ITEM_Z_MAX) + ",1"), "set_z_range_min", "get_z_range_min");
ADD_PROPERTY(PropertyInfo(Variant::INT, "range_z_max", PROPERTY_HINT_RANGE, itos(RS::CANVAS_ITEM_Z_MIN) + "," + itos(RS::CANVAS_ITEM_Z_MAX) + ",1"), "set_z_range_max", "get_z_range_max");
ADD_PROPERTY(PropertyInfo(Variant::INT, "range_layer_min", PROPERTY_HINT_RANGE, "-512,512,1"), "set_layer_range_min", "get_layer_range_min");
@@ -403,14 +289,13 @@ void Light2D::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "shadow_filter_smooth", PROPERTY_HINT_RANGE, "0,64,0.1"), "set_shadow_smooth", "get_shadow_smooth");
ADD_PROPERTY(PropertyInfo(Variant::INT, "shadow_item_cull_mask", PROPERTY_HINT_LAYERS_2D_RENDER), "set_item_shadow_cull_mask", "get_item_shadow_cull_mask");
- BIND_ENUM_CONSTANT(MODE_ADD);
- BIND_ENUM_CONSTANT(MODE_SUB);
- BIND_ENUM_CONSTANT(MODE_MIX);
- BIND_ENUM_CONSTANT(MODE_MASK);
-
BIND_ENUM_CONSTANT(SHADOW_FILTER_NONE);
BIND_ENUM_CONSTANT(SHADOW_FILTER_PCF5);
BIND_ENUM_CONSTANT(SHADOW_FILTER_PCF13);
+
+ BIND_ENUM_CONSTANT(BLEND_MODE_ADD);
+ BIND_ENUM_CONSTANT(BLEND_MODE_SUB);
+ BIND_ENUM_CONSTANT(BLEND_MODE_MIX);
}
Light2D::Light2D() {
@@ -420,22 +305,168 @@ Light2D::Light2D() {
shadow = false;
color = Color(1, 1, 1);
height = 0;
- _scale = 1.0;
z_min = -1024;
z_max = 1024;
layer_min = 0;
layer_max = 0;
item_mask = 1;
item_shadow_mask = 1;
- mode = MODE_ADD;
energy = 1.0;
shadow_color = Color(0, 0, 0, 0);
shadow_filter = SHADOW_FILTER_NONE;
shadow_smooth = 0;
-
+ blend_mode = BLEND_MODE_ADD;
set_notify_transform(true);
}
Light2D::~Light2D() {
RenderingServer::get_singleton()->free(canvas_light);
}
+
+//////////////////////////////
+
+#ifdef TOOLS_ENABLED
+
+Dictionary PointLight2D::_edit_get_state() const {
+ Dictionary state = Node2D::_edit_get_state();
+ state["offset"] = get_texture_offset();
+ return state;
+}
+
+void PointLight2D::_edit_set_state(const Dictionary &p_state) {
+ Node2D::_edit_set_state(p_state);
+ set_texture_offset(p_state["offset"]);
+}
+
+void PointLight2D::_edit_set_pivot(const Point2 &p_pivot) {
+ set_position(get_transform().xform(p_pivot));
+ set_texture_offset(get_texture_offset() - p_pivot);
+}
+
+Point2 PointLight2D::_edit_get_pivot() const {
+ return Vector2();
+}
+
+bool PointLight2D::_edit_use_pivot() const {
+ return true;
+}
+
+Rect2 PointLight2D::_edit_get_rect() const {
+ if (texture.is_null()) {
+ return Rect2();
+ }
+
+ Size2 s = texture->get_size() * _scale;
+ return Rect2(texture_offset - s / 2.0, s);
+}
+
+bool PointLight2D::_edit_use_rect() const {
+ return !texture.is_null();
+}
+#endif
+
+Rect2 PointLight2D::get_anchorable_rect() const {
+ if (texture.is_null()) {
+ return Rect2();
+ }
+
+ Size2 s = texture->get_size() * _scale;
+ return Rect2(texture_offset - s / 2.0, s);
+}
+
+void PointLight2D::set_texture(const Ref<Texture2D> &p_texture) {
+ texture = p_texture;
+ if (texture.is_valid()) {
+ RS::get_singleton()->canvas_light_set_texture(_get_light(), texture->get_rid());
+ } else {
+ RS::get_singleton()->canvas_light_set_texture(_get_light(), RID());
+ }
+
+ update_configuration_warning();
+}
+
+Ref<Texture2D> PointLight2D::get_texture() const {
+ return texture;
+}
+
+void PointLight2D::set_texture_offset(const Vector2 &p_offset) {
+ texture_offset = p_offset;
+ RS::get_singleton()->canvas_light_set_texture_offset(_get_light(), texture_offset);
+ item_rect_changed();
+ _change_notify("offset");
+}
+
+Vector2 PointLight2D::get_texture_offset() const {
+ return texture_offset;
+}
+
+String PointLight2D::get_configuration_warning() const {
+ String warning = Node2D::get_configuration_warning();
+
+ if (!texture.is_valid()) {
+ if (!warning.empty()) {
+ warning += "\n\n";
+ }
+ warning += TTR("A texture with the shape of the light must be supplied to the \"Texture\" property.");
+ }
+
+ return warning;
+}
+
+void PointLight2D::set_texture_scale(float p_scale) {
+ _scale = p_scale;
+ // Avoid having 0 scale values, can lead to errors in physics and rendering.
+ if (_scale == 0) {
+ _scale = CMP_EPSILON;
+ }
+ RS::get_singleton()->canvas_light_set_texture_scale(_get_light(), _scale);
+ item_rect_changed();
+}
+
+float PointLight2D::get_texture_scale() const {
+ return _scale;
+}
+
+void PointLight2D::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("set_texture", "texture"), &PointLight2D::set_texture);
+ ClassDB::bind_method(D_METHOD("get_texture"), &PointLight2D::get_texture);
+
+ ClassDB::bind_method(D_METHOD("set_texture_offset", "texture_offset"), &PointLight2D::set_texture_offset);
+ ClassDB::bind_method(D_METHOD("get_texture_offset"), &PointLight2D::get_texture_offset);
+
+ ClassDB::bind_method(D_METHOD("set_texture_scale", "texture_scale"), &PointLight2D::set_texture_scale);
+ ClassDB::bind_method(D_METHOD("get_texture_scale"), &PointLight2D::get_texture_scale);
+
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D"), "set_texture", "get_texture");
+ ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "offset"), "set_texture_offset", "get_texture_offset");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "texture_scale", PROPERTY_HINT_RANGE, "0.01,50,0.01"), "set_texture_scale", "get_texture_scale");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "height", PROPERTY_HINT_RANGE, "0,1024,1,or_greater"), "set_height", "get_height");
+}
+
+PointLight2D::PointLight2D() {
+ RS::get_singleton()->canvas_light_set_mode(_get_light(), RS::CANVAS_LIGHT_MODE_POINT);
+}
+
+//////////
+
+void DirectionalLight2D::set_max_distance(float p_distance) {
+ max_distance = p_distance;
+ RS::get_singleton()->canvas_light_set_directional_distance(_get_light(), max_distance);
+}
+
+float DirectionalLight2D::get_max_distance() const {
+ return max_distance;
+}
+
+void DirectionalLight2D::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("set_max_distance", "pixels"), &DirectionalLight2D::set_max_distance);
+ ClassDB::bind_method(D_METHOD("get_max_distance"), &DirectionalLight2D::get_max_distance);
+
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "height", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_height", "get_height");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "max_distance", PROPERTY_HINT_RANGE, "0,16384.0,1.0,or_greater"), "set_max_distance", "get_max_distance");
+}
+
+DirectionalLight2D::DirectionalLight2D() {
+ RS::get_singleton()->canvas_light_set_mode(_get_light(), RS::CANVAS_LIGHT_MODE_DIRECTIONAL);
+ set_max_distance(max_distance); // Update RenderingServer.
+}
diff --git a/scene/2d/light_2d.h b/scene/2d/light_2d.h
index 095cb05635..7dfeddc8e5 100644
--- a/scene/2d/light_2d.h
+++ b/scene/2d/light_2d.h
@@ -37,13 +37,6 @@ class Light2D : public Node2D {
GDCLASS(Light2D, Node2D);
public:
- enum Mode {
- MODE_ADD,
- MODE_SUB,
- MODE_MIX,
- MODE_MASK,
- };
-
enum ShadowFilter {
SHADOW_FILTER_NONE,
SHADOW_FILTER_PCF5,
@@ -51,6 +44,12 @@ public:
SHADOW_FILTER_MAX
};
+ enum BlendMode {
+ BLEND_MODE_ADD,
+ BLEND_MODE_SUB,
+ BLEND_MODE_MIX,
+ };
+
private:
RID canvas_light;
bool enabled;
@@ -59,7 +58,6 @@ private:
Color color;
Color shadow_color;
float height;
- float _scale;
float energy;
int z_min;
int z_max;
@@ -68,43 +66,25 @@ private:
int item_mask;
int item_shadow_mask;
float shadow_smooth;
- Mode mode;
Ref<Texture2D> texture;
Vector2 texture_offset;
ShadowFilter shadow_filter;
+ BlendMode blend_mode;
void _update_light_visibility();
protected:
+ _FORCE_INLINE_ RID _get_light() const { return canvas_light; }
void _notification(int p_what);
static void _bind_methods();
public:
-#ifdef TOOLS_ENABLED
- virtual Dictionary _edit_get_state() const override;
- virtual void _edit_set_state(const Dictionary &p_state) override;
-
- virtual void _edit_set_pivot(const Point2 &p_pivot) override;
- virtual Point2 _edit_get_pivot() const override;
- virtual bool _edit_use_pivot() const override;
- virtual Rect2 _edit_get_rect() const override;
- virtual bool _edit_use_rect() const override;
-#endif
-
- virtual Rect2 get_anchorable_rect() const override;
-
void set_enabled(bool p_enabled);
bool is_enabled() const;
void set_editor_only(bool p_editor_only);
bool is_editor_only() const;
- void set_texture(const Ref<Texture2D> &p_texture);
- Ref<Texture2D> get_texture() const;
-
- void set_texture_offset(const Vector2 &p_offset);
- Vector2 get_texture_offset() const;
-
void set_color(const Color &p_color);
Color get_color() const;
@@ -114,9 +94,6 @@ public:
void set_energy(float p_energy);
float get_energy() const;
- void set_texture_scale(float p_scale);
- float get_texture_scale() const;
-
void set_z_range_min(int p_min_z);
int get_z_range_min() const;
@@ -135,9 +112,6 @@ public:
void set_item_shadow_cull_mask(int p_mask);
int get_item_shadow_cull_mask() const;
- void set_mode(Mode p_mode);
- Mode get_mode() const;
-
void set_shadow_enabled(bool p_enabled);
bool is_shadow_enabled() const;
@@ -150,13 +124,68 @@ public:
void set_shadow_smooth(float p_amount);
float get_shadow_smooth() const;
- String get_configuration_warning() const override;
+ void set_blend_mode(BlendMode p_mode);
+ BlendMode get_blend_mode() const;
Light2D();
~Light2D();
};
-VARIANT_ENUM_CAST(Light2D::Mode);
VARIANT_ENUM_CAST(Light2D::ShadowFilter);
+VARIANT_ENUM_CAST(Light2D::BlendMode);
+
+class PointLight2D : public Light2D {
+ GDCLASS(PointLight2D, Light2D);
+
+private:
+ float _scale = 1.0;
+ Ref<Texture2D> texture;
+ Vector2 texture_offset;
+
+protected:
+ static void _bind_methods();
+
+public:
+#ifdef TOOLS_ENABLED
+ virtual Dictionary _edit_get_state() const override;
+ virtual void _edit_set_state(const Dictionary &p_state) override;
+
+ virtual void _edit_set_pivot(const Point2 &p_pivot) override;
+ virtual Point2 _edit_get_pivot() const override;
+ virtual bool _edit_use_pivot() const override;
+ virtual Rect2 _edit_get_rect() const override;
+ virtual bool _edit_use_rect() const override;
+#endif
+
+ virtual Rect2 get_anchorable_rect() const override;
+
+ void set_texture(const Ref<Texture2D> &p_texture);
+ Ref<Texture2D> get_texture() const;
+
+ void set_texture_offset(const Vector2 &p_offset);
+ Vector2 get_texture_offset() const;
+
+ void set_texture_scale(float p_scale);
+ float get_texture_scale() const;
+
+ String get_configuration_warning() const override;
+
+ PointLight2D();
+};
+
+class DirectionalLight2D : public Light2D {
+ GDCLASS(DirectionalLight2D, Light2D);
+
+ float max_distance = 10000.0;
+
+protected:
+ static void _bind_methods();
+
+public:
+ void set_max_distance(float p_distance);
+ float get_max_distance() const;
+
+ DirectionalLight2D();
+};
#endif // LIGHT_2D_H
diff --git a/scene/2d/sprite_2d.cpp b/scene/2d/sprite_2d.cpp
index c795ce9cf7..a065565a0f 100644
--- a/scene/2d/sprite_2d.cpp
+++ b/scene/2d/sprite_2d.cpp
@@ -99,7 +99,8 @@ void Sprite2D::_get_rects(Rect2 &r_src_rect, Rect2 &r_dst_rect, bool &r_filter_c
if (centered) {
dest_offset -= frame_size / 2;
}
- if (Engine::get_singleton()->get_use_pixel_snap()) {
+
+ if (get_viewport() && get_viewport()->is_snap_2d_transforms_to_pixel_enabled()) {
dest_offset = dest_offset.floor();
}
@@ -366,7 +367,8 @@ Rect2 Sprite2D::get_rect() const {
if (centered) {
ofs -= Size2(s) / 2;
}
- if (Engine::get_singleton()->get_use_pixel_snap()) {
+
+ if (get_viewport() && get_viewport()->is_snap_2d_transforms_to_pixel_enabled()) {
ofs = ofs.floor();
}
diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp
index 30757d2d80..4c869943e5 100644
--- a/scene/animation/animation_player.cpp
+++ b/scene/animation/animation_player.cpp
@@ -762,12 +762,10 @@ void AnimationPlayer::_animation_process_data(PlaybackData &cd, float p_delta, f
next_pos = len;
}
- // fix delta
- delta = next_pos - cd.pos;
+ bool backwards = signbit(delta); // Negative zero means playing backwards too
+ delta = next_pos - cd.pos; // Fix delta (after determination of backwards because negative zero is lost here)
if (&cd == &playback.current) {
- bool backwards = delta < 0;
-
if (!backwards && cd.pos <= len && next_pos == len /*&& playback.blend.empty()*/) {
//playback finished
end_reached = true;
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index 476dccab7e..cb35519da1 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -2738,7 +2738,9 @@ void Control::_bind_methods() {
BIND_VMETHOD(MethodInfo(Variant::BOOL, "can_drop_data", PropertyInfo(Variant::VECTOR2, "position"), PropertyInfo(Variant::NIL, "data")));
BIND_VMETHOD(MethodInfo("drop_data", PropertyInfo(Variant::VECTOR2, "position"), PropertyInfo(Variant::NIL, "data")));
- BIND_VMETHOD(MethodInfo(Variant::OBJECT, "_make_custom_tooltip", PropertyInfo(Variant::STRING, "for_text")));
+ BIND_VMETHOD(MethodInfo(
+ PropertyInfo(Variant::OBJECT, "control", PROPERTY_HINT_RESOURCE_TYPE, "Control"),
+ "_make_custom_tooltip", PropertyInfo(Variant::STRING, "for_text")));
BIND_VMETHOD(MethodInfo(Variant::BOOL, "_clips_input"));
ADD_GROUP("Anchor", "anchor_");
diff --git a/scene/gui/gradient_edit.cpp b/scene/gui/gradient_edit.cpp
index ecd4ad17ea..53d7ead548 100644
--- a/scene/gui/gradient_edit.cpp
+++ b/scene/gui/gradient_edit.cpp
@@ -357,7 +357,7 @@ void GradientEdit::_notification(int p_what) {
//Draw point markers
for (int i = 0; i < points.size(); i++) {
- Color col = points[i].color.contrasted();
+ Color col = points[i].color.inverted();
col.a = 0.9;
draw_line(Vector2(points[i].offset * total_w, 0), Vector2(points[i].offset * total_w, h / 2), col);
diff --git a/scene/gui/tab_container.cpp b/scene/gui/tab_container.cpp
index 4074c75dd7..bd9c2da5bc 100644
--- a/scene/gui/tab_container.cpp
+++ b/scene/gui/tab_container.cpp
@@ -371,8 +371,10 @@ void TabContainer::_notification(int p_what) {
// Draw the tab area.
panel->draw(canvas, Rect2(0, header_height, size.width, size.height - header_height));
- // Draw selected tab in front
- _draw_tab(tab_fg, font_color_fg, current, tabs_ofs_cache + x_current);
+ // Draw selected tab in front. Need to check tabs.size() in case of no contents at all.
+ if (tabs.size() > 0) {
+ _draw_tab(tab_fg, font_color_fg, current, tabs_ofs_cache + x_current);
+ }
// Draw the popup menu.
x = get_size().width;
diff --git a/scene/main/canvas_item.cpp b/scene/main/canvas_item.cpp
index 6323b55378..740374d09e 100644
--- a/scene/main/canvas_item.cpp
+++ b/scene/main/canvas_item.cpp
@@ -32,6 +32,7 @@
#include "core/input/input.h"
#include "core/message_queue.h"
+#include "scene/2d/canvas_group.h"
#include "scene/main/canvas_layer.h"
#include "scene/main/viewport.h"
#include "scene/main/window.h"
@@ -1199,6 +1200,9 @@ void CanvasItem::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_texture_repeat", "mode"), &CanvasItem::set_texture_repeat);
ClassDB::bind_method(D_METHOD("get_texture_repeat"), &CanvasItem::get_texture_repeat);
+ ClassDB::bind_method(D_METHOD("set_clip_children", "enable"), &CanvasItem::set_clip_children);
+ ClassDB::bind_method(D_METHOD("is_clipping_children"), &CanvasItem::is_clipping_children);
+
BIND_VMETHOD(MethodInfo("_draw"));
ADD_GROUP("Visibility", "");
@@ -1208,6 +1212,7 @@ void CanvasItem::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "show_behind_parent"), "set_draw_behind_parent", "is_draw_behind_parent_enabled");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "top_level"), "set_as_top_level", "is_set_as_top_level");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "show_on_top", PROPERTY_HINT_NONE, "", 0), "_set_on_top", "_is_on_top"); //compatibility
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "clip_children"), "set_clip_children", "is_clipping_children");
ADD_PROPERTY(PropertyInfo(Variant::INT, "light_mask", PROPERTY_HINT_LAYERS_2D_RENDER), "set_light_mask", "get_light_mask");
ADD_GROUP("Texture", "texture_");
@@ -1383,6 +1388,22 @@ void CanvasItem::set_texture_repeat(TextureRepeat p_texture_repeat) {
_change_notify();
}
+void CanvasItem::set_clip_children(bool p_enabled) {
+ if (clip_children == p_enabled) {
+ return;
+ }
+ clip_children = p_enabled;
+
+ if (Object::cast_to<CanvasGroup>(this) != nullptr) {
+ //avoid accidental bugs, make this not work on CanvasGroup
+ return;
+ }
+ RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), clip_children ? RS::CANVAS_GROUP_MODE_OPAQUE : RS::CANVAS_GROUP_MODE_DISABLED);
+}
+bool CanvasItem::is_clipping_children() const {
+ return clip_children;
+}
+
CanvasItem::TextureRepeat CanvasItem::get_texture_repeat() const {
return texture_repeat;
}
@@ -1399,6 +1420,7 @@ CanvasItem::CanvasItem() :
first_draw = false;
drawing = false;
behind = false;
+ clip_children = false;
block_transform_notify = false;
canvas_layer = nullptr;
use_parent_material = false;
diff --git a/scene/main/canvas_item.h b/scene/main/canvas_item.h
index 092fd17df3..412ef8079b 100644
--- a/scene/main/canvas_item.h
+++ b/scene/main/canvas_item.h
@@ -200,6 +200,7 @@ private:
Window *window;
bool first_draw;
bool visible;
+ bool clip_children;
bool pending_update;
bool top_level;
bool drawing;
@@ -315,6 +316,9 @@ public:
void update();
+ void set_clip_children(bool p_enabled);
+ bool is_clipping_children() const;
+
virtual void set_light_mask(int p_light_mask);
int get_light_mask() const;
diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp
index ea0fe6fcc2..40479a796f 100644
--- a/scene/main/scene_tree.cpp
+++ b/scene/main/scene_tree.cpp
@@ -1394,6 +1394,12 @@ SceneTree::SceneTree() {
const bool use_debanding = GLOBAL_DEF("rendering/quality/screen_filters/use_debanding", false);
root->set_use_debanding(use_debanding);
+ bool snap_2d_transforms = GLOBAL_DEF("rendering/quality/2d/snap_2d_transforms_to_pixel", false);
+ root->set_snap_2d_transforms_to_pixel(snap_2d_transforms);
+
+ bool snap_2d_vertices = GLOBAL_DEF("rendering/quality/2d/snap_2d_vertices_to_pixel", false);
+ root->set_snap_2d_vertices_to_pixel(snap_2d_vertices);
+
{ //load default fallback environment
//get possible extensions
List<String> exts;
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp
index ba78f8dc2d..d512f1809c 100644
--- a/scene/main/viewport.cpp
+++ b/scene/main/viewport.cpp
@@ -161,6 +161,11 @@ ViewportTexture::~ViewportTexture() {
/////////////////////////////////////
+// Aliases used to provide custom styles to tooltips in the default
+// theme and editor theme.
+// TooltipPanel is also used for custom tooltips, while TooltipLabel
+// is only relevant for default tooltips.
+
class TooltipPanel : public PopupPanel {
GDCLASS(TooltipPanel, PopupPanel);
@@ -175,6 +180,8 @@ public:
TooltipLabel() {}
};
+/////////////////////////////////////
+
Viewport::GUI::GUI() {
embed_subwindows_hint = false;
embedding_subwindows = false;
@@ -188,7 +195,7 @@ Viewport::GUI::GUI() {
mouse_over = nullptr;
drag_mouse_over = nullptr;
- tooltip = nullptr;
+ tooltip_control = nullptr;
tooltip_popup = nullptr;
tooltip_label = nullptr;
}
@@ -814,7 +821,14 @@ void Viewport::_notification(int p_what) {
}
} break;
- case NOTIFICATION_WM_MOUSE_EXIT:
+ case NOTIFICATION_WM_MOUSE_EXIT: {
+ _drop_physics_mouseover();
+
+ // Unlike on loss of focus (NOTIFICATION_WM_WINDOW_FOCUS_OUT), do not
+ // drop the gui mouseover here, as a scrollbar may be dragged while the
+ // mouse is outside the window (without the window having lost focus).
+ // See bug #39634
+ } break;
case NOTIFICATION_WM_WINDOW_FOCUS_OUT: {
_drop_physics_mouseover();
@@ -1465,7 +1479,7 @@ void Viewport::_gui_sort_roots() {
}
void Viewport::_gui_cancel_tooltip() {
- gui.tooltip = nullptr;
+ gui.tooltip_control = nullptr;
gui.tooltip_timer = -1;
if (gui.tooltip_popup) {
gui.tooltip_popup->queue_delete();
@@ -1474,21 +1488,23 @@ void Viewport::_gui_cancel_tooltip() {
}
}
-String Viewport::_gui_get_tooltip(Control *p_control, const Vector2 &p_pos, Control **r_which) {
+String Viewport::_gui_get_tooltip(Control *p_control, const Vector2 &p_pos, Control **r_tooltip_owner) {
Vector2 pos = p_pos;
String tooltip;
while (p_control) {
tooltip = p_control->get_tooltip(pos);
- if (r_which) {
- *r_which = p_control;
+ if (r_tooltip_owner) {
+ *r_tooltip_owner = p_control;
}
- if (tooltip != String()) {
+ // If we found a tooltip, we stop here.
+ if (!tooltip.empty()) {
break;
}
- pos = p_control->get_transform().xform(pos);
+
+ // Otherwise, we check parent controls unless some conditions prevent it.
if (p_control->data.mouse_filter == Control::MOUSE_FILTER_STOP) {
break;
@@ -1497,6 +1513,9 @@ String Viewport::_gui_get_tooltip(Control *p_control, const Vector2 &p_pos, Cont
break;
}
+ // Transform cursor pos for parent control.
+ pos = p_control->get_transform().xform(pos);
+
p_control = p_control->get_parent_control();
}
@@ -1504,34 +1523,40 @@ String Viewport::_gui_get_tooltip(Control *p_control, const Vector2 &p_pos, Cont
}
void Viewport::_gui_show_tooltip() {
- if (!gui.tooltip) {
+ if (!gui.tooltip_control) {
return;
}
- Control *which = nullptr;
- String tooltip = _gui_get_tooltip(gui.tooltip, gui.tooltip->get_global_transform().xform_inv(gui.last_mouse_pos), &which);
- tooltip = tooltip.strip_edges();
- if (tooltip.length() == 0) {
- return; // bye
+ // Get the Control under cursor and the relevant tooltip text, if any.
+ Control *tooltip_owner = nullptr;
+ String tooltip_text = _gui_get_tooltip(
+ gui.tooltip_control,
+ gui.tooltip_control->get_global_transform().xform_inv(gui.last_mouse_pos),
+ &tooltip_owner);
+ tooltip_text.strip_edges();
+ if (tooltip_text.empty()) {
+ return; // Nothing to show.
}
+ // Remove previous popup if we change something.
if (gui.tooltip_popup) {
memdelete(gui.tooltip_popup);
gui.tooltip_popup = nullptr;
gui.tooltip_label = nullptr;
}
- if (!which) {
+ if (!tooltip_owner) {
return;
}
- Control *rp = which;
-
- Control *base_tooltip = which->make_custom_tooltip(tooltip);
+ // Controls can implement `make_custom_tooltip` to provide their own tooltip.
+ // This should be a Control node which will be added as child to a TooltipPanel.
+ Control *base_tooltip = tooltip_owner->make_custom_tooltip(tooltip_text);
+ // If no custom tooltip is given, use a default implementation.
if (!base_tooltip) {
gui.tooltip_label = memnew(TooltipLabel);
- gui.tooltip_label->set_text(tooltip);
+ gui.tooltip_label->set_text(tooltip_text);
base_tooltip = gui.tooltip_label;
}
@@ -1545,10 +1570,7 @@ void Viewport::_gui_show_tooltip() {
gui.tooltip_popup = panel;
- rp->add_child(gui.tooltip_popup);
-
- //if (gui.tooltip) // Avoids crash when rapidly switching controls.
- // gui.tooltip_popup->set_scale(gui.tooltip->get_global_transform().get_scale());
+ tooltip_owner->add_child(gui.tooltip_popup);
Point2 tooltip_offset = ProjectSettings::get_singleton()->get("display/mouse_cursor/tooltip_position_offset");
Rect2 r(gui.tooltip_pos + tooltip_offset, gui.tooltip_popup->get_contents_minimum_size());
@@ -1794,6 +1816,8 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
if (mb.is_valid()) {
gui.key_event_accepted = false;
+ Control *over = nullptr;
+
Point2 mpos = mb->get_position();
if (mb->is_pressed()) {
Size2 pos = mpos;
@@ -1897,8 +1921,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
}
_gui_cancel_tooltip();
- //gui.tooltip_popup->hide();
-
} else {
if (gui.drag_data.get_type() != Variant::NIL && mb->get_button_index() == BUTTON_LEFT) {
if (gui.drag_mouse_over) {
@@ -1948,6 +1970,31 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
gui.drag_data=Variant(); //always clear
}*/
+ // In case the mouse was released after for example dragging a scrollbar,
+ // check whether the current control is different from the stored one. If
+ // it is different, rather than wait for it to be updated the next time the
+ // mouse is moved, notify the control so that it can e.g. drop the highlight.
+ // This code is duplicated from the mm.is_valid()-case further below.
+ if (gui.mouse_focus) {
+ over = gui.mouse_focus;
+ } else {
+ over = _gui_find_control(mpos);
+ }
+
+ if (gui.mouse_focus_mask == 0 && over != gui.mouse_over) {
+ if (gui.mouse_over) {
+ _gui_call_notification(gui.mouse_over, Control::NOTIFICATION_MOUSE_EXIT);
+ }
+
+ _gui_cancel_tooltip();
+
+ if (over) {
+ _gui_call_notification(over, Control::NOTIFICATION_MOUSE_ENTER);
+ }
+ }
+
+ gui.mouse_over = over;
+
set_input_as_handled();
}
}
@@ -2008,10 +2055,11 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
}
}
+ // These sections of code are reused in the mb.is_valid() case further up
+ // for the purpose of notifying controls about potential changes in focus
+ // when the mousebutton is released.
if (gui.mouse_focus) {
over = gui.mouse_focus;
- //recompute focus_inv_xform again here
-
} else {
over = _gui_find_control(mpos);
}
@@ -2052,8 +2100,8 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
bool is_tooltip_shown = false;
if (gui.tooltip_popup) {
- if (can_tooltip && gui.tooltip) {
- String tooltip = _gui_get_tooltip(over, gui.tooltip->get_global_transform().xform_inv(mpos));
+ if (can_tooltip && gui.tooltip_control) {
+ String tooltip = _gui_get_tooltip(over, gui.tooltip_control->get_global_transform().xform_inv(mpos));
if (tooltip.length() == 0) {
_gui_cancel_tooltip();
@@ -2078,14 +2126,12 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
}
if (can_tooltip && !is_tooltip_shown) {
- gui.tooltip = over;
- gui.tooltip_pos = over->get_screen_transform().xform(pos); //(parent_xform * get_transform()).affine_inverse().xform(pos);
+ gui.tooltip_control = over;
+ gui.tooltip_pos = over->get_screen_transform().xform(pos);
gui.tooltip_timer = gui.tooltip_delay;
}
}
- //pos = gui.focus_inv_xform.xform(pos);
-
mm->set_position(pos);
Control::CursorShape cursor_shape = Control::CURSOR_ARROW;
@@ -2436,7 +2482,7 @@ void Viewport::_gui_hide_control(Control *p_control) {
if (gui.drag_mouse_over == p_control) {
gui.drag_mouse_over = nullptr;
}
- if (gui.tooltip == p_control) {
+ if (gui.tooltip_control == p_control) {
_gui_cancel_tooltip();
}
}
@@ -2459,8 +2505,8 @@ void Viewport::_gui_remove_control(Control *p_control) {
if (gui.drag_mouse_over == p_control) {
gui.drag_mouse_over = nullptr;
}
- if (gui.tooltip == p_control) {
- gui.tooltip = nullptr;
+ if (gui.tooltip_control == p_control) {
+ gui.tooltip_control = nullptr;
}
}
@@ -3170,6 +3216,24 @@ bool Viewport::is_snap_controls_to_pixels_enabled() const {
return snap_controls_to_pixels;
}
+void Viewport::set_snap_2d_transforms_to_pixel(bool p_enable) {
+ snap_2d_transforms_to_pixel = p_enable;
+ RS::get_singleton()->viewport_set_snap_2d_transforms_to_pixel(viewport, snap_2d_transforms_to_pixel);
+}
+
+bool Viewport::is_snap_2d_transforms_to_pixel_enabled() const {
+ return snap_2d_transforms_to_pixel;
+}
+
+void Viewport::set_snap_2d_vertices_to_pixel(bool p_enable) {
+ snap_2d_vertices_to_pixel = p_enable;
+ RS::get_singleton()->viewport_set_snap_2d_vertices_to_pixel(viewport, snap_2d_vertices_to_pixel);
+}
+
+bool Viewport::is_snap_2d_vertices_to_pixel_enabled() const {
+ return snap_2d_vertices_to_pixel;
+}
+
bool Viewport::gui_is_dragging() const {
return gui.dragging;
}
@@ -3395,6 +3459,12 @@ void Viewport::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_snap_controls_to_pixels", "enabled"), &Viewport::set_snap_controls_to_pixels);
ClassDB::bind_method(D_METHOD("is_snap_controls_to_pixels_enabled"), &Viewport::is_snap_controls_to_pixels_enabled);
+ ClassDB::bind_method(D_METHOD("set_snap_2d_transforms_to_pixel", "enabled"), &Viewport::set_snap_2d_transforms_to_pixel);
+ ClassDB::bind_method(D_METHOD("is_snap_2d_transforms_to_pixel_enabled"), &Viewport::is_snap_2d_transforms_to_pixel_enabled);
+
+ ClassDB::bind_method(D_METHOD("set_snap_2d_vertices_to_pixel", "enabled"), &Viewport::set_snap_2d_vertices_to_pixel);
+ ClassDB::bind_method(D_METHOD("is_snap_2d_vertices_to_pixel_enabled"), &Viewport::is_snap_2d_vertices_to_pixel_enabled);
+
ClassDB::bind_method(D_METHOD("set_shadow_atlas_quadrant_subdiv", "quadrant", "subdiv"), &Viewport::set_shadow_atlas_quadrant_subdiv);
ClassDB::bind_method(D_METHOD("get_shadow_atlas_quadrant_subdiv", "quadrant"), &Viewport::get_shadow_atlas_quadrant_subdiv);
@@ -3419,6 +3489,8 @@ void Viewport::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "world_2d", PROPERTY_HINT_RESOURCE_TYPE, "World2D", 0), "set_world_2d", "get_world_2d");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "transparent_bg"), "set_transparent_background", "has_transparent_background");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "handle_input_locally"), "set_handle_input_locally", "is_handling_input_locally");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_2d_transforms_to_pixel"), "set_snap_2d_transforms_to_pixel", "is_snap_2d_transforms_to_pixel_enabled");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_2d_vertices_to_pixel"), "set_snap_2d_vertices_to_pixel", "is_snap_2d_vertices_to_pixel_enabled");
ADD_GROUP("Rendering", "");
ADD_PROPERTY(PropertyInfo(Variant::INT, "msaa", PROPERTY_HINT_ENUM, "Disabled,2x,4x,8x,16x,AndroidVR 2x,AndroidVR 4x"), "set_msaa", "get_msaa");
ADD_PROPERTY(PropertyInfo(Variant::INT, "screen_space_aa", PROPERTY_HINT_ENUM, "Disabled,FXAA"), "set_screen_space_aa", "get_screen_space_aa");
@@ -3553,14 +3625,13 @@ Viewport::Viewport() {
disable_input = false;
- //window tooltip
+ // Window tooltip.
gui.tooltip_timer = -1;
- //gui.tooltip_timer->force_parent_owned();
gui.tooltip_delay = GLOBAL_DEF("gui/timers/tooltip_delay_sec", 0.5);
ProjectSettings::get_singleton()->set_custom_property_info("gui/timers/tooltip_delay_sec", PropertyInfo(Variant::FLOAT, "gui/timers/tooltip_delay_sec", PROPERTY_HINT_RANGE, "0,5,0.01,or_greater")); // No negative numbers
- gui.tooltip = nullptr;
+ gui.tooltip_control = nullptr;
gui.tooltip_label = nullptr;
gui.drag_preview = nullptr;
gui.drag_attempted = false;
@@ -3577,6 +3648,9 @@ Viewport::Viewport() {
debug_draw = DEBUG_DRAW_DISABLED;
snap_controls_to_pixels = true;
+ snap_2d_transforms_to_pixel = false;
+ snap_2d_vertices_to_pixel = false;
+
physics_last_mouse_state.alt = false;
physics_last_mouse_state.control = false;
physics_last_mouse_state.shift = false;
diff --git a/scene/main/viewport.h b/scene/main/viewport.h
index b7d4a56b9e..8e7f2cecdc 100644
--- a/scene/main/viewport.h
+++ b/scene/main/viewport.h
@@ -225,6 +225,8 @@ private:
bool gen_mipmaps;
bool snap_controls_to_pixels;
+ bool snap_2d_transforms_to_pixel;
+ bool snap_2d_vertices_to_pixel;
bool physics_object_picking;
List<Ref<InputEvent>> physics_picking_events;
@@ -321,7 +323,7 @@ private:
Control *mouse_over;
Control *drag_mouse_over;
Vector2 drag_mouse_over_pos;
- Control *tooltip;
+ Control *tooltip_control;
Window *tooltip_popup;
Label *tooltip_label;
Point2 tooltip_pos;
@@ -380,7 +382,7 @@ private:
void _gui_remove_root_control(List<Control *>::Element *RI);
- String _gui_get_tooltip(Control *p_control, const Vector2 &p_pos, Control **r_which = nullptr);
+ String _gui_get_tooltip(Control *p_control, const Vector2 &p_pos, Control **r_tooltip_owner = nullptr);
void _gui_cancel_tooltip();
void _gui_show_tooltip();
@@ -556,6 +558,12 @@ public:
void set_snap_controls_to_pixels(bool p_enable);
bool is_snap_controls_to_pixels_enabled() const;
+ void set_snap_2d_transforms_to_pixel(bool p_enable);
+ bool is_snap_2d_transforms_to_pixel_enabled() const;
+
+ void set_snap_2d_vertices_to_pixel(bool p_enable);
+ bool is_snap_2d_vertices_to_pixel_enabled() const;
+
void set_input_as_handled();
bool is_input_handled() const;
diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp
index 76b68c8da8..9d224dc744 100644
--- a/scene/register_scene_types.cpp
+++ b/scene/register_scene_types.cpp
@@ -38,6 +38,7 @@
#include "scene/2d/audio_stream_player_2d.h"
#include "scene/2d/back_buffer_copy.h"
#include "scene/2d/camera_2d.h"
+#include "scene/2d/canvas_group.h"
#include "scene/2d/canvas_modulate.h"
#include "scene/2d/collision_polygon_2d.h"
#include "scene/2d/collision_shape_2d.h"
@@ -602,6 +603,7 @@ void register_scene_types() {
/* REGISTER 2D */
ClassDB::register_class<Node2D>();
+ ClassDB::register_class<CanvasGroup>();
ClassDB::register_class<CPUParticles2D>();
ClassDB::register_class<GPUParticles2D>();
ClassDB::register_class<Sprite2D>();
@@ -626,7 +628,9 @@ void register_scene_types() {
ClassDB::register_class<Polygon2D>();
ClassDB::register_class<Skeleton2D>();
ClassDB::register_class<Bone2D>();
- ClassDB::register_class<Light2D>();
+ ClassDB::register_virtual_class<Light2D>();
+ ClassDB::register_class<PointLight2D>();
+ ClassDB::register_class<DirectionalLight2D>();
ClassDB::register_class<LightOccluder2D>();
ClassDB::register_class<OccluderPolygon2D>();
ClassDB::register_class<YSort>();
@@ -915,6 +919,7 @@ void register_scene_types() {
ClassDB::add_compatibility_class("VisualShaderNodeScalarUniform", "VisualShaderNodeFloatUniform");
ClassDB::add_compatibility_class("World", "World3D");
ClassDB::add_compatibility_class("StreamTexture", "StreamTexture2D");
+ ClassDB::add_compatibility_class("Light2D", "PointLight2D");
#endif
diff --git a/scene/resources/dynamic_font.cpp b/scene/resources/dynamic_font.cpp
index ad9d888480..d76d364737 100644
--- a/scene/resources/dynamic_font.cpp
+++ b/scene/resources/dynamic_font.cpp
@@ -458,8 +458,21 @@ DynamicFontAtSize::TexturePosition DynamicFontAtSize::_find_texture_pos_for_glyp
//zero texture
uint8_t *w = tex.imgdata.ptrw();
ERR_FAIL_COND_V(texsize * texsize * p_color_size > tex.imgdata.size(), ret);
- for (int i = 0; i < texsize * texsize * p_color_size; i++) {
- w[i] = 0;
+
+ // Initialize the texture to all-white pixels to prevent artifacts when the
+ // font is displayed at a non-default scale with filtering enabled.
+ if (p_color_size == 2) {
+ for (int i = 0; i < texsize * texsize * p_color_size; i += 2) {
+ w[i + 0] = 255;
+ w[i + 1] = 0;
+ }
+ } else {
+ for (int i = 0; i < texsize * texsize * p_color_size; i += 4) {
+ w[i + 0] = 255;
+ w[i + 1] = 255;
+ w[i + 2] = 255;
+ w[i + 3] = 0;
+ }
}
}
tex.offsets.resize(texsize);
diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp
index 1e95a35726..5953942c44 100644
--- a/scene/resources/material.cpp
+++ b/scene/resources/material.cpp
@@ -324,7 +324,6 @@ void BaseMaterial3D::init_shaders() {
shader_names->rim_texture_channel = "rim_texture_channel";
shader_names->heightmap_texture_channel = "heightmap_texture_channel";
shader_names->refraction_texture_channel = "refraction_texture_channel";
- shader_names->alpha_scissor_threshold = "alpha_scissor_threshold";
shader_names->transmittance_color = "transmittance_color";
shader_names->transmittance_curve = "transmittance_curve";
@@ -349,6 +348,12 @@ void BaseMaterial3D::init_shaders() {
shader_names->texture_names[TEXTURE_DETAIL_ALBEDO] = "texture_detail_albedo";
shader_names->texture_names[TEXTURE_DETAIL_NORMAL] = "texture_detail_normal";
shader_names->texture_names[TEXTURE_ORM] = "texture_orm";
+
+ shader_names->alpha_scissor_threshold = "alpha_scissor_threshold";
+ shader_names->alpha_hash_scale = "alpha_hash_scale";
+
+ shader_names->alpha_antialiasing_edge = "alpha_antialiasing_edge";
+ shader_names->albedo_texture_size = "albedo_texture_size";
}
Ref<StandardMaterial3D> BaseMaterial3D::materials_for_2d[BaseMaterial3D::MAX_MATERIALS_FOR_2D];
@@ -435,6 +440,8 @@ void BaseMaterial3D::_update_shader() {
case BLEND_MODE_MUL:
code += "blend_mul";
break;
+ case BLEND_MODE_MAX:
+ break; // Internal value, skip.
}
DepthDrawMode ddm = depth_draw_mode;
@@ -452,10 +459,8 @@ void BaseMaterial3D::_update_shader() {
case DEPTH_DRAW_DISABLED:
code += ",depth_draw_never";
break;
- }
-
- if (transparency == TRANSPARENCY_ALPHA_DEPTH_PRE_PASS) {
- code += ",depth_prepass_alpha";
+ case DEPTH_DRAW_MAX:
+ break; // Internal value, skip.
}
switch (cull_mode) {
@@ -468,6 +473,8 @@ void BaseMaterial3D::_update_shader() {
case CULL_DISABLED:
code += ",cull_disabled";
break;
+ case CULL_MAX:
+ break; // Internal value, skip.
}
switch (diffuse_mode) {
case DIFFUSE_BURLEY:
@@ -485,6 +492,8 @@ void BaseMaterial3D::_update_shader() {
case DIFFUSE_TOON:
code += ",diffuse_toon";
break;
+ case DIFFUSE_MAX:
+ break; // Internal value, skip.
}
switch (specular_mode) {
case SPECULAR_SCHLICK_GGX:
@@ -502,6 +511,8 @@ void BaseMaterial3D::_update_shader() {
case SPECULAR_DISABLED:
code += ",specular_disabled";
break;
+ case SPECULAR_MAX:
+ break; // Internal value, skip.
}
if (features[FEATURE_SUBSURFACE_SCATTERING] && flags[FLAG_SUBSURFACE_MODE_SKIN]) {
code += ",sss_mode_skin";
@@ -525,6 +536,23 @@ void BaseMaterial3D::_update_shader() {
if (flags[FLAG_USE_SHADOW_TO_OPACITY]) {
code += ",shadow_to_opacity";
}
+
+ if (transparency == TRANSPARENCY_ALPHA_DEPTH_PRE_PASS) {
+ code += ",depth_prepass_alpha";
+ }
+
+ // Although its technically possible to do alpha antialiasing without using alpha hash or alpha scissor,
+ // it is restricted in the base material because it has no use, and abusing it with regular Alpha blending can
+ // saturate the MSAA mask
+ if (transparency == TRANSPARENCY_ALPHA_HASH || transparency == TRANSPARENCY_ALPHA_SCISSOR) {
+ // alpha antialiasing is only useful in ALPHA_HASH or ALPHA_SCISSOR
+ if (alpha_antialiasing_mode == ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE) {
+ code += ",alpha_to_coverage";
+ } else if (alpha_antialiasing_mode == ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE) {
+ code += ",alpha_to_coverage_and_one";
+ }
+ }
+
code += ";\n";
code += "uniform vec4 albedo : hint_color;\n";
@@ -541,8 +569,18 @@ void BaseMaterial3D::_update_shader() {
code += "uniform float distance_fade_max;\n";
}
+ // alpha scissor is only valid if there is not antialiasing edge
+ // alpha hash is valid whenever, but not with alpha scissor
if (transparency == TRANSPARENCY_ALPHA_SCISSOR) {
code += "uniform float alpha_scissor_threshold;\n";
+ } else if (transparency == TRANSPARENCY_ALPHA_HASH) {
+ code += "uniform float alpha_hash_scale;\n";
+ }
+ // if alpha antialiasing isn't off, add in the edge variable
+ if (alpha_antialiasing_mode != ALPHA_ANTIALIASING_OFF &&
+ (transparency == TRANSPARENCY_ALPHA_SCISSOR || transparency == TRANSPARENCY_ALPHA_HASH)) {
+ code += "uniform float alpha_antialiasing_edge;\n";
+ code += "uniform ivec2 albedo_texture_size;\n";
}
code += "uniform float point_size : hint_range(0,128);\n";
@@ -568,6 +606,8 @@ void BaseMaterial3D::_update_shader() {
case TEXTURE_CHANNEL_GRAYSCALE: {
code += "uniform sampler2D texture_roughness : hint_roughness_gray," + texfilter_str + ";\n";
} break;
+ case TEXTURE_CHANNEL_MAX:
+ break; // Internal value, skip.
}
code += "uniform float specular;\n";
@@ -731,6 +771,8 @@ void BaseMaterial3D::_update_shader() {
code += "\tUV /= vec2(h_frames, v_frames);\n";
code += "\tUV += vec2(mod(particle_frame, h_frames) / h_frames, floor(particle_frame / h_frames) / v_frames);\n";
} break;
+ case BILLBOARD_MAX:
+ break; // Internal value, skip.
}
if (flags[FLAG_FIXED_SIZE]) {
@@ -903,6 +945,8 @@ void BaseMaterial3D::_update_shader() {
case TEXTURE_CHANNEL_GRAYSCALE: {
code += "\tvec4 roughness_texture_channel = vec4(0.333333,0.333333,0.333333,0.0);\n";
} break;
+ case TEXTURE_CHANNEL_MAX:
+ break; // Internal value, skip.
}
if (flags[FLAG_UV1_USE_TRIPLANAR]) {
@@ -970,10 +1014,17 @@ void BaseMaterial3D::_update_shader() {
code += "\tALBEDO *= 1.0 - ref_amount;\n";
code += "\tALPHA = 1.0;\n";
- } else if (transparency == TRANSPARENCY_ALPHA || transparency == TRANSPARENCY_ALPHA_DEPTH_PRE_PASS || flags[FLAG_USE_SHADOW_TO_OPACITY] || (distance_fade == DISTANCE_FADE_PIXEL_ALPHA) || proximity_fade_enabled) {
+ } else if (transparency != TRANSPARENCY_DISABLED || flags[FLAG_USE_SHADOW_TO_OPACITY] || (distance_fade == DISTANCE_FADE_PIXEL_ALPHA) || proximity_fade_enabled) {
code += "\tALPHA = albedo.a * albedo_tex.a;\n";
+ }
+ if (transparency == TRANSPARENCY_ALPHA_HASH) {
+ code += "\tALPHA_HASH_SCALE = alpha_hash_scale;\n";
} else if (transparency == TRANSPARENCY_ALPHA_SCISSOR) {
- code += "\tif (albedo.a * albedo_tex.a < alpha_scissor_threshold) discard;\n";
+ code += "\tALPHA_SCISSOR_THRESHOLD = alpha_scissor_threshold;\n";
+ }
+ if (alpha_antialiasing_mode != ALPHA_ANTIALIASING_OFF && (transparency == TRANSPARENCY_ALPHA_HASH || transparency == TRANSPARENCY_ALPHA_SCISSOR)) {
+ code += "\tALPHA_ANTIALIASING_EDGE = alpha_antialiasing_edge;\n";
+ code += "\tALPHA_TEXTURE_COORDINATE = UV * vec2(albedo_texture_size);\n";
}
if (proximity_fade_enabled) {
@@ -1143,6 +1194,8 @@ void BaseMaterial3D::_update_shader() {
case BLEND_MODE_MUL: {
code += "\tvec3 detail = mix(ALBEDO.rgb,ALBEDO.rgb*detail_tex.rgb,detail_tex.a);\n";
} break;
+ case BLEND_MODE_MAX:
+ break; // Internal value, skip.
}
code += "\tvec3 detail_norm = mix(NORMALMAP,detail_norm_tex.rgb,detail_tex.a);\n";
@@ -1424,6 +1477,20 @@ BaseMaterial3D::Transparency BaseMaterial3D::get_transparency() const {
return transparency;
}
+void BaseMaterial3D::set_alpha_antialiasing(AlphaAntiAliasing p_alpha_aa) {
+ if (alpha_antialiasing_mode == p_alpha_aa) {
+ return;
+ }
+
+ alpha_antialiasing_mode = p_alpha_aa;
+ _queue_shader_change();
+ _change_notify();
+}
+
+BaseMaterial3D::AlphaAntiAliasing BaseMaterial3D::get_alpha_antialiasing() const {
+ return alpha_antialiasing_mode;
+}
+
void BaseMaterial3D::set_shading_mode(ShadingMode p_shading_mode) {
if (shading_mode == p_shading_mode) {
return;
@@ -1530,6 +1597,10 @@ void BaseMaterial3D::set_texture(TextureParam p_param, const Ref<Texture2D> &p_t
textures[p_param] = p_texture;
RID rid = p_texture.is_valid() ? p_texture->get_rid() : RID();
RS::get_singleton()->material_set_param(_get_material(), shader_names->texture_names[p_param], rid);
+ if (p_texture.is_valid() && p_param == TEXTURE_ALBEDO) {
+ RS::get_singleton()->material_set_param(_get_material(), shader_names->albedo_texture_size,
+ Vector2i(p_texture->get_width(), p_texture->get_height()));
+ }
_change_notify();
_queue_shader_change();
}
@@ -1605,10 +1676,34 @@ void BaseMaterial3D::_validate_property(PropertyInfo &property) const {
property.usage = 0;
}
+ // you can only enable anti-aliasing (in mataerials) on alpha scissor and alpha hash
+ const bool can_select_aa = (transparency == TRANSPARENCY_ALPHA_SCISSOR || transparency == TRANSPARENCY_ALPHA_HASH);
+ // alpha anti aliasiasing is only enabled when you can select aa
+ const bool alpha_aa_enabled = (alpha_antialiasing_mode != ALPHA_ANTIALIASING_OFF) && can_select_aa;
+
+ // alpha scissor slider isn't needed when alpha antialiasing is enabled
if (property.name == "alpha_scissor_threshold" && transparency != TRANSPARENCY_ALPHA_SCISSOR) {
property.usage = 0;
}
+ // alpha hash scale slider is only needed if transparency is alpha hash
+ if (property.name == "alpha_hash_scale" && transparency != TRANSPARENCY_ALPHA_HASH) {
+ property.usage = 0;
+ }
+
+ if (property.name == "alpha_antialiasing_mode" && !can_select_aa) {
+ property.usage = 0;
+ }
+
+ // we cant choose an antialiasing mode if alpha isnt possible
+ if (property.name == "alpha_antialiasing_edge" && !alpha_aa_enabled) {
+ property.usage = 0;
+ }
+
+ if (property.name == "blend_mode" && alpha_aa_enabled) {
+ property.usage = 0;
+ }
+
if ((property.name == "heightmap_min_layers" || property.name == "heightmap_max_layers") && !deep_parallax) {
property.usage = 0;
}
@@ -1845,6 +1940,24 @@ float BaseMaterial3D::get_alpha_scissor_threshold() const {
return alpha_scissor_threshold;
}
+void BaseMaterial3D::set_alpha_hash_scale(float p_scale) {
+ alpha_hash_scale = p_scale;
+ RS::get_singleton()->material_set_param(_get_material(), shader_names->alpha_hash_scale, p_scale);
+}
+
+float BaseMaterial3D::get_alpha_hash_scale() const {
+ return alpha_hash_scale;
+}
+
+void BaseMaterial3D::set_alpha_antialiasing_edge(float p_edge) {
+ alpha_antialiasing_edge = p_edge;
+ RS::get_singleton()->material_set_param(_get_material(), shader_names->alpha_antialiasing_edge, p_edge);
+}
+
+float BaseMaterial3D::get_alpha_antialiasing_edge() const {
+ return alpha_antialiasing_edge;
+}
+
void BaseMaterial3D::set_grow(float p_grow) {
grow = p_grow;
RS::get_singleton()->material_set_param(_get_material(), shader_names->grow, p_grow);
@@ -2033,6 +2146,12 @@ void BaseMaterial3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_transparency", "transparency"), &BaseMaterial3D::set_transparency);
ClassDB::bind_method(D_METHOD("get_transparency"), &BaseMaterial3D::get_transparency);
+ ClassDB::bind_method(D_METHOD("set_alpha_antialiasing", "alpha_aa"), &BaseMaterial3D::set_alpha_antialiasing);
+ ClassDB::bind_method(D_METHOD("get_alpha_antialiasing"), &BaseMaterial3D::get_alpha_antialiasing);
+
+ ClassDB::bind_method(D_METHOD("set_alpha_antialiasing_edge", "edge"), &BaseMaterial3D::set_alpha_antialiasing_edge);
+ ClassDB::bind_method(D_METHOD("get_alpha_antialiasing_edge"), &BaseMaterial3D::get_alpha_antialiasing_edge);
+
ClassDB::bind_method(D_METHOD("set_shading_mode", "shading_mode"), &BaseMaterial3D::set_shading_mode);
ClassDB::bind_method(D_METHOD("get_shading_mode"), &BaseMaterial3D::get_shading_mode);
@@ -2186,6 +2305,9 @@ void BaseMaterial3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_alpha_scissor_threshold", "threshold"), &BaseMaterial3D::set_alpha_scissor_threshold);
ClassDB::bind_method(D_METHOD("get_alpha_scissor_threshold"), &BaseMaterial3D::get_alpha_scissor_threshold);
+ ClassDB::bind_method(D_METHOD("set_alpha_hash_scale", "threshold"), &BaseMaterial3D::set_alpha_hash_scale);
+ ClassDB::bind_method(D_METHOD("get_alpha_hash_scale"), &BaseMaterial3D::get_alpha_hash_scale);
+
ClassDB::bind_method(D_METHOD("set_grow_enabled", "enable"), &BaseMaterial3D::set_grow_enabled);
ClassDB::bind_method(D_METHOD("is_grow_enabled"), &BaseMaterial3D::is_grow_enabled);
@@ -2217,8 +2339,11 @@ void BaseMaterial3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_distance_fade_min_distance"), &BaseMaterial3D::get_distance_fade_min_distance);
ADD_GROUP("Transparency", "");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "transparency", PROPERTY_HINT_ENUM, "Disabled,Alpha,AlphaScissor,DepthPrePass"), "set_transparency", "get_transparency");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "transparency", PROPERTY_HINT_ENUM, "Disabled,Alpha,Alpha Scissor,Alpha Hash,Depth PrePass"), "set_transparency", "get_transparency");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "alpha_scissor_threshold", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_alpha_scissor_threshold", "get_alpha_scissor_threshold");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "alpha_hash_scale", PROPERTY_HINT_RANGE, "0,2,0.01"), "set_alpha_hash_scale", "get_alpha_hash_scale");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "alpha_antialiasing_mode", PROPERTY_HINT_ENUM, "Disabled,Alpha Edge Blend,Alpha Edge Clip"), "set_alpha_antialiasing", "get_alpha_antialiasing");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "alpha_antialiasing_edge", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_alpha_antialiasing_edge", "get_alpha_antialiasing_edge");
ADD_PROPERTY(PropertyInfo(Variant::INT, "blend_mode", PROPERTY_HINT_ENUM, "Mix,Add,Sub,Mul"), "set_blend_mode", "get_blend_mode");
ADD_PROPERTY(PropertyInfo(Variant::INT, "cull_mode", PROPERTY_HINT_ENUM, "Back,Front,Disabled"), "set_cull_mode", "get_cull_mode");
ADD_PROPERTY(PropertyInfo(Variant::INT, "depth_draw_mode", PROPERTY_HINT_ENUM, "Opaque Only,Always,Never"), "set_depth_draw_mode", "get_depth_draw_mode");
@@ -2414,6 +2539,7 @@ void BaseMaterial3D::_bind_methods() {
BIND_ENUM_CONSTANT(TRANSPARENCY_DISABLED);
BIND_ENUM_CONSTANT(TRANSPARENCY_ALPHA);
BIND_ENUM_CONSTANT(TRANSPARENCY_ALPHA_SCISSOR);
+ BIND_ENUM_CONSTANT(TRANSPARENCY_ALPHA_HASH);
BIND_ENUM_CONSTANT(TRANSPARENCY_ALPHA_DEPTH_PRE_PASS);
BIND_ENUM_CONSTANT(TRANSPARENCY_MAX);
@@ -2441,6 +2567,10 @@ void BaseMaterial3D::_bind_methods() {
BIND_ENUM_CONSTANT(BLEND_MODE_SUB);
BIND_ENUM_CONSTANT(BLEND_MODE_MUL);
+ BIND_ENUM_CONSTANT(ALPHA_ANTIALIASING_OFF);
+ BIND_ENUM_CONSTANT(ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE);
+ BIND_ENUM_CONSTANT(ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE);
+
BIND_ENUM_CONSTANT(DEPTH_DRAW_OPAQUE_ONLY);
BIND_ENUM_CONSTANT(DEPTH_DRAW_ALWAYS);
BIND_ENUM_CONSTANT(DEPTH_DRAW_DISABLED);
@@ -2506,8 +2636,9 @@ BaseMaterial3D::BaseMaterial3D(bool p_orm) :
element(this) {
orm = p_orm;
// Initialize to the same values as the shader
- transparency = TRANSPARENCY_DISABLED;
shading_mode = SHADING_MODE_PER_PIXEL;
+ transparency = TRANSPARENCY_DISABLED;
+ alpha_antialiasing_mode = ALPHA_ANTIALIASING_OFF;
set_albedo(Color(1.0, 1.0, 1.0, 1.0));
set_specular(0.5);
set_roughness(1.0);
@@ -2539,9 +2670,14 @@ BaseMaterial3D::BaseMaterial3D(bool p_orm) :
set_particles_anim_h_frames(1);
set_particles_anim_v_frames(1);
set_particles_anim_loop(false);
- set_alpha_scissor_threshold(0.98);
emission_op = EMISSION_OP_ADD;
+ set_transparency(TRANSPARENCY_DISABLED);
+ set_alpha_antialiasing(ALPHA_ANTIALIASING_OFF);
+ set_alpha_scissor_threshold(0.05);
+ set_alpha_hash_scale(1.0);
+ set_alpha_antialiasing_edge(0.3);
+
proximity_fade_enabled = false;
distance_fade = DISTANCE_FADE_DISABLED;
set_proximity_fade_distance(1);
@@ -2582,10 +2718,8 @@ BaseMaterial3D::BaseMaterial3D(bool p_orm) :
features[i] = false;
}
- current_key.key0 = 0;
- current_key.key1 = 0;
- current_key.invalid_key = 1;
texture_filter = TEXTURE_FILTER_LINEAR_WITH_MIPMAPS;
+
_queue_shader_change();
}
@@ -2633,6 +2767,12 @@ bool StandardMaterial3D::_set(const StringName &p_name, const Variant &p_value)
set_transparency(TRANSPARENCY_ALPHA_SCISSOR);
}
return true;
+ } else if (p_name == "params_use_alpha_hash") {
+ bool use_hash = p_value;
+ if (use_hash) {
+ set_transparency(TRANSPARENCY_ALPHA_HASH);
+ }
+ return true;
} else if (p_name == "params_depth_draw_mode") {
int mode = p_value;
if (mode == 3) {
@@ -2667,6 +2807,8 @@ bool StandardMaterial3D::_set(const StringName &p_name, const Variant &p_value)
{ "params_grow", "grow" },
{ "params_grow_amount", "grow_amount" },
{ "params_alpha_scissor_threshold", "alpha_scissor_threshold" },
+ { "params_alpha_hash_scale", "alpha_hash_scale" },
+ { "params_alpha_antialiasing_edge", "alpha_antialiasing_edge" },
{ "depth_scale", "heightmap_scale" },
{ "depth_deep_parallax", "heightmap_deep_parallax" },
diff --git a/scene/resources/material.h b/scene/resources/material.h
index b5bdd77eb5..da1808d348 100644
--- a/scene/resources/material.h
+++ b/scene/resources/material.h
@@ -145,17 +145,26 @@ public:
enum DetailUV {
DETAIL_UV_1,
- DETAIL_UV_2
+ DETAIL_UV_2,
+ DETAIL_UV_MAX
};
enum Transparency {
TRANSPARENCY_DISABLED,
TRANSPARENCY_ALPHA,
TRANSPARENCY_ALPHA_SCISSOR,
+ TRANSPARENCY_ALPHA_HASH,
TRANSPARENCY_ALPHA_DEPTH_PRE_PASS,
TRANSPARENCY_MAX,
};
+ enum AlphaAntiAliasing {
+ ALPHA_ANTIALIASING_OFF,
+ ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE,
+ ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE,
+ ALPHA_ANTIALIASING_MAX
+ };
+
enum ShadingMode {
SHADING_MODE_UNSHADED,
SHADING_MODE_PER_PIXEL,
@@ -184,18 +193,21 @@ public:
BLEND_MODE_ADD,
BLEND_MODE_SUB,
BLEND_MODE_MUL,
+ BLEND_MODE_MAX
};
enum DepthDrawMode {
DEPTH_DRAW_OPAQUE_ONLY,
DEPTH_DRAW_ALWAYS,
DEPTH_DRAW_DISABLED,
+ DEPTH_DRAW_MAX
};
enum CullMode {
CULL_BACK,
CULL_FRONT,
- CULL_DISABLED
+ CULL_DISABLED,
+ CULL_MAX
};
enum Flags {
@@ -227,6 +239,7 @@ public:
DIFFUSE_LAMBERT_WRAP,
DIFFUSE_OREN_NAYAR,
DIFFUSE_TOON,
+ DIFFUSE_MAX
};
enum SpecularMode {
@@ -235,6 +248,7 @@ public:
SPECULAR_PHONG,
SPECULAR_TOON,
SPECULAR_DISABLED,
+ SPECULAR_MAX
};
enum BillboardMode {
@@ -242,6 +256,7 @@ public:
BILLBOARD_ENABLED,
BILLBOARD_FIXED_Y,
BILLBOARD_PARTICLES,
+ BILLBOARD_MAX
};
enum TextureChannel {
@@ -249,12 +264,14 @@ public:
TEXTURE_CHANNEL_GREEN,
TEXTURE_CHANNEL_BLUE,
TEXTURE_CHANNEL_ALPHA,
- TEXTURE_CHANNEL_GRAYSCALE
+ TEXTURE_CHANNEL_GRAYSCALE,
+ TEXTURE_CHANNEL_MAX
};
enum EmissionOperator {
EMISSION_OP_ADD,
- EMISSION_OP_MULTIPLY
+ EMISSION_OP_MULTIPLY,
+ EMISSION_OP_MAX
};
enum DistanceFadeMode {
@@ -262,43 +279,47 @@ public:
DISTANCE_FADE_PIXEL_ALPHA,
DISTANCE_FADE_PIXEL_DITHER,
DISTANCE_FADE_OBJECT_DITHER,
+ DISTANCE_FADE_MAX
};
private:
- union MaterialKey {
- struct {
- uint64_t feature_mask : FEATURE_MAX;
- uint64_t detail_uv : 1;
- uint64_t blend_mode : 2;
- uint64_t depth_draw_mode : 2;
- uint64_t cull_mode : 2;
- uint64_t flags : FLAG_MAX;
- uint64_t detail_blend_mode : 2;
- uint64_t diffuse_mode : 3;
- uint64_t specular_mode : 3;
- uint64_t invalid_key : 1;
- uint64_t deep_parallax : 1;
- uint64_t billboard_mode : 2;
- uint64_t grow : 1;
- uint64_t proximity_fade : 1;
- uint64_t distance_fade : 2;
- uint64_t emission_op : 1;
- uint64_t texture_filter : 3;
- uint64_t transparency : 2;
- uint64_t shading_mode : 2;
- uint64_t roughness_channel : 3;
- };
-
- struct {
- uint64_t key0;
- uint64_t key1;
- };
+ struct MaterialKey {
+ // enum values
+ uint64_t texture_filter : get_num_bits(TEXTURE_FILTER_MAX - 1);
+ uint64_t detail_uv : get_num_bits(DETAIL_UV_MAX - 1);
+ uint64_t transparency : get_num_bits(TRANSPARENCY_MAX - 1);
+ uint64_t alpha_antialiasing_mode : get_num_bits(ALPHA_ANTIALIASING_MAX - 1);
+ uint64_t shading_mode : get_num_bits(SHADING_MODE_MAX - 1);
+ uint64_t blend_mode : get_num_bits(BLEND_MODE_MAX - 1);
+ uint64_t depth_draw_mode : get_num_bits(DEPTH_DRAW_MAX - 1);
+ uint64_t cull_mode : get_num_bits(CULL_MAX - 1);
+ uint64_t diffuse_mode : get_num_bits(DIFFUSE_MAX - 1);
+ uint64_t specular_mode : get_num_bits(SPECULAR_MAX - 1);
+ uint64_t billboard_mode : get_num_bits(BILLBOARD_MAX - 1);
+ uint64_t detail_blend_mode : get_num_bits(BLEND_MODE_MAX - 1);
+ uint64_t roughness_channel : get_num_bits(TEXTURE_CHANNEL_MAX - 1);
+ uint64_t emission_op : get_num_bits(EMISSION_OP_MAX - 1);
+ uint64_t distance_fade : get_num_bits(DISTANCE_FADE_MAX - 1);
+
+ // flag bitfield
+ uint64_t feature_mask : FEATURE_MAX - 1;
+ uint64_t flags : FLAG_MAX - 1;
+
+ // booleans
+ uint64_t deep_parallax : 1;
+ uint64_t grow : 1;
+ uint64_t proximity_fade : 1;
+
+ MaterialKey() {
+ memset(this, 0, sizeof(MaterialKey));
+ }
bool operator==(const MaterialKey &p_key) const {
- return (key0 == p_key.key0) && (key1 == p_key.key1);
+ return memcmp(this, &p_key, sizeof(MaterialKey)) == 0;
}
+
bool operator<(const MaterialKey &p_key) const {
- return (key0 == p_key.key0) ? (key1 < p_key.key1) : (key0 < p_key.key0);
+ return memcmp(this, &p_key, sizeof(MaterialKey)) < 0;
}
};
@@ -313,13 +334,7 @@ private:
_FORCE_INLINE_ MaterialKey _compute_key() const {
MaterialKey mk;
- mk.key0 = 0;
- mk.key1 = 0;
- for (int i = 0; i < FEATURE_MAX; i++) {
- if (features[i]) {
- mk.feature_mask |= ((uint64_t)1 << i);
- }
- }
+
mk.detail_uv = detail_uv;
mk.blend_mode = blend_mode;
mk.depth_draw_mode = depth_draw_mode;
@@ -328,20 +343,28 @@ private:
mk.transparency = transparency;
mk.shading_mode = shading_mode;
mk.roughness_channel = roughness_texture_channel;
- for (int i = 0; i < FLAG_MAX; i++) {
- if (flags[i]) {
- mk.flags |= ((uint64_t)1 << i);
- }
- }
mk.detail_blend_mode = detail_blend_mode;
mk.diffuse_mode = diffuse_mode;
mk.specular_mode = specular_mode;
mk.billboard_mode = billboard_mode;
- mk.deep_parallax = deep_parallax ? 1 : 0;
+ mk.deep_parallax = deep_parallax;
mk.grow = grow_enabled;
mk.proximity_fade = proximity_fade_enabled;
mk.distance_fade = distance_fade;
mk.emission_op = emission_op;
+ mk.alpha_antialiasing_mode = alpha_antialiasing_mode;
+
+ for (int i = 0; i < FEATURE_MAX; i++) {
+ if (features[i]) {
+ mk.feature_mask |= ((uint64_t)1 << i);
+ }
+ }
+
+ for (int i = 0; i < FLAG_MAX; i++) {
+ if (flags[i]) {
+ mk.flags |= ((uint64_t)1 << i);
+ }
+ }
return mk;
}
@@ -392,9 +415,14 @@ private:
StringName rim_texture_channel;
StringName heightmap_texture_channel;
StringName refraction_texture_channel;
- StringName alpha_scissor_threshold;
StringName texture_names[TEXTURE_MAX];
+
+ StringName alpha_scissor_threshold;
+ StringName alpha_hash_scale;
+
+ StringName alpha_antialiasing_edge;
+ StringName albedo_texture_size;
};
static Mutex material_mutex;
@@ -433,6 +461,8 @@ private:
float refraction;
float point_size;
float alpha_scissor_threshold;
+ float alpha_hash_scale;
+ float alpha_antialiasing_edge;
bool grow_enabled;
float ao_light_affect;
float grow;
@@ -482,6 +512,8 @@ private:
TextureChannel ao_texture_channel;
TextureChannel refraction_texture_channel;
+ AlphaAntiAliasing alpha_antialiasing_mode;
+
bool features[FEATURE_MAX];
Ref<Texture2D> textures[TEXTURE_MAX];
@@ -584,6 +616,12 @@ public:
void set_transparency(Transparency p_transparency);
Transparency get_transparency() const;
+ void set_alpha_antialiasing(AlphaAntiAliasing p_alpha_aa);
+ AlphaAntiAliasing get_alpha_antialiasing() const;
+
+ void set_alpha_antialiasing_edge(float p_edge);
+ float get_alpha_antialiasing_edge() const;
+
void set_shading_mode(ShadingMode p_shading_mode);
ShadingMode get_shading_mode() const;
@@ -660,6 +698,9 @@ public:
void set_alpha_scissor_threshold(float p_threshold);
float get_alpha_scissor_threshold() const;
+ void set_alpha_hash_scale(float p_scale);
+ float get_alpha_hash_scale() const;
+
void set_on_top_of_alpha();
void set_proximity_fade(bool p_enable);
@@ -707,6 +748,7 @@ VARIANT_ENUM_CAST(BaseMaterial3D::TextureParam)
VARIANT_ENUM_CAST(BaseMaterial3D::TextureFilter)
VARIANT_ENUM_CAST(BaseMaterial3D::ShadingMode)
VARIANT_ENUM_CAST(BaseMaterial3D::Transparency)
+VARIANT_ENUM_CAST(BaseMaterial3D::AlphaAntiAliasing)
VARIANT_ENUM_CAST(BaseMaterial3D::DetailUV)
VARIANT_ENUM_CAST(BaseMaterial3D::Feature)
VARIANT_ENUM_CAST(BaseMaterial3D::BlendMode)
diff --git a/servers/rendering/rasterizer.h b/servers/rendering/rasterizer.h
index 4ece811a1e..02aa329b07 100644
--- a/servers/rendering/rasterizer.h
+++ b/servers/rendering/rasterizer.h
@@ -815,7 +815,8 @@ public:
CANVAS_RECT_FLIP_H = 4,
CANVAS_RECT_FLIP_V = 8,
CANVAS_RECT_TRANSPOSE = 16,
- CANVAS_RECT_CLIP_UV = 32
+ CANVAS_RECT_CLIP_UV = 32,
+ CANVAS_RECT_IS_GROUP = 64,
};
struct Light {
@@ -831,7 +832,9 @@ public:
int layer_max;
int item_mask;
int item_shadow_mask;
+ float directional_distance;
RS::CanvasLightMode mode;
+ RS::CanvasLightBlendMode blend_mode;
RID texture;
Vector2 texture_offset;
RID canvas;
@@ -853,7 +856,7 @@ public:
Light *shadows_next_ptr;
Light *filter_next_ptr;
Light *next_ptr;
- Light *mask_next_ptr;
+ Light *directional_next_ptr;
RID light_internal;
uint64_t version;
@@ -874,16 +877,18 @@ public:
scale = 1.0;
energy = 1.0;
item_shadow_mask = 1;
- mode = RS::CANVAS_LIGHT_MODE_ADD;
+ mode = RS::CANVAS_LIGHT_MODE_POINT;
+ blend_mode = RS::CANVAS_LIGHT_BLEND_MODE_ADD;
// texture_cache = nullptr;
next_ptr = nullptr;
- mask_next_ptr = nullptr;
+ directional_next_ptr = nullptr;
filter_next_ptr = nullptr;
use_shadow = false;
shadow_buffer_size = 2048;
shadow_filter = RS::CANVAS_LIGHT_FILTER_NONE;
shadow_smooth = 0.0;
render_index_cache = -1;
+ directional_distance = 10000.0;
}
};
@@ -1060,7 +1065,16 @@ public:
bool visible;
bool behind;
bool update_when_visible;
- //RS::MaterialBlendMode blend_mode;
+
+ struct CanvasGroup {
+ RS::CanvasGroupMode mode;
+ bool fit_empty;
+ float fit_margin;
+ bool blur_mipmaps;
+ float clear_margin;
+ };
+
+ CanvasGroup *canvas_group = nullptr;
int light_mask;
int z_final;
@@ -1084,6 +1098,7 @@ public:
Rect2 final_clip_rect;
Item *final_clip_owner;
Item *material_owner;
+ Item *canvas_group_owner;
ViewportRender *vp_render;
bool distance_field;
bool light_masked;
@@ -1242,6 +1257,8 @@ public:
}
void clear() {
+ // The first one is always allocated on heap
+ // the rest go in the blocks
Command *c = commands;
while (c) {
Command *n = c->next;
@@ -1282,6 +1299,7 @@ public:
vp_render = nullptr;
next = nullptr;
final_clip_owner = nullptr;
+ canvas_group_owner = nullptr;
clip = false;
final_modulate = Color(1, 1, 1, 1);
visible = true;
@@ -1308,7 +1326,7 @@ public:
}
};
- virtual void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, const Transform2D &p_canvas_transform, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat) = 0;
+ virtual void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel) = 0;
virtual void canvas_debug_viewport_shadows(Light *p_lights_with_shadow) = 0;
struct LightOccluderInstance {
@@ -1336,6 +1354,7 @@ public:
virtual void light_set_texture(RID p_rid, RID p_texture) = 0;
virtual void light_set_use_shadow(RID p_rid, bool p_enable) = 0;
virtual void light_update_shadow(RID p_rid, int p_shadow_index, const Transform2D &p_light_xform, int p_light_mask, float p_near, float p_far, LightOccluderInstance *p_occluders) = 0;
+ virtual void light_update_directional_shadow(RID p_rid, int p_shadow_index, const Transform2D &p_light_xform, int p_light_mask, float p_cull_distance, const Rect2 &p_clip_rect, LightOccluderInstance *p_occluders) = 0;
virtual RID occluder_polygon_create() = 0;
virtual void occluder_polygon_set_shape_as_lines(RID p_occluder, const Vector<Vector2> &p_lines) = 0;
diff --git a/servers/rendering/rasterizer_rd/rasterizer_canvas_rd.cpp b/servers/rendering/rasterizer_rd/rasterizer_canvas_rd.cpp
index 28674b118c..b33940b22c 100644
--- a/servers/rendering/rasterizer_rd/rasterizer_canvas_rd.cpp
+++ b/servers/rendering/rasterizer_rd/rasterizer_canvas_rd.cpp
@@ -416,10 +416,6 @@ void RasterizerCanvasRD::_render_item(RD::DrawListID p_draw_list, const Item *p_
light_count++;
- if (light->mode == RS::CANVAS_LIGHT_MODE_MASK) {
- base_flags |= FLAGS_USING_LIGHT_MASK;
- }
-
if (light_count == MAX_LIGHTS_PER_ITEM) {
break;
}
@@ -430,7 +426,7 @@ void RasterizerCanvasRD::_render_item(RD::DrawListID p_draw_list, const Item *p_
base_flags |= light_count << FLAGS_LIGHT_COUNT_SHIFT;
}
- light_mode = light_count > 0 ? PIPELINE_LIGHT_MODE_ENABLED : PIPELINE_LIGHT_MODE_DISABLED;
+ light_mode = (light_count > 0 || using_directional_lights) ? PIPELINE_LIGHT_MODE_ENABLED : PIPELINE_LIGHT_MODE_DISABLED;
PipelineVariants *pipeline_variants = p_pipeline_variants;
@@ -1102,28 +1098,36 @@ RID RasterizerCanvasRD::_create_base_uniform_set(RID p_to_render_target, bool p_
return uniform_set;
}
-void RasterizerCanvasRD::_render_items(RID p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights) {
+void RasterizerCanvasRD::_render_items(RID p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights, bool p_to_backbuffer) {
Item *current_clip = nullptr;
Transform2D canvas_transform_inverse = p_canvas_transform_inverse;
- RID framebuffer = storage->render_target_get_rd_framebuffer(p_to_render_target);
-
- Vector<Color> clear_colors;
+ RID framebuffer;
+ RID fb_uniform_set;
bool clear = false;
- if (storage->render_target_is_clear_requested(p_to_render_target)) {
- clear = true;
- clear_colors.push_back(storage->render_target_get_clear_request_color(p_to_render_target));
- storage->render_target_disable_clear_request(p_to_render_target);
- }
+ Vector<Color> clear_colors;
+
+ if (p_to_backbuffer) {
+ framebuffer = storage->render_target_get_rd_backbuffer_framebuffer(p_to_render_target);
+ fb_uniform_set = storage->render_target_get_backbuffer_uniform_set(p_to_render_target);
+ } else {
+ framebuffer = storage->render_target_get_rd_framebuffer(p_to_render_target);
+
+ if (storage->render_target_is_clear_requested(p_to_render_target)) {
+ clear = true;
+ clear_colors.push_back(storage->render_target_get_clear_request_color(p_to_render_target));
+ storage->render_target_disable_clear_request(p_to_render_target);
+ }
#ifndef _MSC_VER
#warning TODO obtain from framebuffer format eventually when this is implemented
#endif
- RID fb_uniform_set = storage->render_target_get_framebuffer_uniform_set(p_to_render_target);
+ fb_uniform_set = storage->render_target_get_framebuffer_uniform_set(p_to_render_target);
+ }
if (fb_uniform_set.is_null() || !RD::get_singleton()->uniform_set_is_valid(fb_uniform_set)) {
- fb_uniform_set = _create_base_uniform_set(p_to_render_target, false);
+ fb_uniform_set = _create_base_uniform_set(p_to_render_target, p_to_backbuffer);
}
RD::FramebufferFormatID fb_format = RD::get_singleton()->framebuffer_get_format(framebuffer);
@@ -1152,10 +1156,16 @@ void RasterizerCanvasRD::_render_items(RID p_to_render_target, int p_item_count,
}
}
- if (ci->material != prev_material) {
+ RID material = ci->material;
+
+ if (material.is_null() && ci->canvas_group != nullptr) {
+ material = default_canvas_group_material;
+ }
+
+ if (material != prev_material) {
MaterialData *material_data = nullptr;
- if (ci->material.is_valid()) {
- material_data = (MaterialData *)storage->material_get_data(ci->material, RasterizerStorageRD::SHADER_TYPE_2D);
+ if (material.is_valid()) {
+ material_data = (MaterialData *)storage->material_get_data(material, RasterizerStorageRD::SHADER_TYPE_2D);
}
if (material_data) {
@@ -1174,55 +1184,89 @@ void RasterizerCanvasRD::_render_items(RID p_to_render_target, int p_item_count,
_render_item(draw_list, ci, fb_format, canvas_transform_inverse, current_clip, p_lights, pipeline_variants);
- prev_material = ci->material;
+ prev_material = material;
}
RD::get_singleton()->draw_list_end();
}
-void RasterizerCanvasRD::canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, const Transform2D &p_canvas_transform, RenderingServer::CanvasItemTextureFilter p_default_filter, RenderingServer::CanvasItemTextureRepeat p_default_repeat) {
+void RasterizerCanvasRD::canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RenderingServer::CanvasItemTextureFilter p_default_filter, RenderingServer::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel) {
int item_count = 0;
//setup canvas state uniforms if needed
Transform2D canvas_transform_inverse = p_canvas_transform.affine_inverse();
+ //setup directional lights if exist
+
+ uint32_t light_count = 0;
+ uint32_t directional_light_count = 0;
{
- //update canvas state uniform buffer
- State::Buffer state_buffer;
+ Light *l = p_directional_light_list;
+ uint32_t index = 0;
- Size2i ssize = storage->render_target_get_size(p_to_render_target);
+ while (l) {
+ if (index == state.max_lights_per_render) {
+ l->render_index_cache = -1;
+ l = l->next_ptr;
+ continue;
+ }
- Transform screen_transform;
- screen_transform.translate(-(ssize.width / 2.0f), -(ssize.height / 2.0f), 0.0f);
- screen_transform.scale(Vector3(2.0f / ssize.width, 2.0f / ssize.height, 1.0f));
- _update_transform_to_mat4(screen_transform, state_buffer.screen_transform);
- _update_transform_2d_to_mat4(p_canvas_transform, state_buffer.canvas_transform);
+ CanvasLight *clight = canvas_light_owner.getornull(l->light_internal);
+ if (!clight) { //unused or invalid texture
+ l->render_index_cache = -1;
+ l = l->next_ptr;
+ ERR_CONTINUE(!clight);
+ }
- Transform2D normal_transform = p_canvas_transform;
- normal_transform.elements[0].normalize();
- normal_transform.elements[1].normalize();
- normal_transform.elements[2] = Vector2();
- _update_transform_2d_to_mat4(normal_transform, state_buffer.canvas_normal_transform);
+ Vector2 canvas_light_dir = l->xform_cache.elements[1].normalized();
- state_buffer.canvas_modulate[0] = p_modulate.r;
- state_buffer.canvas_modulate[1] = p_modulate.g;
- state_buffer.canvas_modulate[2] = p_modulate.b;
- state_buffer.canvas_modulate[3] = p_modulate.a;
+ state.light_uniforms[index].position[0] = -canvas_light_dir.x;
+ state.light_uniforms[index].position[1] = -canvas_light_dir.y;
- Size2 render_target_size = storage->render_target_get_size(p_to_render_target);
- state_buffer.screen_pixel_size[0] = 1.0 / render_target_size.x;
- state_buffer.screen_pixel_size[1] = 1.0 / render_target_size.y;
+ _update_transform_2d_to_mat2x4(clight->shadow.directional_xform, state.light_uniforms[index].shadow_matrix);
- state_buffer.time = state.time;
- RD::get_singleton()->buffer_update(state.canvas_state_buffer, 0, sizeof(State::Buffer), &state_buffer, true);
+ state.light_uniforms[index].height = l->height; //0..1 here
+
+ for (int i = 0; i < 4; i++) {
+ state.light_uniforms[index].shadow_color[i] = uint8_t(CLAMP(int32_t(l->shadow_color[i] * 255.0), 0, 255));
+ state.light_uniforms[index].color[i] = l->color[i];
+ }
+
+ state.light_uniforms[index].color[3] = l->energy; //use alpha for energy, so base color can go separate
+
+ if (state.shadow_fb.is_valid()) {
+ state.light_uniforms[index].shadow_pixel_size = (1.0 / state.shadow_texture_size) * (1.0 + l->shadow_smooth);
+ state.light_uniforms[index].shadow_z_far_inv = 1.0 / clight->shadow.z_far;
+ state.light_uniforms[index].shadow_y_ofs = clight->shadow.y_offset;
+ } else {
+ state.light_uniforms[index].shadow_pixel_size = 1.0;
+ state.light_uniforms[index].shadow_z_far_inv = 1.0;
+ state.light_uniforms[index].shadow_y_ofs = 0;
+ }
+
+ state.light_uniforms[index].flags = l->blend_mode << LIGHT_FLAGS_BLEND_SHIFT;
+ state.light_uniforms[index].flags |= l->shadow_filter << LIGHT_FLAGS_FILTER_SHIFT;
+ if (clight->shadow.enabled) {
+ state.light_uniforms[index].flags |= LIGHT_FLAGS_HAS_SHADOW;
+ }
+
+ l->render_index_cache = index;
+
+ index++;
+ l = l->next_ptr;
+ }
+
+ light_count = index;
+ directional_light_count = light_count;
+ using_directional_lights = directional_light_count > 0;
}
//setup lights if exist
{
Light *l = p_light_list;
- uint32_t index = 0;
+ uint32_t index = light_count;
while (l) {
if (index == state.max_lights_per_render) {
@@ -1264,7 +1308,7 @@ void RasterizerCanvasRD::canvas_render_items(RID p_to_render_target, Item *p_ite
state.light_uniforms[index].shadow_y_ofs = 0;
}
- state.light_uniforms[index].flags |= l->mode << LIGHT_FLAGS_BLEND_SHIFT;
+ state.light_uniforms[index].flags = l->blend_mode << LIGHT_FLAGS_BLEND_SHIFT;
state.light_uniforms[index].flags |= l->shadow_filter << LIGHT_FLAGS_FILTER_SHIFT;
if (clight->shadow.enabled) {
state.light_uniforms[index].flags |= LIGHT_FLAGS_HAS_SHADOW;
@@ -1290,9 +1334,46 @@ void RasterizerCanvasRD::canvas_render_items(RID p_to_render_target, Item *p_ite
l = l->next_ptr;
}
- if (index > 0) {
- RD::get_singleton()->buffer_update(state.lights_uniform_buffer, 0, sizeof(LightUniform) * index, &state.light_uniforms[0], true);
- }
+ light_count = index;
+ }
+
+ if (light_count > 0) {
+ RD::get_singleton()->buffer_update(state.lights_uniform_buffer, 0, sizeof(LightUniform) * light_count, &state.light_uniforms[0], true);
+ }
+
+ {
+ //update canvas state uniform buffer
+ State::Buffer state_buffer;
+
+ Size2i ssize = storage->render_target_get_size(p_to_render_target);
+
+ Transform screen_transform;
+ screen_transform.translate(-(ssize.width / 2.0f), -(ssize.height / 2.0f), 0.0f);
+ screen_transform.scale(Vector3(2.0f / ssize.width, 2.0f / ssize.height, 1.0f));
+ _update_transform_to_mat4(screen_transform, state_buffer.screen_transform);
+ _update_transform_2d_to_mat4(p_canvas_transform, state_buffer.canvas_transform);
+
+ Transform2D normal_transform = p_canvas_transform;
+ normal_transform.elements[0].normalize();
+ normal_transform.elements[1].normalize();
+ normal_transform.elements[2] = Vector2();
+ _update_transform_2d_to_mat4(normal_transform, state_buffer.canvas_normal_transform);
+
+ state_buffer.canvas_modulate[0] = p_modulate.r;
+ state_buffer.canvas_modulate[1] = p_modulate.g;
+ state_buffer.canvas_modulate[2] = p_modulate.b;
+ state_buffer.canvas_modulate[3] = p_modulate.a;
+
+ Size2 render_target_size = storage->render_target_get_size(p_to_render_target);
+ state_buffer.screen_pixel_size[0] = 1.0 / render_target_size.x;
+ state_buffer.screen_pixel_size[1] = 1.0 / render_target_size.y;
+
+ state_buffer.time = state.time;
+ state_buffer.use_pixel_snap = p_snap_2d_vertices_to_pixel;
+
+ state_buffer.directional_light_count = directional_light_count;
+
+ RD::get_singleton()->buffer_update(state.canvas_state_buffer, 0, sizeof(State::Buffer), &state_buffer, true);
}
{ //default filter/repeat
@@ -1306,8 +1387,10 @@ void RasterizerCanvasRD::canvas_render_items(RID p_to_render_target, Item *p_ite
Rect2 back_buffer_rect;
bool backbuffer_copy = false;
+ Item *canvas_group_owner = nullptr;
+
while (ci) {
- if (ci->copy_back_buffer) {
+ if (ci->copy_back_buffer && canvas_group_owner == nullptr) {
backbuffer_copy = true;
if (ci->copy_back_buffer->full) {
@@ -1320,7 +1403,7 @@ void RasterizerCanvasRD::canvas_render_items(RID p_to_render_target, Item *p_ite
if (ci->material.is_valid()) {
MaterialData *md = (MaterialData *)storage->material_get_data(ci->material, RasterizerStorageRD::SHADER_TYPE_2D);
if (md && md->shader_data->valid) {
- if (md->shader_data->uses_screen_texture) {
+ if (md->shader_data->uses_screen_texture && canvas_group_owner == nullptr) {
if (!material_screen_texture_found) {
backbuffer_copy = true;
back_buffer_rect = Rect2();
@@ -1338,12 +1421,44 @@ void RasterizerCanvasRD::canvas_render_items(RID p_to_render_target, Item *p_ite
}
}
+ if (ci->canvas_group_owner != nullptr) {
+ if (canvas_group_owner == nullptr) {
+ //Canvas group begins here, render until before this item
+ _render_items(p_to_render_target, item_count, canvas_transform_inverse, p_light_list);
+ item_count = 0;
+
+ Rect2i group_rect = ci->canvas_group_owner->global_rect_cache;
+
+ if (ci->canvas_group_owner->canvas_group->mode == RS::CANVAS_GROUP_MODE_OPAQUE) {
+ storage->render_target_copy_to_back_buffer(p_to_render_target, group_rect, false);
+ } else {
+ storage->render_target_clear_back_buffer(p_to_render_target, group_rect, Color(0, 0, 0, 0));
+ }
+
+ backbuffer_copy = false;
+ canvas_group_owner = ci->canvas_group_owner; //continue until owner found
+ }
+
+ ci->canvas_group_owner = nullptr; //must be cleared
+ }
+
+ if (ci == canvas_group_owner) {
+ _render_items(p_to_render_target, item_count, canvas_transform_inverse, p_light_list, true);
+ item_count = 0;
+
+ if (ci->canvas_group->blur_mipmaps) {
+ storage->render_target_gen_back_buffer_mipmaps(p_to_render_target, ci->global_rect_cache);
+ }
+
+ canvas_group_owner = nullptr;
+ }
+
if (backbuffer_copy) {
//render anything pending, including clearing if no items
_render_items(p_to_render_target, item_count, canvas_transform_inverse, p_light_list);
item_count = 0;
- storage->render_target_copy_to_back_buffer(p_to_render_target, back_buffer_rect);
+ storage->render_target_copy_to_back_buffer(p_to_render_target, back_buffer_rect, true);
backbuffer_copy = false;
material_screen_texture_found = true; //after a backbuffer copy, screen texture makes no further copies
@@ -1389,10 +1504,7 @@ void RasterizerCanvasRD::light_set_use_shadow(RID p_rid, bool p_enable) {
cl->shadow.enabled = p_enable;
}
-void RasterizerCanvasRD::light_update_shadow(RID p_rid, int p_shadow_index, const Transform2D &p_light_xform, int p_light_mask, float p_near, float p_far, LightOccluderInstance *p_occluders) {
- CanvasLight *cl = canvas_light_owner.getornull(p_rid);
- ERR_FAIL_COND(!cl->shadow.enabled);
-
+void RasterizerCanvasRD::_update_shadow_atlas() {
if (state.shadow_fb == RID()) {
//ah, we lack the shadow texture..
RD::get_singleton()->free(state.shadow_texture); //erase placeholder
@@ -1424,6 +1536,12 @@ void RasterizerCanvasRD::light_update_shadow(RID p_rid, int p_shadow_index, cons
state.shadow_fb = RD::get_singleton()->framebuffer_create(fb_textures);
}
+}
+void RasterizerCanvasRD::light_update_shadow(RID p_rid, int p_shadow_index, const Transform2D &p_light_xform, int p_light_mask, float p_near, float p_far, LightOccluderInstance *p_occluders) {
+ CanvasLight *cl = canvas_light_owner.getornull(p_rid);
+ ERR_FAIL_COND(!cl->shadow.enabled);
+
+ _update_shadow_atlas();
cl->shadow.z_far = p_far;
cl->shadow.y_offset = float(p_shadow_index * 2 + 1) / float(state.max_lights_per_render * 2);
@@ -1497,6 +1615,86 @@ void RasterizerCanvasRD::light_update_shadow(RID p_rid, int p_shadow_index, cons
}
}
+void RasterizerCanvasRD::light_update_directional_shadow(RID p_rid, int p_shadow_index, const Transform2D &p_light_xform, int p_light_mask, float p_cull_distance, const Rect2 &p_clip_rect, LightOccluderInstance *p_occluders) {
+ CanvasLight *cl = canvas_light_owner.getornull(p_rid);
+ ERR_FAIL_COND(!cl->shadow.enabled);
+
+ _update_shadow_atlas();
+
+ Vector2 light_dir = p_light_xform.elements[1].normalized();
+
+ Vector2 center = p_clip_rect.position + p_clip_rect.size * 0.5;
+
+ float to_edge_distance = ABS(light_dir.dot(p_clip_rect.get_support(light_dir)) - light_dir.dot(center));
+
+ Vector2 from_pos = center - light_dir * (to_edge_distance + p_cull_distance);
+ float distance = to_edge_distance * 2.0 + p_cull_distance;
+ float half_size = p_clip_rect.size.length() * 0.5; //shadow length, must keep this no matter the angle
+
+ cl->shadow.z_far = distance;
+ cl->shadow.y_offset = float(p_shadow_index * 2 + 1) / float(state.max_lights_per_render * 2);
+
+ Transform2D to_light_xform;
+
+ to_light_xform[2] = from_pos;
+ to_light_xform[1] = light_dir;
+ to_light_xform[0] = -light_dir.tangent();
+
+ to_light_xform.invert();
+
+ Vector<Color> cc;
+ cc.push_back(Color(1, 1, 1, 1));
+
+ Rect2i rect(0, p_shadow_index * 2, state.shadow_texture_size, 2);
+ RD::DrawListID draw_list = RD::get_singleton()->draw_list_begin(state.shadow_fb, RD::INITIAL_ACTION_CLEAR, RD::FINAL_ACTION_READ, RD::INITIAL_ACTION_CLEAR, RD::FINAL_ACTION_DISCARD, cc, 1.0, 0, rect);
+
+ CameraMatrix projection;
+ projection.set_orthogonal(-half_size, half_size, -0.5, 0.5, 0.0, distance);
+ projection = projection * CameraMatrix(Transform().looking_at(Vector3(0, 1, 0), Vector3(0, 0, -1)).affine_inverse());
+
+ ShadowRenderPushConstant push_constant;
+ for (int y = 0; y < 4; y++) {
+ for (int x = 0; x < 4; x++) {
+ push_constant.projection[y * 4 + x] = projection.matrix[y][x];
+ }
+ }
+
+ push_constant.direction[0] = 0.0;
+ push_constant.direction[1] = 1.0;
+ push_constant.z_far = distance;
+ push_constant.pad = 0;
+
+ LightOccluderInstance *instance = p_occluders;
+
+ while (instance) {
+ OccluderPolygon *co = occluder_polygon_owner.getornull(instance->occluder);
+
+ if (!co || co->index_array.is_null() || !(p_light_mask & instance->light_mask)) {
+ instance = instance->next;
+ continue;
+ }
+
+ _update_transform_2d_to_mat2x4(to_light_xform * instance->xform_cache, push_constant.modelview);
+
+ RD::get_singleton()->draw_list_bind_render_pipeline(draw_list, shadow_render.render_pipelines[co->cull_mode]);
+ RD::get_singleton()->draw_list_bind_vertex_array(draw_list, co->vertex_array);
+ RD::get_singleton()->draw_list_bind_index_array(draw_list, co->index_array);
+ RD::get_singleton()->draw_list_set_push_constant(draw_list, &push_constant, sizeof(ShadowRenderPushConstant));
+
+ RD::get_singleton()->draw_list_draw(draw_list, true);
+
+ instance = instance->next;
+ }
+
+ RD::get_singleton()->draw_list_end();
+
+ Transform2D to_shadow;
+ to_shadow.elements[0].x = 1.0 / -(half_size * 2.0);
+ to_shadow.elements[2].x = 0.5;
+
+ cl->shadow.directional_xform = to_shadow * to_light_xform;
+}
+
RID RasterizerCanvasRD::occluder_polygon_create() {
OccluderPolygon occluder;
occluder.point_count = 0;
@@ -1672,10 +1870,11 @@ void RasterizerCanvasRD::ShaderData::set_code(const String &p_code) {
} break;
case BLEND_MODE_MIX: {
attachment.enable_blend = true;
- attachment.alpha_blend_op = RD::BLEND_OP_ADD;
attachment.color_blend_op = RD::BLEND_OP_ADD;
attachment.src_color_blend_factor = RD::BLEND_FACTOR_SRC_ALPHA;
attachment.dst_color_blend_factor = RD::BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
+
+ attachment.alpha_blend_op = RD::BLEND_OP_ADD;
attachment.src_alpha_blend_factor = RD::BLEND_FACTOR_ONE;
attachment.dst_alpha_blend_factor = RD::BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
@@ -2013,6 +2212,20 @@ RasterizerCanvasRD::RasterizerCanvasRD(RasterizerStorageRD *p_storage) {
shader.default_version = shader.canvas_shader.version_create();
shader.default_version_rd_shader = shader.canvas_shader.version_get_shader(shader.default_version, SHADER_VARIANT_QUAD);
+ RD::PipelineColorBlendState blend_state;
+ RD::PipelineColorBlendState::Attachment blend_attachment;
+
+ blend_attachment.enable_blend = true;
+ blend_attachment.color_blend_op = RD::BLEND_OP_ADD;
+ blend_attachment.src_color_blend_factor = RD::BLEND_FACTOR_SRC_ALPHA;
+ blend_attachment.dst_color_blend_factor = RD::BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
+
+ blend_attachment.alpha_blend_op = RD::BLEND_OP_ADD;
+ blend_attachment.src_alpha_blend_factor = RD::BLEND_FACTOR_ONE;
+ blend_attachment.dst_alpha_blend_factor = RD::BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
+
+ blend_state.attachments.push_back(blend_attachment);
+
for (int i = 0; i < PIPELINE_LIGHT_MODE_MAX; i++) {
for (int j = 0; j < PIPELINE_VARIANT_MAX; j++) {
RD::RenderPrimitive primitive[PIPELINE_VARIANT_MAX] = {
@@ -2054,7 +2267,7 @@ RasterizerCanvasRD::RasterizerCanvasRD(RasterizerStorageRD *p_storage) {
};
RID shader_variant = shader.canvas_shader.version_get_shader(shader.default_version, shader_variants[i][j]);
- shader.pipeline_variants.variants[i][j].setup(shader_variant, primitive[j], RD::PipelineRasterizationState(), RD::PipelineMultisampleState(), RD::PipelineDepthStencilState(), RD::PipelineColorBlendState::create_blend(), 0);
+ shader.pipeline_variants.variants[i][j].setup(shader_variant, primitive[j], RD::PipelineRasterizationState(), RD::PipelineMultisampleState(), RD::PipelineDepthStencilState(), blend_state, 0);
}
}
}
@@ -2260,6 +2473,13 @@ RasterizerCanvasRD::RasterizerCanvasRD(RasterizerStorageRD *p_storage) {
state.time = 0;
+ {
+ default_canvas_group_shader = storage->shader_create();
+ storage->shader_set_code(default_canvas_group_shader, "shader_type canvas_item; \nvoid fragment() {\n\tvec4 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0); if (c.a > 0.0001) c.rgb/=c.a; COLOR *= c; \n}\n");
+ default_canvas_group_material = storage->material_create();
+ storage->material_set_shader(default_canvas_group_material, default_canvas_group_shader);
+ }
+
static_assert(sizeof(PushConstant) == 128);
}
@@ -2307,6 +2527,9 @@ void RasterizerCanvasRD::set_shadow_texture_size(int p_size) {
RasterizerCanvasRD::~RasterizerCanvasRD() {
//canvas state
+ storage->free(default_canvas_group_material);
+ storage->free(default_canvas_group_shader);
+
{
if (state.canvas_state_buffer.is_valid()) {
RD::get_singleton()->free(state.canvas_state_buffer);
diff --git a/servers/rendering/rasterizer_rd/rasterizer_canvas_rd.h b/servers/rendering/rasterizer_rd/rasterizer_canvas_rd.h
index 5791efa4e5..b516f63cbf 100644
--- a/servers/rendering/rasterizer_rd/rasterizer_canvas_rd.h
+++ b/servers/rendering/rasterizer_rd/rasterizer_canvas_rd.h
@@ -75,11 +75,9 @@ class RasterizerCanvasRD : public RasterizerCanvas {
FLAGS_CLIP_RECT_UV = (1 << 9),
FLAGS_TRANSPOSE_RECT = (1 << 10),
- FLAGS_USING_LIGHT_MASK = (1 << 11),
FLAGS_NINEPACH_DRAW_CENTER = (1 << 12),
FLAGS_USING_PARTICLES = (1 << 13),
- FLAGS_USE_PIXEL_SNAP = (1 << 14),
FLAGS_USE_SKELETON = (1 << 15),
FLAGS_NINEPATCH_H_MODE_SHIFT = 16,
@@ -270,6 +268,7 @@ class RasterizerCanvasRD : public RasterizerCanvas {
bool enabled = false;
float z_far;
float y_offset;
+ Transform2D directional_xform;
} shadow;
};
@@ -332,12 +331,13 @@ class RasterizerCanvasRD : public RasterizerCanvas {
float screen_transform[16];
float canvas_normal_transform[16];
float canvas_modulate[4];
+
float screen_pixel_size[2];
float time;
- float pad;
+ uint32_t use_pixel_snap;
- //uint32_t light_count;
- //uint32_t pad[3];
+ uint32_t directional_light_count;
+ uint32_t pad[3];
};
LightUniform *light_uniforms;
@@ -356,6 +356,7 @@ class RasterizerCanvasRD : public RasterizerCanvas {
uint32_t max_lights_per_item;
double time;
+
} state;
struct PushConstant {
@@ -389,8 +390,12 @@ class RasterizerCanvasRD : public RasterizerCanvas {
Item *items[MAX_RENDER_ITEMS];
+ bool using_directional_lights = false;
RID default_canvas_texture;
+ RID default_canvas_group_shader;
+ RID default_canvas_group_material;
+
RS::CanvasItemTextureFilter default_filter = RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR;
RS::CanvasItemTextureRepeat default_repeat = RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED;
@@ -398,7 +403,7 @@ class RasterizerCanvasRD : public RasterizerCanvas {
inline void _bind_canvas_texture(RD::DrawListID p_draw_list, RID p_texture, RS::CanvasItemTextureFilter p_base_filter, RS::CanvasItemTextureRepeat p_base_repeat, RID &r_last_texture, PushConstant &push_constant, Size2 &r_texpixel_size); //recursive, so regular inline used instead.
void _render_item(RenderingDevice::DrawListID p_draw_list, const Item *p_item, RenderingDevice::FramebufferFormatID p_framebuffer_format, const Transform2D &p_canvas_transform_inverse, Item *&current_clip, Light *p_lights, PipelineVariants *p_pipeline_variants);
- void _render_items(RID p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights);
+ void _render_items(RID p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights, bool p_to_backbuffer = false);
_FORCE_INLINE_ void _update_transform_2d_to_mat2x4(const Transform2D &p_transform, float *p_mat2x4);
_FORCE_INLINE_ void _update_transform_2d_to_mat2x3(const Transform2D &p_transform, float *p_mat2x3);
@@ -406,6 +411,8 @@ class RasterizerCanvasRD : public RasterizerCanvas {
_FORCE_INLINE_ void _update_transform_2d_to_mat4(const Transform2D &p_transform, float *p_mat4);
_FORCE_INLINE_ void _update_transform_to_mat4(const Transform &p_transform, float *p_mat4);
+ void _update_shadow_atlas();
+
public:
PolygonID request_polygon(const Vector<int> &p_indices, const Vector<Point2> &p_points, const Vector<Color> &p_colors, const Vector<Point2> &p_uvs = Vector<Point2>(), const Vector<int> &p_bones = Vector<int>(), const Vector<float> &p_weights = Vector<float>());
void free_polygon(PolygonID p_polygon);
@@ -414,12 +421,13 @@ public:
void light_set_texture(RID p_rid, RID p_texture);
void light_set_use_shadow(RID p_rid, bool p_enable);
void light_update_shadow(RID p_rid, int p_shadow_index, const Transform2D &p_light_xform, int p_light_mask, float p_near, float p_far, LightOccluderInstance *p_occluders);
+ void light_update_directional_shadow(RID p_rid, int p_shadow_index, const Transform2D &p_light_xform, int p_light_mask, float p_cull_distance, const Rect2 &p_clip_rect, LightOccluderInstance *p_occluders);
RID occluder_polygon_create();
void occluder_polygon_set_shape_as_lines(RID p_occluder, const Vector<Vector2> &p_lines);
void occluder_polygon_set_cull_mode(RID p_occluder, RS::CanvasOccluderPolygonCullMode p_mode);
- void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, const Transform2D &p_canvas_transform, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat);
+ void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel);
void canvas_debug_viewport_shadows(Light *p_lights_with_shadow) {}
diff --git a/servers/rendering/rasterizer_rd/rasterizer_effects_rd.cpp b/servers/rendering/rasterizer_rd/rasterizer_effects_rd.cpp
index 409cfdfecf..d669db1b4b 100644
--- a/servers/rendering/rasterizer_rd/rasterizer_effects_rd.cpp
+++ b/servers/rendering/rasterizer_rd/rasterizer_effects_rd.cpp
@@ -246,7 +246,7 @@ void RasterizerEffectsRD::copy_to_fb_rect(RID p_source_rd_texture, RID p_dest_fr
RD::get_singleton()->draw_list_end();
}
-void RasterizerEffectsRD::copy_to_rect(RID p_source_rd_texture, RID p_dest_texture, const Rect2i &p_rect, bool p_flip_y, bool p_force_luminance, bool p_all_source, bool p_8_bit_dst) {
+void RasterizerEffectsRD::copy_to_rect(RID p_source_rd_texture, RID p_dest_texture, const Rect2i &p_rect, bool p_flip_y, bool p_force_luminance, bool p_all_source, bool p_8_bit_dst, bool p_alpha_to_one) {
zeromem(&copy.push_constant, sizeof(CopyPushConstant));
if (p_flip_y) {
copy.push_constant.flags |= COPY_FLAG_FLIP_Y;
@@ -260,6 +260,10 @@ void RasterizerEffectsRD::copy_to_rect(RID p_source_rd_texture, RID p_dest_textu
copy.push_constant.flags |= COPY_FLAG_ALL_SOURCE;
}
+ if (p_alpha_to_one) {
+ copy.push_constant.flags |= COPY_FLAG_ALPHA_TO_ONE;
+ }
+
copy.push_constant.section[0] = 0;
copy.push_constant.section[1] = 0;
copy.push_constant.section[2] = p_rect.size.width;
@@ -354,6 +358,31 @@ void RasterizerEffectsRD::copy_depth_to_rect(RID p_source_rd_texture, RID p_dest
RD::get_singleton()->compute_list_end();
}
+void RasterizerEffectsRD::set_color(RID p_dest_texture, const Color &p_color, const Rect2i &p_region, bool p_8bit_dst) {
+ zeromem(&copy.push_constant, sizeof(CopyPushConstant));
+
+ copy.push_constant.section[0] = 0;
+ copy.push_constant.section[1] = 0;
+ copy.push_constant.section[2] = p_region.size.width;
+ copy.push_constant.section[3] = p_region.size.height;
+ copy.push_constant.target[0] = p_region.position.x;
+ copy.push_constant.target[1] = p_region.position.y;
+ copy.push_constant.set_color[0] = p_color.r;
+ copy.push_constant.set_color[1] = p_color.g;
+ copy.push_constant.set_color[2] = p_color.b;
+ copy.push_constant.set_color[3] = p_color.a;
+
+ int32_t x_groups = (p_region.size.width - 1) / 8 + 1;
+ int32_t y_groups = (p_region.size.height - 1) / 8 + 1;
+
+ RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin();
+ RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, copy.pipelines[p_8bit_dst ? COPY_MODE_SET_COLOR_8BIT : COPY_MODE_SET_COLOR]);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_dest_texture), 3);
+ RD::get_singleton()->compute_list_set_push_constant(compute_list, &copy.push_constant, sizeof(CopyPushConstant));
+ RD::get_singleton()->compute_list_dispatch(compute_list, x_groups, y_groups, 1);
+ RD::get_singleton()->compute_list_end();
+}
+
void RasterizerEffectsRD::gaussian_blur(RID p_source_rd_texture, RID p_texture, RID p_back_texture, const Rect2i &p_region, bool p_8bit_dst) {
zeromem(&copy.push_constant, sizeof(CopyPushConstant));
@@ -369,7 +398,7 @@ void RasterizerEffectsRD::gaussian_blur(RID p_source_rd_texture, RID p_texture,
RD::DrawListID compute_list = RD::get_singleton()->compute_list_begin();
RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, copy.pipelines[p_8bit_dst ? COPY_MODE_GAUSSIAN_COPY_8BIT : COPY_MODE_GAUSSIAN_COPY]);
RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_source_rd_texture), 0);
- RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_back_texture), 0);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_back_texture), 3);
copy.push_constant.flags = base_flags | COPY_FLAG_HORIZONTAL;
RD::get_singleton()->compute_list_set_push_constant(compute_list, &copy.push_constant, sizeof(CopyPushConstant));
@@ -380,7 +409,7 @@ void RasterizerEffectsRD::gaussian_blur(RID p_source_rd_texture, RID p_texture,
//VERTICAL
RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_back_texture), 0);
- RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_texture), 0);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_texture), 3);
copy.push_constant.flags = base_flags;
RD::get_singleton()->compute_list_set_push_constant(compute_list, &copy.push_constant, sizeof(CopyPushConstant));
@@ -1346,6 +1375,8 @@ RasterizerEffectsRD::RasterizerEffectsRD() {
copy_modes.push_back("\n#define MODE_SIMPLE_COPY\n");
copy_modes.push_back("\n#define MODE_SIMPLE_COPY\n#define DST_IMAGE_8BIT\n");
copy_modes.push_back("\n#define MODE_SIMPLE_COPY_DEPTH\n");
+ copy_modes.push_back("\n#define MODE_SET_COLOR\n");
+ copy_modes.push_back("\n#define MODE_SET_COLOR\n#define DST_IMAGE_8BIT\n");
copy_modes.push_back("\n#define MODE_MIPMAP\n");
copy_modes.push_back("\n#define MODE_LINEARIZE_DEPTH_COPY\n");
copy_modes.push_back("\n#define MODE_CUBEMAP_TO_PANORAMA\n");
diff --git a/servers/rendering/rasterizer_rd/rasterizer_effects_rd.h b/servers/rendering/rasterizer_rd/rasterizer_effects_rd.h
index 679263fbf6..a0bdd59fd2 100644
--- a/servers/rendering/rasterizer_rd/rasterizer_effects_rd.h
+++ b/servers/rendering/rasterizer_rd/rasterizer_effects_rd.h
@@ -66,6 +66,8 @@ class RasterizerEffectsRD {
COPY_MODE_SIMPLY_COPY,
COPY_MODE_SIMPLY_COPY_8BIT,
COPY_MODE_SIMPLY_COPY_DEPTH,
+ COPY_MODE_SET_COLOR,
+ COPY_MODE_SET_COLOR_8BIT,
COPY_MODE_MIPMAP,
COPY_MODE_LINEARIZE_DEPTH,
COPY_MODE_CUBE_TO_PANORAMA,
@@ -83,7 +85,8 @@ class RasterizerEffectsRD {
COPY_FLAG_FLIP_Y = (1 << 5),
COPY_FLAG_FORCE_LUMINANCE = (1 << 6),
COPY_FLAG_ALL_SOURCE = (1 << 7),
- COPY_FLAG_HIGH_QUALITY_GLOW = (1 << 8)
+ COPY_FLAG_HIGH_QUALITY_GLOW = (1 << 8),
+ COPY_FLAG_ALPHA_TO_ONE = (1 << 9),
};
struct CopyPushConstant {
@@ -105,6 +108,8 @@ class RasterizerEffectsRD {
float camera_z_far;
float camera_z_near;
uint32_t pad2[2];
+ //SET color
+ float set_color[4];
};
struct Copy {
@@ -603,12 +608,13 @@ class RasterizerEffectsRD {
public:
void copy_to_fb_rect(RID p_source_rd_texture, RID p_dest_framebuffer, const Rect2i &p_rect, bool p_flip_y = false, bool p_force_luminance = false, bool p_alpha_to_zero = false, bool p_srgb = false, RID p_secondary = RID());
- void copy_to_rect(RID p_source_rd_texture, RID p_dest_texture, const Rect2i &p_rect, bool p_flip_y = false, bool p_force_luminance = false, bool p_all_source = false, bool p_8_bit_dst = false);
+ void copy_to_rect(RID p_source_rd_texture, RID p_dest_texture, const Rect2i &p_rect, bool p_flip_y = false, bool p_force_luminance = false, bool p_all_source = false, bool p_8_bit_dst = false, bool p_alpha_to_one = false);
void copy_cubemap_to_panorama(RID p_source_cube, RID p_dest_panorama, const Size2i &p_panorama_size, float p_lod, bool p_is_array);
void copy_depth_to_rect(RID p_source_rd_texture, RID p_dest_framebuffer, const Rect2i &p_rect, bool p_flip_y = false);
void copy_depth_to_rect_and_linearize(RID p_source_rd_texture, RID p_dest_texture, const Rect2i &p_rect, bool p_flip_y, float p_z_near, float p_z_far);
void copy_to_atlas_fb(RID p_source_rd_texture, RID p_dest_framebuffer, const Rect2 &p_uv_rect, RD::DrawListID p_draw_list, bool p_flip_y = false, bool p_panorama = false);
void gaussian_blur(RID p_source_rd_texture, RID p_texture, RID p_back_texture, const Rect2i &p_region, bool p_8bit_dst = false);
+ void set_color(RID p_dest_texture, const Color &p_color, const Rect2i &p_region, bool p_8bit_dst = false);
void gaussian_glow(RID p_source_rd_texture, RID p_back_texture, const Size2i &p_size, float p_strength = 1.0, bool p_high_quality = false, bool p_first_pass = false, float p_luminance_cap = 16.0, float p_exposure = 1.0, float p_bloom = 0.0, float p_hdr_bleed_treshold = 1.0, float p_hdr_bleed_scale = 1.0, RID p_auto_exposure = RID(), float p_auto_exposure_grey = 1.0);
void cubemap_roughness(RID p_source_rd_texture, RID p_dest_framebuffer, uint32_t p_face_id, uint32_t p_sample_count, float p_roughness, float p_size);
diff --git a/servers/rendering/rasterizer_rd/rasterizer_scene_high_end_rd.cpp b/servers/rendering/rasterizer_rd/rasterizer_scene_high_end_rd.cpp
index 35b0591289..3fff593598 100644
--- a/servers/rendering/rasterizer_rd/rasterizer_scene_high_end_rd.cpp
+++ b/servers/rendering/rasterizer_rd/rasterizer_scene_high_end_rd.cpp
@@ -51,6 +51,7 @@ void RasterizerSceneHighEndRD::ShaderData::set_code(const String &p_code) {
int blend_mode = BLEND_MODE_MIX;
int depth_testi = DEPTH_TEST_ENABLED;
+ int alpha_antialiasing_mode = ALPHA_ANTIALIASING_OFF;
int cull = CULL_BACK;
uses_point_size = false;
@@ -82,6 +83,9 @@ void RasterizerSceneHighEndRD::ShaderData::set_code(const String &p_code) {
actions.render_mode_values["blend_sub"] = Pair<int *, int>(&blend_mode, BLEND_MODE_SUB);
actions.render_mode_values["blend_mul"] = Pair<int *, int>(&blend_mode, BLEND_MODE_MUL);
+ actions.render_mode_values["alpha_to_coverage"] = Pair<int *, int>(&alpha_antialiasing_mode, ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE);
+ actions.render_mode_values["alpha_to_coverage_and_one"] = Pair<int *, int>(&alpha_antialiasing_mode, ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE);
+
actions.render_mode_values["depth_draw_never"] = Pair<int *, int>(&depth_drawi, DEPTH_DRAW_DISABLED);
actions.render_mode_values["depth_draw_opaque"] = Pair<int *, int>(&depth_drawi, DEPTH_DRAW_OPAQUE);
actions.render_mode_values["depth_draw_always"] = Pair<int *, int>(&depth_drawi, DEPTH_DRAW_ALWAYS);
@@ -154,6 +158,11 @@ void RasterizerSceneHighEndRD::ShaderData::set_code(const String &p_code) {
//blend modes
+ // if any form of Alpha Antialiasing is enabled, set the blend mode to alpha to coverage
+ if (alpha_antialiasing_mode != ALPHA_ANTIALIASING_OFF) {
+ blend_mode = BLEND_MODE_ALPHA_TO_COVERAGE;
+ }
+
RD::PipelineColorBlendState::Attachment blend_attachment;
switch (blend_mode) {
@@ -199,6 +208,15 @@ void RasterizerSceneHighEndRD::ShaderData::set_code(const String &p_code) {
blend_attachment.dst_alpha_blend_factor = RD::BLEND_FACTOR_ZERO;
uses_blend_alpha = true; //force alpha used because of blend
} break;
+ case BLEND_MODE_ALPHA_TO_COVERAGE: {
+ blend_attachment.enable_blend = true;
+ blend_attachment.alpha_blend_op = RD::BLEND_OP_ADD;
+ blend_attachment.color_blend_op = RD::BLEND_OP_ADD;
+ blend_attachment.src_color_blend_factor = RD::BLEND_FACTOR_SRC_ALPHA;
+ blend_attachment.dst_color_blend_factor = RD::BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
+ blend_attachment.src_alpha_blend_factor = RD::BLEND_FACTOR_ONE;
+ blend_attachment.dst_alpha_blend_factor = RD::BLEND_FACTOR_ZERO;
+ }
}
RD::PipelineColorBlendState blend_state_blend;
@@ -245,8 +263,17 @@ void RasterizerSceneHighEndRD::ShaderData::set_code(const String &p_code) {
RD::PipelineColorBlendState blend_state;
RD::PipelineDepthStencilState depth_stencil = depth_stencil_state;
+ RD::PipelineMultisampleState multisample_state;
if (uses_alpha || uses_blend_alpha) {
+ // only allow these flags to go through if we have some form of msaa
+ if (alpha_antialiasing_mode == ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE) {
+ multisample_state.enable_alpha_to_coverage = true;
+ } else if (alpha_antialiasing_mode == ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE) {
+ multisample_state.enable_alpha_to_coverage = true;
+ multisample_state.enable_alpha_to_one = true;
+ }
+
if (k == SHADER_VERSION_COLOR_PASS || k == SHADER_VERSION_COLOR_PASS_WITH_FORWARD_GI || k == SHADER_VERSION_LIGHTMAP_COLOR_PASS) {
blend_state = blend_state_blend;
if (depth_draw == DEPTH_DRAW_OPAQUE) {
@@ -286,7 +313,7 @@ void RasterizerSceneHighEndRD::ShaderData::set_code(const String &p_code) {
}
RID shader_variant = scene_singleton->shader.scene_shader.version_get_shader(version, k);
- pipelines[i][j][k].setup(shader_variant, primitive_rd, raster_state, RD::PipelineMultisampleState(), depth_stencil, blend_state, 0);
+ pipelines[i][j][k].setup(shader_variant, primitive_rd, raster_state, multisample_state, depth_stencil, blend_state, 0);
}
}
}
@@ -2725,6 +2752,11 @@ RasterizerSceneHighEndRD::RasterizerSceneHighEndRD(RasterizerStorageRD *p_storag
actions.renames["POINT_SIZE"] = "gl_PointSize";
actions.renames["INSTANCE_ID"] = "gl_InstanceIndex";
+ actions.renames["ALPHA_SCISSOR_THRESHOLD"] = "alpha_scissor_threshold";
+ actions.renames["ALPHA_HASH_SCALE"] = "alpha_hash_scale";
+ actions.renames["ALPHA_ANTIALIASING_EDGE"] = "alpha_antialiasing_edge";
+ actions.renames["ALPHA_TEXTURE_COORDINATE"] = "alpha_texture_coordinate";
+
//builtins
actions.renames["TIME"] = "scene_data.time";
@@ -2793,6 +2825,11 @@ RasterizerSceneHighEndRD::RasterizerSceneHighEndRD(RasterizerStorageRD *p_storag
actions.usage_defines["INSTANCE_CUSTOM"] = "#define ENABLE_INSTANCE_CUSTOM\n";
actions.usage_defines["POSITION"] = "#define OVERRIDE_POSITION\n";
+ actions.usage_defines["ALPHA_SCISSOR_THRESHOLD"] = "#define ALPHA_SCISSOR_USED\n";
+ actions.usage_defines["ALPHA_HASH_SCALE"] = "#define ALPHA_HASH_USED\n";
+ actions.usage_defines["ALPHA_ANTIALIASING_EDGE"] = "#define ALPHA_ANTIALIASING_EDGE_USED\n";
+ actions.usage_defines["ALPHA_TEXTURE_COORDINATE"] = "@ALPHA_ANTIALIASING_EDGE";
+
actions.usage_defines["SSS_STRENGTH"] = "#define ENABLE_SSS\n";
actions.usage_defines["SSS_TRANSMITTANCE_DEPTH"] = "#define ENABLE_TRANSMITTANCE\n";
actions.usage_defines["BACKLIGHT"] = "#define LIGHT_BACKLIGHT_USED\n";
diff --git a/servers/rendering/rasterizer_rd/rasterizer_scene_high_end_rd.h b/servers/rendering/rasterizer_rd/rasterizer_scene_high_end_rd.h
index 566022ae5b..db083a75cc 100644
--- a/servers/rendering/rasterizer_rd/rasterizer_scene_high_end_rd.h
+++ b/servers/rendering/rasterizer_rd/rasterizer_scene_high_end_rd.h
@@ -83,6 +83,7 @@ class RasterizerSceneHighEndRD : public RasterizerSceneRD {
BLEND_MODE_ADD,
BLEND_MODE_SUB,
BLEND_MODE_MUL,
+ BLEND_MODE_ALPHA_TO_COVERAGE
};
enum DepthDraw {
@@ -110,6 +111,12 @@ class RasterizerSceneHighEndRD : public RasterizerSceneRD {
};
+ enum AlphaAntiAliasing {
+ ALPHA_ANTIALIASING_OFF,
+ ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE,
+ ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE
+ };
+
bool valid;
RID version;
uint32_t vertex_input_mask;
@@ -132,6 +139,7 @@ class RasterizerSceneHighEndRD : public RasterizerSceneRD {
bool uses_point_size;
bool uses_alpha;
bool uses_blend_alpha;
+ bool uses_alpha_clip;
bool uses_depth_pre_pass;
bool uses_discard;
bool uses_roughness;
diff --git a/servers/rendering/rasterizer_rd/rasterizer_storage_rd.cpp b/servers/rendering/rasterizer_rd/rasterizer_storage_rd.cpp
index b47d724147..10c9293d67 100644
--- a/servers/rendering/rasterizer_rd/rasterizer_storage_rd.cpp
+++ b/servers/rendering/rasterizer_rd/rasterizer_storage_rd.cpp
@@ -6131,12 +6131,18 @@ void RasterizerStorageRD::_create_render_target_backbuffer(RenderTarget *rt) {
tf.width = rt->size.width;
tf.height = rt->size.height;
tf.type = RD::TEXTURE_TYPE_2D;
- tf.usage_bits = RD::TEXTURE_USAGE_STORAGE_BIT | RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_CAN_COPY_TO_BIT;
+ tf.usage_bits = RD::TEXTURE_USAGE_COLOR_ATTACHMENT_BIT | RD::TEXTURE_USAGE_STORAGE_BIT | RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_CAN_COPY_TO_BIT;
tf.mipmaps = mipmaps_required;
rt->backbuffer = RD::get_singleton()->texture_create(tf, RD::TextureView());
rt->backbuffer_mipmap0 = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rt->backbuffer, 0, 0);
+ {
+ Vector<RID> fb_tex;
+ fb_tex.push_back(rt->backbuffer_mipmap0);
+ rt->backbuffer_fb = RD::get_singleton()->framebuffer_create(fb_tex);
+ }
+
if (rt->framebuffer_uniform_set.is_valid() && RD::get_singleton()->uniform_set_is_valid(rt->framebuffer_uniform_set)) {
//the new one will require the backbuffer.
RD::get_singleton()->free(rt->framebuffer_uniform_set);
@@ -6245,6 +6251,17 @@ RID RasterizerStorageRD::render_target_get_rd_backbuffer(RID p_render_target) {
return rt->backbuffer;
}
+RID RasterizerStorageRD::render_target_get_rd_backbuffer_framebuffer(RID p_render_target) {
+ RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ ERR_FAIL_COND_V(!rt, RID());
+
+ if (!rt->backbuffer.is_valid()) {
+ _create_render_target_backbuffer(rt);
+ }
+
+ return rt->backbuffer_fb;
+}
+
void RasterizerStorageRD::render_target_request_clear(RID p_render_target, const Color &p_clear_color) {
RenderTarget *rt = render_target_owner.getornull(p_render_target);
ERR_FAIL_COND(!rt);
@@ -6283,21 +6300,30 @@ void RasterizerStorageRD::render_target_do_clear_request(RID p_render_target) {
rt->clear_requested = false;
}
-void RasterizerStorageRD::render_target_copy_to_back_buffer(RID p_render_target, const Rect2i &p_region) {
+void RasterizerStorageRD::render_target_copy_to_back_buffer(RID p_render_target, const Rect2i &p_region, bool p_gen_mipmaps) {
RenderTarget *rt = render_target_owner.getornull(p_render_target);
ERR_FAIL_COND(!rt);
if (!rt->backbuffer.is_valid()) {
_create_render_target_backbuffer(rt);
}
- Rect2i region = p_region;
- if (region == Rect2i()) {
+ Rect2i region;
+ if (p_region == Rect2i()) {
region.size = rt->size;
+ } else {
+ region = Rect2i(Size2i(), rt->size).clip(p_region);
+ if (region.size == Size2i()) {
+ return; //nothing to do
+ }
}
//single texture copy for backbuffer
- RD::get_singleton()->texture_copy(rt->color, rt->backbuffer_mipmap0, Vector3(region.position.x, region.position.y, 0), Vector3(region.position.x, region.position.y, 0), Vector3(region.size.x, region.size.y, 1), 0, 0, 0, 0, true);
- //effects.copy(rt->color, rt->backbuffer_fb, blur_region);
+ //RD::get_singleton()->texture_copy(rt->color, rt->backbuffer_mipmap0, Vector3(region.position.x, region.position.y, 0), Vector3(region.position.x, region.position.y, 0), Vector3(region.size.x, region.size.y, 1), 0, 0, 0, 0, true);
+ effects.copy_to_rect(rt->color, rt->backbuffer_mipmap0, region, false, false, false, true, true);
+
+ if (!p_gen_mipmaps) {
+ return;
+ }
//then mipmap blur
RID prev_texture = rt->color; //use color, not backbuffer, as bb has mipmaps.
@@ -6314,6 +6340,59 @@ void RasterizerStorageRD::render_target_copy_to_back_buffer(RID p_render_target,
}
}
+void RasterizerStorageRD::render_target_clear_back_buffer(RID p_render_target, const Rect2i &p_region, const Color &p_color) {
+ RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ ERR_FAIL_COND(!rt);
+ if (!rt->backbuffer.is_valid()) {
+ _create_render_target_backbuffer(rt);
+ }
+
+ Rect2i region;
+ if (p_region == Rect2i()) {
+ region.size = rt->size;
+ } else {
+ region = Rect2i(Size2i(), rt->size).clip(p_region);
+ if (region.size == Size2i()) {
+ return; //nothing to do
+ }
+ }
+
+ //single texture copy for backbuffer
+ effects.set_color(rt->backbuffer_mipmap0, p_color, region, true);
+}
+
+void RasterizerStorageRD::render_target_gen_back_buffer_mipmaps(RID p_render_target, const Rect2i &p_region) {
+ RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ ERR_FAIL_COND(!rt);
+ if (!rt->backbuffer.is_valid()) {
+ _create_render_target_backbuffer(rt);
+ }
+
+ Rect2i region;
+ if (p_region == Rect2i()) {
+ region.size = rt->size;
+ } else {
+ region = Rect2i(Size2i(), rt->size).clip(p_region);
+ if (region.size == Size2i()) {
+ return; //nothing to do
+ }
+ }
+
+ //then mipmap blur
+ RID prev_texture = rt->backbuffer_mipmap0;
+
+ for (int i = 0; i < rt->backbuffer_mipmaps.size(); i++) {
+ region.position.x >>= 1;
+ region.position.y >>= 1;
+ region.size.x = MAX(1, region.size.x >> 1);
+ region.size.y = MAX(1, region.size.y >> 1);
+
+ const RenderTarget::BackbufferMipmap &mm = rt->backbuffer_mipmaps[i];
+ effects.gaussian_blur(prev_texture, mm.mipmap, mm.mipmap_copy, region, true);
+ prev_texture = mm.mipmap;
+ }
+}
+
RID RasterizerStorageRD::render_target_get_framebuffer_uniform_set(RID p_render_target) {
RenderTarget *rt = render_target_owner.getornull(p_render_target);
ERR_FAIL_COND_V(!rt, RID());
diff --git a/servers/rendering/rasterizer_rd/rasterizer_storage_rd.h b/servers/rendering/rasterizer_rd/rasterizer_storage_rd.h
index 7caafca2e0..321bff9fdd 100644
--- a/servers/rendering/rasterizer_rd/rasterizer_storage_rd.h
+++ b/servers/rendering/rasterizer_rd/rasterizer_storage_rd.h
@@ -989,6 +989,7 @@ private:
bool flags[RENDER_TARGET_FLAG_MAX];
RID backbuffer; //used for effects
+ RID backbuffer_fb;
RID backbuffer_mipmap0;
struct BackbufferMipmap {
@@ -1916,7 +1917,9 @@ public:
void render_target_set_flag(RID p_render_target, RenderTargetFlags p_flag, bool p_value);
bool render_target_was_used(RID p_render_target);
void render_target_set_as_unused(RID p_render_target);
- void render_target_copy_to_back_buffer(RID p_render_target, const Rect2i &p_region);
+ void render_target_copy_to_back_buffer(RID p_render_target, const Rect2i &p_region, bool p_gen_mipmaps);
+ void render_target_clear_back_buffer(RID p_render_target, const Rect2i &p_region, const Color &p_color);
+ void render_target_gen_back_buffer_mipmaps(RID p_render_target, const Rect2i &p_region);
RID render_target_get_back_buffer_uniform_set(RID p_render_target, RID p_base_shader);
@@ -1930,6 +1933,7 @@ public:
RID render_target_get_rd_framebuffer(RID p_render_target);
RID render_target_get_rd_texture(RID p_render_target);
RID render_target_get_rd_backbuffer(RID p_render_target);
+ RID render_target_get_rd_backbuffer_framebuffer(RID p_render_target);
RID render_target_get_framebuffer_uniform_set(RID p_render_target);
RID render_target_get_backbuffer_uniform_set(RID p_render_target);
diff --git a/servers/rendering/rasterizer_rd/shaders/canvas.glsl b/servers/rendering/rasterizer_rd/shaders/canvas.glsl
index 04a37e501f..2a0f94e733 100644
--- a/servers/rendering/rasterizer_rd/shaders/canvas.glsl
+++ b/servers/rendering/rasterizer_rd/shaders/canvas.glsl
@@ -144,7 +144,7 @@ VERTEX_SHADER_CODE
color_interp = color;
- if (bool(draw_data.flags & FLAGS_USE_PIXEL_SNAP)) {
+ if (canvas_data.use_pixel_snap) {
vertex = floor(vertex + 0.5);
// precision issue on some hardware creates artifacts within texture
// offset uv by a small amount to avoid
@@ -249,7 +249,7 @@ vec4 light_compute(
inout vec4 shadow_modulate,
vec2 screen_uv,
vec2 uv,
- vec4 color) {
+ vec4 color, bool is_directional) {
vec4 light = vec4(0.0);
/* clang-format off */
LIGHT_SHADER_CODE
@@ -302,6 +302,99 @@ float map_ninepatch_axis(float pixel, float draw_size, float tex_pixel_size, flo
#endif
+#ifdef USE_LIGHTING
+
+vec3 light_normal_compute(vec3 light_vec, vec3 normal, vec3 base_color, vec3 light_color, vec4 specular_shininess, bool specular_shininess_used) {
+ float cNdotL = max(0.0, dot(normal, light_vec));
+
+ if (specular_shininess_used) {
+ //blinn
+ vec3 view = vec3(0.0, 0.0, 1.0); // not great but good enough
+ vec3 half_vec = normalize(view + light_vec);
+
+ float cNdotV = max(dot(normal, view), 0.0);
+ float cNdotH = max(dot(normal, half_vec), 0.0);
+ float cVdotH = max(dot(view, half_vec), 0.0);
+ float cLdotH = max(dot(light_vec, half_vec), 0.0);
+ float shininess = exp2(15.0 * specular_shininess.a + 1.0) * 0.25;
+ float blinn = pow(cNdotH, shininess);
+ blinn *= (shininess + 8.0) * (1.0 / (8.0 * M_PI));
+ float s = (blinn) / max(4.0 * cNdotV * cNdotL, 0.75);
+
+ return specular_shininess.rgb * light_color * s + light_color * base_color * cNdotL;
+ } else {
+ return light_color * base_color * cNdotL;
+ }
+}
+
+//float distance = length(shadow_pos);
+vec4 light_shadow_compute(uint light_base, vec4 light_color, vec4 shadow_uv
+#ifdef LIGHT_SHADER_CODE_USED
+ ,
+ vec3 shadow_modulate
+#endif
+) {
+ float shadow;
+ uint shadow_mode = light_array.data[light_base].flags & LIGHT_FLAGS_FILTER_MASK;
+
+ if (shadow_mode == LIGHT_FLAGS_SHADOW_NEAREST) {
+ shadow = textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv, 0.0).x;
+ } else if (shadow_mode == LIGHT_FLAGS_SHADOW_PCF5) {
+ vec4 shadow_pixel_size = vec4(light_array.data[light_base].shadow_pixel_size, 0.0, 0.0, 0.0);
+ shadow = 0.0;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size * 2.0, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size * 2.0, 0.0).x;
+ shadow /= 5.0;
+ } else { //PCF13
+ vec4 shadow_pixel_size = vec4(light_array.data[light_base].shadow_pixel_size, 0.0, 0.0, 0.0);
+ shadow = 0.0;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size * 6.0, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size * 5.0, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size * 4.0, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size * 3.0, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size * 2.0, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size * 2.0, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size * 3.0, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size * 4.0, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size * 5.0, 0.0).x;
+ shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size * 6.0, 0.0).x;
+ shadow /= 13.0;
+ }
+
+ vec4 shadow_color = unpackUnorm4x8(light_array.data[light_base].shadow_color);
+#ifdef LIGHT_SHADER_CODE_USED
+ shadow_color *= shadow_modulate;
+#endif
+
+ shadow_color.a *= light_color.a; //respect light alpha
+
+ return mix(light_color, shadow_color, shadow);
+}
+
+void light_blend_compute(uint light_base, vec4 light_color, inout vec3 color) {
+ uint blend_mode = light_array.data[light_base].flags & LIGHT_FLAGS_BLEND_MASK;
+
+ switch (blend_mode) {
+ case LIGHT_FLAGS_BLEND_MODE_ADD: {
+ color.rgb += light_color.rgb * light_color.a;
+ } break;
+ case LIGHT_FLAGS_BLEND_MODE_SUB: {
+ color.rgb -= light_color.rgb * light_color.a;
+ } break;
+ case LIGHT_FLAGS_BLEND_MODE_MIX: {
+ color.rgb = mix(color.rgb, light_color.rgb, light_color.a);
+ } break;
+ }
+}
+
+#endif
+
void main() {
vec4 color = color_interp;
vec2 uv = uv_interp;
@@ -332,6 +425,7 @@ void main() {
color *= texture(sampler2D(color_texture, texture_sampler), uv);
uint light_count = (draw_data.flags >> FLAGS_LIGHT_COUNT_SHIFT) & 0xF; //max 16 lights
+ bool using_light = light_count > 0 || canvas_data.directional_light_count > 0;
vec3 normal;
@@ -341,7 +435,7 @@ void main() {
bool normal_used = false;
#endif
- if (normal_used || (light_count > 0 && bool(draw_data.flags & FLAGS_DEFAULT_NORMAL_MAP_USED))) {
+ if (normal_used || (using_light && bool(draw_data.flags & FLAGS_DEFAULT_NORMAL_MAP_USED))) {
normal.xy = texture(sampler2D(normal_texture, texture_sampler), uv).xy * vec2(2.0, -2.0) - vec2(1.0, -1.0);
normal.z = sqrt(1.0 - dot(normal.xy, normal.xy));
normal_used = true;
@@ -358,7 +452,7 @@ void main() {
bool specular_shininess_used = false;
#endif
- if (specular_shininess_used || (light_count > 0 && normal_used && bool(draw_data.flags & FLAGS_DEFAULT_SPECULAR_MAP_USED))) {
+ if (specular_shininess_used || (using_light && normal_used && bool(draw_data.flags & FLAGS_DEFAULT_SPECULAR_MAP_USED))) {
specular_shininess = texture(sampler2D(specular_texture, texture_sampler), uv);
specular_shininess *= unpackUnorm4x8(draw_data.specular_shininess);
specular_shininess_used = true;
@@ -401,13 +495,52 @@ FRAGMENT_SHADER_CODE
normal = normalize((canvas_data.canvas_normal_transform * vec4(normal, 0.0)).xyz);
}
- vec4 base_color = color;
+ vec3 base_color = color.rgb;
if (bool(draw_data.flags & FLAGS_USING_LIGHT_MASK)) {
color = vec4(0.0); //invisible by default due to using light mask
}
color *= canvas_data.canvas_modulation;
#ifdef USE_LIGHTING
+
+ // Directional Lights
+
+ for (uint i = 0; i < canvas_data.directional_light_count; i++) {
+ uint light_base = i;
+
+ vec2 direction = light_array.data[light_base].position;
+ vec4 light_color = light_array.data[light_base].color;
+
+#ifdef LIGHT_SHADER_CODE_USED
+
+ vec4 shadow_modulate = vec4(1.0);
+ light_color = light_compute(light_vertex, direction, normal, light_color, light_color.a, specular_shininess, shadow_modulate, screen_uv, color, uv, true);
+#else
+
+ if (normal_used) {
+ vec3 light_vec = normalize(mix(vec3(direction, 0.0), vec3(0, 0, 1), light_array.data[light_base].height));
+ light_color.rgb = light_normal_compute(light_vec, normal, base_color, light_color.rgb, specular_shininess, specular_shininess_used);
+ }
+#endif
+
+ if (bool(light_array.data[light_base].flags & LIGHT_FLAGS_HAS_SHADOW)) {
+ vec2 shadow_pos = (vec4(shadow_vertex, 0.0, 1.0) * mat4(light_array.data[light_base].shadow_matrix[0], light_array.data[light_base].shadow_matrix[1], vec4(0.0, 0.0, 1.0, 0.0), vec4(0.0, 0.0, 0.0, 1.0))).xy; //multiply inverse given its transposed. Optimizer removes useless operations.
+
+ vec4 shadow_uv = vec4(shadow_pos.x, light_array.data[light_base].shadow_y_ofs, shadow_pos.y * light_array.data[light_base].shadow_zfar_inv, 1.0);
+
+ light_color = light_shadow_compute(light_base, light_color, shadow_uv
+#ifdef LIGHT_SHADER_CODE_USED
+ ,
+ shadow_modulate
+#endif
+ );
+ }
+
+ light_blend_compute(light_base, light_color, color.rgb);
+ }
+
+ // Positional Lights
+
for (uint i = 0; i < MAX_LIGHTS_PER_ITEM; i++) {
if (i >= light_count) {
break;
@@ -440,7 +573,7 @@ FRAGMENT_SHADER_CODE
vec3 light_position = vec3(light_array.data[light_base].position, light_array.data[light_base].height);
light_color.rgb *= light_base_color.rgb;
- light_color = light_compute(light_vertex, light_position, normal, light_color, light_base_color.a, specular_shininess, shadow_modulate, screen_uv, color, uv);
+ light_color = light_compute(light_vertex, light_position, normal, light_color, light_base_color.a, specular_shininess, shadow_modulate, screen_uv, color, uv, false);
#else
light_color.rgb *= light_base_color.rgb * light_base_color.a;
@@ -451,24 +584,7 @@ FRAGMENT_SHADER_CODE
vec3 light_vec = normalize(light_pos - pos);
float cNdotL = max(0.0, dot(normal, light_vec));
- if (specular_shininess_used) {
- //blinn
- vec3 view = vec3(0.0, 0.0, 1.0); // not great but good enough
- vec3 half_vec = normalize(view + light_vec);
-
- float cNdotV = max(dot(normal, view), 0.0);
- float cNdotH = max(dot(normal, half_vec), 0.0);
- float cVdotH = max(dot(view, half_vec), 0.0);
- float cLdotH = max(dot(light_vec, half_vec), 0.0);
- float shininess = exp2(15.0 * specular_shininess.a + 1.0) * 0.25;
- float blinn = pow(cNdotH, shininess);
- blinn *= (shininess + 8.0) * (1.0 / (8.0 * M_PI));
- float s = (blinn) / max(4.0 * cNdotV * cNdotL, 0.75);
-
- light_color.rgb = specular_shininess.rgb * light_base_color.rgb * s + light_color.rgb * cNdotL;
- } else {
- light_color.rgb *= cNdotL;
- }
+ light_color.rgb = light_normal_compute(light_vec, normal, base_color, light_color.rgb, specular_shininess, specular_shininess_used);
}
#endif
if (any(lessThan(tex_uv, vec2(0.0, 0.0))) || any(greaterThanEqual(tex_uv, vec2(1.0, 1.0)))) {
@@ -506,69 +622,17 @@ FRAGMENT_SHADER_CODE
distance *= light_array.data[light_base].shadow_zfar_inv;
//float distance = length(shadow_pos);
- float shadow;
- uint shadow_mode = light_array.data[light_base].flags & LIGHT_FLAGS_FILTER_MASK;
-
vec4 shadow_uv = vec4(tex_ofs, light_array.data[light_base].shadow_y_ofs, distance, 1.0);
- if (shadow_mode == LIGHT_FLAGS_SHADOW_NEAREST) {
- shadow = textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv, 0.0).x;
- } else if (shadow_mode == LIGHT_FLAGS_SHADOW_PCF5) {
- vec4 shadow_pixel_size = vec4(light_array.data[light_base].shadow_pixel_size, 0.0, 0.0, 0.0);
- shadow = 0.0;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size * 2.0, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size * 2.0, 0.0).x;
- shadow /= 5.0;
- } else { //PCF13
- vec4 shadow_pixel_size = vec4(light_array.data[light_base].shadow_pixel_size, 0.0, 0.0, 0.0);
- shadow = 0.0;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size * 6.0, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size * 5.0, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size * 4.0, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size * 3.0, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size * 2.0, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv - shadow_pixel_size, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size * 2.0, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size * 3.0, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size * 4.0, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size * 5.0, 0.0).x;
- shadow += textureProjLod(sampler2DShadow(shadow_atlas_texture, shadow_sampler), shadow_uv + shadow_pixel_size * 6.0, 0.0).x;
- shadow /= 13.0;
- }
-
- vec4 shadow_color = unpackUnorm4x8(light_array.data[light_base].shadow_color);
+ light_color = light_shadow_compute(light_base, light_color, shadow_uv
#ifdef LIGHT_SHADER_CODE_USED
- shadow_color *= shadow_modulate;
+ ,
+ shadow_modulate
#endif
-
- shadow_color.a *= light_color.a; //respect light alpha
-
- light_color = mix(light_color, shadow_color, shadow);
- //light_color = mix(light_color, shadow_color, shadow);
+ );
}
- uint blend_mode = light_array.data[light_base].flags & LIGHT_FLAGS_BLEND_MASK;
-
- switch (blend_mode) {
- case LIGHT_FLAGS_BLEND_MODE_ADD: {
- color.rgb += light_color.rgb * light_color.a;
- } break;
- case LIGHT_FLAGS_BLEND_MODE_SUB: {
- color.rgb -= light_color.rgb * light_color.a;
- } break;
- case LIGHT_FLAGS_BLEND_MODE_MIX: {
- color.rgb = mix(color.rgb, light_color.rgb, light_color.a);
- } break;
- case LIGHT_FLAGS_BLEND_MODE_MASK: {
- light_color.a *= base_color.a;
- color.rgb = mix(color.rgb, light_color.rgb, light_color.a);
- } break;
- }
+ light_blend_compute(light_base, light_color, color.rgb);
}
#endif
diff --git a/servers/rendering/rasterizer_rd/shaders/canvas_uniforms_inc.glsl b/servers/rendering/rasterizer_rd/shaders/canvas_uniforms_inc.glsl
index e4dc326af6..bb39584cbb 100644
--- a/servers/rendering/rasterizer_rd/shaders/canvas_uniforms_inc.glsl
+++ b/servers/rendering/rasterizer_rd/shaders/canvas_uniforms_inc.glsl
@@ -15,7 +15,6 @@
#define FLAGS_USING_LIGHT_MASK (1 << 11)
#define FLAGS_NINEPACH_DRAW_CENTER (1 << 12)
#define FLAGS_USING_PARTICLES (1 << 13)
-#define FLAGS_USE_PIXEL_SNAP (1 << 14)
#define FLAGS_NINEPATCH_H_MODE_SHIFT 16
#define FLAGS_NINEPATCH_V_MODE_SHIFT 18
@@ -67,8 +66,12 @@ layout(set = 0, binding = 1, std140) uniform CanvasData {
vec4 canvas_modulation;
vec2 screen_pixel_size;
float time;
- float time_pad;
- //uint light_count;
+ bool use_pixel_snap;
+
+ uint directional_light_count;
+ uint pad0;
+ uint pad1;
+ uint pad2;
}
canvas_data;
diff --git a/servers/rendering/rasterizer_rd/shaders/copy.glsl b/servers/rendering/rasterizer_rd/shaders/copy.glsl
index 355a2b9d75..cdd35dfb3f 100644
--- a/servers/rendering/rasterizer_rd/shaders/copy.glsl
+++ b/servers/rendering/rasterizer_rd/shaders/copy.glsl
@@ -15,6 +15,7 @@ layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
#define FLAG_FORCE_LUMINANCE (1 << 6)
#define FLAG_COPY_ALL_SOURCE (1 << 7)
#define FLAG_HIGH_QUALITY_GLOW (1 << 8)
+#define FLAG_ALPHA_TO_ONE (1 << 9)
layout(push_constant, binding = 1, std430) uniform Params {
ivec4 section;
@@ -35,6 +36,8 @@ layout(push_constant, binding = 1, std430) uniform Params {
float camera_z_far;
float camera_z_near;
uint pad2[2];
+
+ vec4 set_color;
}
params;
@@ -42,7 +45,7 @@ params;
layout(set = 0, binding = 0) uniform samplerCubeArray source_color;
#elif defined(MODE_CUBEMAP_TO_PANORAMA)
layout(set = 0, binding = 0) uniform samplerCube source_color;
-#else
+#elif !defined(MODE_SET_COLOR)
layout(set = 0, binding = 0) uniform sampler2D source_color;
#endif
@@ -203,25 +206,24 @@ void main() {
}
color = textureLod(source_color, uv, 0.0);
- if (bool(params.flags & FLAG_FORCE_LUMINANCE)) {
- color.rgb = vec3(max(max(color.r, color.g), color.b));
- }
- imageStore(dest_buffer, pos + params.target, color);
-
} else {
color = texelFetch(source_color, pos + params.section.xy, 0);
- if (bool(params.flags & FLAG_FORCE_LUMINANCE)) {
- color.rgb = vec3(max(max(color.r, color.g), color.b));
- }
-
if (bool(params.flags & FLAG_FLIP_Y)) {
pos.y = params.section.w - pos.y - 1;
}
+ }
- imageStore(dest_buffer, pos + params.target, color);
+ if (bool(params.flags & FLAG_FORCE_LUMINANCE)) {
+ color.rgb = vec3(max(max(color.r, color.g), color.b));
+ }
+
+ if (bool(params.flags & FLAG_ALPHA_TO_ONE)) {
+ color.a = 1.0;
}
+ imageStore(dest_buffer, pos + params.target, color);
+
#endif
#ifdef MODE_SIMPLE_COPY_DEPTH
@@ -270,4 +272,8 @@ void main() {
#endif
imageStore(dest_buffer, pos + params.target, color);
#endif
+
+#ifdef MODE_SET_COLOR
+ imageStore(dest_buffer, pos + params.target, params.set_color);
+#endif
}
diff --git a/servers/rendering/rasterizer_rd/shaders/scene_high_end.glsl b/servers/rendering/rasterizer_rd/shaders/scene_high_end.glsl
index 455a3d4a3a..da3c60af04 100644
--- a/servers/rendering/rasterizer_rd/shaders/scene_high_end.glsl
+++ b/servers/rendering/rasterizer_rd/shaders/scene_high_end.glsl
@@ -361,6 +361,65 @@ layout(location = 0) out vec4 frag_color;
#endif // RENDER DEPTH
+#ifdef ALPHA_HASH_USED
+
+float hash_2d(vec2 p) {
+ return fract(1.0e4 * sin(17.0 * p.x + 0.1 * p.y) *
+ (0.1 + abs(sin(13.0 * p.y + p.x))));
+}
+
+float hash_3d(vec3 p) {
+ return hash_2d(vec2(hash_2d(p.xy), p.z));
+}
+
+float compute_alpha_hash_threshold(vec3 pos, float hash_scale) {
+ vec3 dx = dFdx(pos);
+ vec3 dy = dFdx(pos);
+ float delta_max_sqr = max(length(dx), length(dy));
+ float pix_scale = 1.0 / (hash_scale * delta_max_sqr);
+
+ vec2 pix_scales =
+ vec2(exp2(floor(log2(pix_scale))), exp2(ceil(log2(pix_scale))));
+
+ vec2 a_thresh = vec2(hash_3d(floor(pix_scales.x * pos.xyz)),
+ hash_3d(floor(pix_scales.y * pos.xyz)));
+
+ float lerp_factor = fract(log2(pix_scale));
+
+ float a_interp = (1.0 - lerp_factor) * a_thresh.x + lerp_factor * a_thresh.y;
+
+ float min_lerp = min(lerp_factor, 1.0 - lerp_factor);
+
+ vec3 cases = vec3(a_interp * a_interp / (2.0 * min_lerp * (1.0 - min_lerp)),
+ (a_interp - 0.5 * min_lerp) / (1.0 - min_lerp),
+ 1.0 - ((1.0 - a_interp) * (1.0 - a_interp) /
+ (2.0 * min_lerp * (1.0 - min_lerp))));
+
+ float alpha_hash_threshold =
+ (lerp_factor < (1.0 - min_lerp)) ? ((lerp_factor < min_lerp) ? cases.x : cases.y) : cases.z;
+
+ return clamp(alpha_hash_threshold, 0.0, 1.0);
+}
+
+#endif // ALPHA_HASH_USED
+
+#ifdef ALPHA_ANTIALIASING_EDGE_USED
+
+float calc_mip_level(vec2 texture_coord) {
+ vec2 dx = dFdx(texture_coord);
+ vec2 dy = dFdy(texture_coord);
+ float delta_max_sqr = max(dot(dx, dx), dot(dy, dy));
+ return max(0.0, 0.5 * log2(delta_max_sqr));
+}
+
+float compute_alpha_antialiasing_edge(float input_alpha, vec2 texture_coord, float alpha_edge) {
+ input_alpha *= 1.0 + max(0, calc_mip_level(texture_coord)) * 0.25; // 0.25 mip scale, magic number
+ input_alpha = (input_alpha - alpha_edge) / max(fwidth(input_alpha), 0.0001) + 0.5;
+ return clamp(input_alpha, 0.0, 1.0);
+}
+
+#endif // ALPHA_ANTIALIASING_USED
+
// This returns the G_GGX function divided by 2 cos_theta_m, where in practice cos_theta_m is either N.L or N.V.
// We're dividing this factor off because the overall term we'll end up looks like
// (see, for example, the first unnumbered equation in B. Burley, "Physically Based Shading at Disney", SIGGRAPH 2012):
@@ -1709,10 +1768,6 @@ void main() {
float alpha = 1.0;
-#if defined(ALPHA_SCISSOR_USED)
- float alpha_scissor = 0.5;
-#endif
-
#if defined(TANGENT_USED) || defined(NORMALMAP_USED) || defined(LIGHT_ANISOTROPY_USED)
vec3 binormal = normalize(binormal_interp);
vec3 tangent = normalize(tangent_interp);
@@ -1749,6 +1804,19 @@ void main() {
float sss_strength = 0.0;
+#ifdef ALPHA_SCISSOR_USED
+ float alpha_scissor_threshold = 1.0;
+#endif // ALPHA_SCISSOR_USED
+
+#ifdef ALPHA_HASH_USED
+ float alpha_hash_scale = 1.0;
+#endif // ALPHA_HASH_USED
+
+#ifdef ALPHA_ANTIALIASING_EDGE_USED
+ float alpha_antialiasing_edge = 0.0;
+ vec2 alpha_texture_coordinate = vec2(0.0, 0.0);
+#endif // ALPHA_ANTIALIASING_EDGE_USED
+
{
/* clang-format off */
@@ -1757,7 +1825,7 @@ FRAGMENT_SHADER_CODE
/* clang-format on */
}
-#if defined(LIGHT_TRANSMITTANCE_USED)
+#ifdef LIGHT_TRANSMITTANCE_USED
#ifdef SSS_MODE_SKIN
transmittance_color.a = sss_strength;
#else
@@ -1765,25 +1833,43 @@ FRAGMENT_SHADER_CODE
#endif
#endif
-#if !defined(USE_SHADOW_TO_OPACITY)
+#ifndef USE_SHADOW_TO_OPACITY
-#if defined(ALPHA_SCISSOR_USED)
- if (alpha < alpha_scissor) {
+#ifdef ALPHA_SCISSOR_USED
+ if (alpha < alpha_scissor_threshold) {
discard;
}
#endif // ALPHA_SCISSOR_USED
-#ifdef USE_OPAQUE_PREPASS
+// alpha hash can be used in unison with alpha antialiasing
+#ifdef ALPHA_HASH_USED
+ if (alpha < compute_alpha_hash_threshold(vertex, alpha_hash_scale)) {
+ discard;
+ }
+#endif // ALPHA_HASH_USED
+
+// If we are not edge antialiasing, we need to remove the output alpha channel from scissor and hash
+#if (defined(ALPHA_SCISSOR_USED) || defined(ALPHA_HASH_USED)) && !defined(ALPHA_ANTIALIASING_EDGE_USED)
+ alpha = 1.0;
+#endif
+
+#ifdef ALPHA_ANTIALIASING_EDGE_USED
+// If alpha scissor is used, we must further the edge threshold, otherwise we wont get any edge feather
+#ifdef ALPHA_SCISSOR_USED
+ alpha_antialiasing_edge = clamp(alpha_scissor_threshold + alpha_antialiasing_edge, 0.0, 1.0);
+#endif
+ alpha = compute_alpha_antialiasing_edge(alpha, alpha_texture_coordinate, alpha_antialiasing_edge);
+#endif // ALPHA_ANTIALIASING_EDGE_USED
+#ifdef USE_OPAQUE_PREPASS
if (alpha < opaque_prepass_threshold) {
discard;
}
-
#endif // USE_OPAQUE_PREPASS
#endif // !USE_SHADOW_TO_OPACITY
-#if defined(NORMALMAP_USED)
+#ifdef NORMALMAP_USED
normalmap.xy = normalmap.xy * 2.0 - 1.0;
normalmap.z = sqrt(max(0.0, 1.0 - dot(normalmap.xy, normalmap.xy))); //always ignore Z, as it can be RG packed, Z may be pos/neg, etc.
@@ -1792,7 +1878,7 @@ FRAGMENT_SHADER_CODE
#endif
-#if defined(LIGHT_ANISOTROPY_USED)
+#ifdef LIGHT_ANISOTROPY_USED
if (anisotropy > 0.01) {
//rotation matrix
diff --git a/servers/rendering/rendering_server_canvas.cpp b/servers/rendering/rendering_server_canvas.cpp
index b0bff8b2c2..4480b79f75 100644
--- a/servers/rendering/rendering_server_canvas.cpp
+++ b/servers/rendering/rendering_server_canvas.cpp
@@ -37,7 +37,7 @@
static const int z_range = RS::CANVAS_ITEM_Z_MAX - RS::CANVAS_ITEM_Z_MIN + 1;
-void RenderingServerCanvas::_render_canvas_item_tree(RID p_to_render_target, Canvas::ChildItem *p_child_items, int p_child_item_count, Item *p_canvas_item, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RasterizerCanvas::Light *p_lights, RenderingServer::CanvasItemTextureFilter p_default_filter, RenderingServer::CanvasItemTextureRepeat p_default_repeat) {
+void RenderingServerCanvas::_render_canvas_item_tree(RID p_to_render_target, Canvas::ChildItem *p_child_items, int p_child_item_count, Item *p_canvas_item, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RasterizerCanvas::Light *p_lights, RasterizerCanvas::Light *p_directional_lights, RenderingServer::CanvasItemTextureFilter p_default_filter, RenderingServer::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel) {
RENDER_TIMESTAMP("Cull CanvasItem Tree");
memset(z_list, 0, z_range * sizeof(RasterizerCanvas::Item *));
@@ -68,7 +68,7 @@ void RenderingServerCanvas::_render_canvas_item_tree(RID p_to_render_target, Can
RENDER_TIMESTAMP("Render Canvas Items");
- RSG::canvas_render->canvas_render_items(p_to_render_target, list, p_modulate, p_lights, p_transform, p_default_filter, p_default_repeat);
+ RSG::canvas_render->canvas_render_items(p_to_render_target, list, p_modulate, p_lights, p_directional_lights, p_transform, p_default_filter, p_default_repeat, p_snap_2d_vertices_to_pixel);
}
void _collect_ysort_children(RenderingServerCanvas::Item *p_canvas_item, Transform2D p_transform, RenderingServerCanvas::Item *p_material_owner, RenderingServerCanvas::Item **r_items, int &r_index) {
@@ -113,7 +113,12 @@ void RenderingServerCanvas::_cull_canvas_item(Item *p_canvas_item, const Transfo
}
Rect2 rect = ci->get_rect();
- Transform2D xform = p_transform * ci->xform;
+ Transform2D xform = ci->xform;
+ if (snapping_2d_transforms_to_pixel) {
+ xform.elements[2].floor();
+ }
+ xform = p_transform * xform;
+
Rect2 global_rect = xform.xform(rect);
global_rect.position += p_clip_rect.position;
@@ -167,8 +172,15 @@ void RenderingServerCanvas::_cull_canvas_item(Item *p_canvas_item, const Transfo
p_z = ci->z_index;
}
+ RasterizerCanvas::Item *canvas_group_from = nullptr;
+ bool use_canvas_group = ci->canvas_group != nullptr && (ci->canvas_group->fit_empty || ci->commands != nullptr);
+ if (use_canvas_group) {
+ int zidx = p_z - RS::CANVAS_ITEM_Z_MIN;
+ canvas_group_from = z_last_list[zidx];
+ }
+
for (int i = 0; i < child_item_count; i++) {
- if (!child_items[i]->behind || (ci->sort_y && child_items[i]->sort_y)) {
+ if ((!child_items[i]->behind && !use_canvas_group) || (ci->sort_y && child_items[i]->sort_y)) {
continue;
}
if (ci->sort_y) {
@@ -182,6 +194,70 @@ void RenderingServerCanvas::_cull_canvas_item(Item *p_canvas_item, const Transfo
ci->copy_back_buffer->screen_rect = xform.xform(ci->copy_back_buffer->rect).clip(p_clip_rect);
}
+ if (use_canvas_group) {
+ int zidx = p_z - RS::CANVAS_ITEM_Z_MIN;
+ if (canvas_group_from == nullptr) {
+ // no list before processing this item, means must put stuff in group from the beginning of list.
+ canvas_group_from = z_list[zidx];
+ } else {
+ // there was a list before processing, so begin group from this one.
+ canvas_group_from = canvas_group_from->next;
+ }
+
+ if (canvas_group_from) {
+ // Has a place to begin the group from!
+
+ //compute a global rect (in global coords) for children in the same z layer
+ Rect2 rect_accum;
+ RasterizerCanvas::Item *c = canvas_group_from;
+ while (c) {
+ if (c == canvas_group_from) {
+ rect_accum = c->global_rect_cache;
+ } else {
+ rect_accum = rect_accum.merge(c->global_rect_cache);
+ }
+
+ c = c->next;
+ }
+
+ // We have two choices now, if user has drawn something, we must assume users wants to draw the "mask", so compute the size based on this.
+ // If nothing has been drawn, we just take it over and draw it ourselves.
+ if (ci->canvas_group->fit_empty && (ci->commands == nullptr ||
+ (ci->commands->next == nullptr && ci->commands->type == Item::Command::TYPE_RECT && (static_cast<Item::CommandRect *>(ci->commands)->flags & RasterizerCanvas::CANVAS_RECT_IS_GROUP)))) {
+ // No commands, or sole command is the one used to draw, so we (re)create the draw command.
+ ci->clear();
+
+ if (rect_accum == Rect2()) {
+ rect_accum.size = Size2(1, 1);
+ }
+
+ rect_accum = rect_accum.grow(ci->canvas_group->fit_margin);
+
+ //draw it?
+ RasterizerCanvas::Item::CommandRect *crect = ci->alloc_command<RasterizerCanvas::Item::CommandRect>();
+
+ crect->flags = RasterizerCanvas::CANVAS_RECT_IS_GROUP; // so we can recognize it later
+ crect->rect = xform.affine_inverse().xform(rect_accum);
+ crect->modulate = Color(1, 1, 1, 1);
+
+ //the global rect is used to do the copying, so update it
+ global_rect = rect_accum.grow(ci->canvas_group->clear_margin); //grow again by clear margin
+ global_rect.position += p_clip_rect.position;
+ } else {
+ global_rect.position -= p_clip_rect.position;
+
+ global_rect = global_rect.merge(rect_accum); //must use both rects for this
+ global_rect = global_rect.grow(ci->canvas_group->clear_margin); //grow by clear margin
+
+ global_rect.position += p_clip_rect.position;
+ }
+
+ // Very important that this is cleared after used in RasterizerCanvas to avoid
+ // potential crashes.
+ canvas_group_from->canvas_group_owner = ci;
+ }
+ }
+
if (ci->update_when_visible) {
RenderingServerRaster::redraw_request();
}
@@ -211,7 +287,7 @@ void RenderingServerCanvas::_cull_canvas_item(Item *p_canvas_item, const Transfo
}
for (int i = 0; i < child_item_count; i++) {
- if (child_items[i]->behind || (ci->sort_y && child_items[i]->sort_y)) {
+ if (child_items[i]->behind || use_canvas_group || (ci->sort_y && child_items[i]->sort_y)) {
continue;
}
if (ci->sort_y) {
@@ -222,30 +298,11 @@ void RenderingServerCanvas::_cull_canvas_item(Item *p_canvas_item, const Transfo
}
}
-void RenderingServerCanvas::_light_mask_canvas_items(int p_z, RasterizerCanvas::Item *p_canvas_item, RasterizerCanvas::Light *p_masked_lights) {
- if (!p_masked_lights) {
- return;
- }
-
- RasterizerCanvas::Item *ci = p_canvas_item;
-
- while (ci) {
- RasterizerCanvas::Light *light = p_masked_lights;
- while (light) {
- if (ci->light_mask & light->item_mask && p_z >= light->z_min && p_z <= light->z_max && ci->global_rect_cache.intersects_transformed(light->xform_cache, light->rect_cache)) {
- ci->light_masked = true;
- }
-
- light = light->mask_next_ptr;
- }
-
- ci = ci->next;
- }
-}
-
-void RenderingServerCanvas::render_canvas(RID p_render_target, Canvas *p_canvas, const Transform2D &p_transform, RasterizerCanvas::Light *p_lights, RasterizerCanvas::Light *p_masked_lights, const Rect2 &p_clip_rect, RenderingServer::CanvasItemTextureFilter p_default_filter, RenderingServer::CanvasItemTextureRepeat p_default_repeat) {
+void RenderingServerCanvas::render_canvas(RID p_render_target, Canvas *p_canvas, const Transform2D &p_transform, RasterizerCanvas::Light *p_lights, RasterizerCanvas::Light *p_directional_lights, const Rect2 &p_clip_rect, RenderingServer::CanvasItemTextureFilter p_default_filter, RenderingServer::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_transforms_to_pixel, bool p_snap_2d_vertices_to_pixel) {
RENDER_TIMESTAMP(">Render Canvas");
+ snapping_2d_transforms_to_pixel = p_snap_2d_transforms_to_pixel;
+
if (p_canvas->children_order_dirty) {
p_canvas->child_items.sort();
p_canvas->children_order_dirty = false;
@@ -263,26 +320,26 @@ void RenderingServerCanvas::render_canvas(RID p_render_target, Canvas *p_canvas,
}
if (!has_mirror) {
- _render_canvas_item_tree(p_render_target, ci, l, nullptr, p_transform, p_clip_rect, p_canvas->modulate, p_lights, p_default_filter, p_default_repeat);
+ _render_canvas_item_tree(p_render_target, ci, l, nullptr, p_transform, p_clip_rect, p_canvas->modulate, p_lights, p_directional_lights, p_default_filter, p_default_repeat, p_snap_2d_vertices_to_pixel);
} else {
//used for parallaxlayer mirroring
for (int i = 0; i < l; i++) {
const Canvas::ChildItem &ci2 = p_canvas->child_items[i];
- _render_canvas_item_tree(p_render_target, nullptr, 0, ci2.item, p_transform, p_clip_rect, p_canvas->modulate, p_lights, p_default_filter, p_default_repeat);
+ _render_canvas_item_tree(p_render_target, nullptr, 0, ci2.item, p_transform, p_clip_rect, p_canvas->modulate, p_lights, p_directional_lights, p_default_filter, p_default_repeat, p_snap_2d_vertices_to_pixel);
//mirroring (useful for scrolling backgrounds)
if (ci2.mirror.x != 0) {
Transform2D xform2 = p_transform * Transform2D(0, Vector2(ci2.mirror.x, 0));
- _render_canvas_item_tree(p_render_target, nullptr, 0, ci2.item, xform2, p_clip_rect, p_canvas->modulate, p_lights, p_default_filter, p_default_repeat);
+ _render_canvas_item_tree(p_render_target, nullptr, 0, ci2.item, xform2, p_clip_rect, p_canvas->modulate, p_lights, p_directional_lights, p_default_filter, p_default_repeat, p_snap_2d_vertices_to_pixel);
}
if (ci2.mirror.y != 0) {
Transform2D xform2 = p_transform * Transform2D(0, Vector2(0, ci2.mirror.y));
- _render_canvas_item_tree(p_render_target, nullptr, 0, ci2.item, xform2, p_clip_rect, p_canvas->modulate, p_lights, p_default_filter, p_default_repeat);
+ _render_canvas_item_tree(p_render_target, nullptr, 0, ci2.item, xform2, p_clip_rect, p_canvas->modulate, p_lights, p_directional_lights, p_default_filter, p_default_repeat, p_snap_2d_vertices_to_pixel);
}
if (ci2.mirror.y != 0 && ci2.mirror.x != 0) {
Transform2D xform2 = p_transform * Transform2D(0, ci2.mirror);
- _render_canvas_item_tree(p_render_target, nullptr, 0, ci2.item, xform2, p_clip_rect, p_canvas->modulate, p_lights, p_default_filter, p_default_repeat);
+ _render_canvas_item_tree(p_render_target, nullptr, 0, ci2.item, xform2, p_clip_rect, p_canvas->modulate, p_lights, p_directional_lights, p_default_filter, p_default_repeat, p_snap_2d_vertices_to_pixel);
}
}
}
@@ -935,19 +992,65 @@ void RenderingServerCanvas::canvas_item_set_use_parent_material(RID p_item, bool
canvas_item->use_parent_material = p_enable;
}
+void RenderingServerCanvas::canvas_item_set_canvas_group_mode(RID p_item, RS::CanvasGroupMode p_mode, float p_clear_margin, bool p_fit_empty, float p_fit_margin, bool p_blur_mipmaps) {
+ Item *canvas_item = canvas_item_owner.getornull(p_item);
+ ERR_FAIL_COND(!canvas_item);
+
+ if (p_mode == RS::CANVAS_GROUP_MODE_DISABLED) {
+ if (canvas_item->canvas_group != nullptr) {
+ memdelete(canvas_item->canvas_group);
+ canvas_item->canvas_group = nullptr;
+ }
+ } else {
+ if (canvas_item->canvas_group == nullptr) {
+ canvas_item->canvas_group = memnew(RasterizerCanvas::Item::CanvasGroup);
+ }
+ canvas_item->canvas_group->mode = p_mode;
+ canvas_item->canvas_group->fit_empty = p_fit_empty;
+ canvas_item->canvas_group->fit_margin = p_fit_margin;
+ canvas_item->canvas_group->blur_mipmaps = p_blur_mipmaps;
+ canvas_item->canvas_group->clear_margin = p_clear_margin;
+ }
+}
+
RID RenderingServerCanvas::canvas_light_create() {
RasterizerCanvas::Light *clight = memnew(RasterizerCanvas::Light);
clight->light_internal = RSG::canvas_render->light_create();
return canvas_light_owner.make_rid(clight);
}
+void RenderingServerCanvas::canvas_light_set_mode(RID p_light, RS::CanvasLightMode p_mode) {
+ RasterizerCanvas::Light *clight = canvas_light_owner.getornull(p_light);
+ ERR_FAIL_COND(!clight);
+
+ if (clight->mode == p_mode) {
+ return;
+ }
+
+ RID canvas = clight->canvas;
+
+ if (canvas.is_valid()) {
+ canvas_light_attach_to_canvas(p_light, RID());
+ }
+
+ clight->mode = p_mode;
+
+ if (canvas.is_valid()) {
+ canvas_light_attach_to_canvas(p_light, canvas);
+ }
+}
+
void RenderingServerCanvas::canvas_light_attach_to_canvas(RID p_light, RID p_canvas) {
RasterizerCanvas::Light *clight = canvas_light_owner.getornull(p_light);
ERR_FAIL_COND(!clight);
if (clight->canvas.is_valid()) {
Canvas *canvas = canvas_owner.getornull(clight->canvas);
- canvas->lights.erase(clight);
+ if (clight->mode == RS::CANVAS_LIGHT_MODE_POINT) {
+ canvas->lights.erase(clight);
+ } else {
+ canvas->directional_lights.erase(clight);
+ }
}
if (!canvas_owner.owns(p_canvas)) {
@@ -958,7 +1061,11 @@ void RenderingServerCanvas::canvas_light_attach_to_canvas(RID p_light, RID p_can
if (clight->canvas.is_valid()) {
Canvas *canvas = canvas_owner.getornull(clight->canvas);
- canvas->lights.insert(clight);
+ if (clight->mode == RS::CANVAS_LIGHT_MODE_POINT) {
+ canvas->lights.insert(clight);
+ } else {
+ canvas->directional_lights.insert(clight);
+ }
}
}
@@ -969,7 +1076,7 @@ void RenderingServerCanvas::canvas_light_set_enabled(RID p_light, bool p_enabled
clight->enabled = p_enabled;
}
-void RenderingServerCanvas::canvas_light_set_scale(RID p_light, float p_scale) {
+void RenderingServerCanvas::canvas_light_set_texture_scale(RID p_light, float p_scale) {
RasterizerCanvas::Light *clight = canvas_light_owner.getornull(p_light);
ERR_FAIL_COND(!clight);
@@ -1053,11 +1160,18 @@ void RenderingServerCanvas::canvas_light_set_item_shadow_cull_mask(RID p_light,
clight->item_shadow_mask = p_mask;
}
-void RenderingServerCanvas::canvas_light_set_mode(RID p_light, RS::CanvasLightMode p_mode) {
+void RenderingServerCanvas::canvas_light_set_directional_distance(RID p_light, float p_distance) {
RasterizerCanvas::Light *clight = canvas_light_owner.getornull(p_light);
ERR_FAIL_COND(!clight);
- clight->mode = p_mode;
+ clight->directional_distance = p_distance;
+}
+
+void RenderingServerCanvas::canvas_light_set_blend_mode(RID p_light, RS::CanvasLightBlendMode p_mode) {
+ RasterizerCanvas::Light *clight = canvas_light_owner.getornull(p_light);
+ ERR_FAIL_COND(!clight);
+
+ clight->blend_mode = p_mode;
}
void RenderingServerCanvas::canvas_light_set_shadow_enabled(RID p_light, bool p_enabled) {
diff --git a/servers/rendering/rendering_server_canvas.h b/servers/rendering/rendering_server_canvas.h
index 16edfd54e1..36e2f77e95 100644
--- a/servers/rendering/rendering_server_canvas.h
+++ b/servers/rendering/rendering_server_canvas.h
@@ -116,6 +116,7 @@ public:
};
Set<RasterizerCanvas::Light *> lights;
+ Set<RasterizerCanvas::Light *> directional_lights;
Set<RasterizerCanvas::LightOccluderInstance *> occluders;
@@ -152,17 +153,17 @@ public:
RID_PtrOwner<RasterizerCanvas::Light> canvas_light_owner;
bool disable_scale;
+ bool snapping_2d_transforms_to_pixel = false;
private:
- void _render_canvas_item_tree(RID p_to_render_target, Canvas::ChildItem *p_child_items, int p_child_item_count, Item *p_canvas_item, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RasterizerCanvas::Light *p_lights, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat);
+ void _render_canvas_item_tree(RID p_to_render_target, Canvas::ChildItem *p_child_items, int p_child_item_count, Item *p_canvas_item, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RasterizerCanvas::Light *p_lights, RasterizerCanvas::Light *p_directional_lights, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel);
void _cull_canvas_item(Item *p_canvas_item, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, int p_z, RasterizerCanvas::Item **z_list, RasterizerCanvas::Item **z_last_list, Item *p_canvas_clip, Item *p_material_owner);
- void _light_mask_canvas_items(int p_z, RasterizerCanvas::Item *p_canvas_item, RasterizerCanvas::Light *p_masked_lights);
RasterizerCanvas::Item **z_list;
RasterizerCanvas::Item **z_last_list;
public:
- void render_canvas(RID p_render_target, Canvas *p_canvas, const Transform2D &p_transform, RasterizerCanvas::Light *p_lights, RasterizerCanvas::Light *p_masked_lights, const Rect2 &p_clip_rect, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat);
+ void render_canvas(RID p_render_target, Canvas *p_canvas, const Transform2D &p_transform, RasterizerCanvas::Light *p_lights, RasterizerCanvas::Light *p_directional_lights, const Rect2 &p_clip_rect, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_transforms_to_pixel, bool p_snap_2d_vertices_to_pixel);
RID canvas_create();
void canvas_set_item_mirroring(RID p_canvas, RID p_item, const Point2 &p_mirroring);
@@ -216,10 +217,13 @@ public:
void canvas_item_set_use_parent_material(RID p_item, bool p_enable);
+ void canvas_item_set_canvas_group_mode(RID p_item, RS::CanvasGroupMode p_mode, float p_clear_margin = 5.0, bool p_fit_empty = false, float p_fit_margin = 0.0, bool p_blur_mipmaps = false);
+
RID canvas_light_create();
+ void canvas_light_set_mode(RID p_light, RS::CanvasLightMode p_mode);
void canvas_light_attach_to_canvas(RID p_light, RID p_canvas);
void canvas_light_set_enabled(RID p_light, bool p_enabled);
- void canvas_light_set_scale(RID p_light, float p_scale);
+ void canvas_light_set_texture_scale(RID p_light, float p_scale);
void canvas_light_set_transform(RID p_light, const Transform2D &p_transform);
void canvas_light_set_texture(RID p_light, RID p_texture);
void canvas_light_set_texture_offset(RID p_light, const Vector2 &p_offset);
@@ -230,8 +234,9 @@ public:
void canvas_light_set_layer_range(RID p_light, int p_min_layer, int p_max_layer);
void canvas_light_set_item_cull_mask(RID p_light, int p_mask);
void canvas_light_set_item_shadow_cull_mask(RID p_light, int p_mask);
+ void canvas_light_set_directional_distance(RID p_light, float p_distance);
- void canvas_light_set_mode(RID p_light, RS::CanvasLightMode p_mode);
+ void canvas_light_set_blend_mode(RID p_light, RS::CanvasLightBlendMode p_mode);
void canvas_light_set_shadow_enabled(RID p_light, bool p_enabled);
void canvas_light_set_shadow_filter(RID p_light, RS::CanvasLightShadowFilter p_filter);
diff --git a/servers/rendering/rendering_server_raster.h b/servers/rendering/rendering_server_raster.h
index 5744b40321..daad706f8e 100644
--- a/servers/rendering/rendering_server_raster.h
+++ b/servers/rendering/rendering_server_raster.h
@@ -528,6 +528,8 @@ public:
BIND2(viewport_remove_canvas, RID, RID)
BIND3(viewport_set_canvas_transform, RID, RID, const Transform2D &)
BIND2(viewport_set_transparent_background, RID, bool)
+ BIND2(viewport_set_snap_2d_transforms_to_pixel, RID, bool)
+ BIND2(viewport_set_snap_2d_vertices_to_pixel, RID, bool)
BIND2(viewport_set_default_canvas_item_texture_filter, RID, CanvasItemTextureFilter)
BIND2(viewport_set_default_canvas_item_texture_repeat, RID, CanvasItemTextureRepeat)
@@ -743,10 +745,15 @@ public:
BIND2(canvas_item_set_use_parent_material, RID, bool)
+ BIND6(canvas_item_set_canvas_group_mode, RID, CanvasGroupMode, float, bool, float, bool)
+
BIND0R(RID, canvas_light_create)
+
+ BIND2(canvas_light_set_mode, RID, CanvasLightMode)
+
BIND2(canvas_light_attach_to_canvas, RID, RID)
BIND2(canvas_light_set_enabled, RID, bool)
- BIND2(canvas_light_set_scale, RID, float)
+ BIND2(canvas_light_set_texture_scale, RID, float)
BIND2(canvas_light_set_transform, RID, const Transform2D &)
BIND2(canvas_light_set_texture, RID, RID)
BIND2(canvas_light_set_texture_offset, RID, const Vector2 &)
@@ -757,8 +764,9 @@ public:
BIND3(canvas_light_set_layer_range, RID, int, int)
BIND2(canvas_light_set_item_cull_mask, RID, int)
BIND2(canvas_light_set_item_shadow_cull_mask, RID, int)
+ BIND2(canvas_light_set_directional_distance, RID, float)
- BIND2(canvas_light_set_mode, RID, CanvasLightMode)
+ BIND2(canvas_light_set_blend_mode, RID, CanvasLightBlendMode)
BIND2(canvas_light_set_shadow_enabled, RID, bool)
BIND2(canvas_light_set_shadow_filter, RID, CanvasLightShadowFilter)
diff --git a/servers/rendering/rendering_server_viewport.cpp b/servers/rendering/rendering_server_viewport.cpp
index a8dbe1e254..23911faa5d 100644
--- a/servers/rendering/rendering_server_viewport.cpp
+++ b/servers/rendering/rendering_server_viewport.cpp
@@ -40,11 +40,21 @@ static Transform2D _canvas_get_transform(RenderingServerViewport::Viewport *p_vi
float scale = 1.0;
if (p_viewport->canvas_map.has(p_canvas->parent)) {
- xf = xf * p_viewport->canvas_map[p_canvas->parent].transform;
+ Transform2D c_xform = p_viewport->canvas_map[p_canvas->parent].transform;
+ if (p_viewport->snap_2d_transforms_to_pixel) {
+ c_xform.elements[2] = c_xform.elements[2].floor();
+ }
+ xf = xf * c_xform;
scale = p_canvas->parent_scale;
}
- xf = xf * p_canvas_data->transform;
+ Transform2D c_xform = p_canvas_data->transform;
+
+ if (p_viewport->snap_2d_transforms_to_pixel) {
+ c_xform.elements[2] = c_xform.elements[2].floor();
+ }
+
+ xf = xf * c_xform;
if (scale != 1.0 && !RSG::canvas->disable_scale) {
Vector2 pivot = p_vp_size * 0.5;
@@ -132,11 +142,15 @@ void RenderingServerViewport::_draw_viewport(Viewport *p_viewport, XRInterface::
Rect2 clip_rect(0, 0, p_viewport->size.x, p_viewport->size.y);
RasterizerCanvas::Light *lights = nullptr;
RasterizerCanvas::Light *lights_with_shadow = nullptr;
- RasterizerCanvas::Light *lights_with_mask = nullptr;
+
+ RasterizerCanvas::Light *directional_lights = nullptr;
+ RasterizerCanvas::Light *directional_lights_with_shadow = nullptr;
+
Rect2 shadow_rect;
int light_count = 0;
int shadow_count = 0;
+ int directional_light_count = 0;
RENDER_TIMESTAMP("Cull Canvas Lights");
for (Map<RID, Viewport::CanvasData>::Element *E = p_viewport->canvas_map.front(); E; E = E->next()) {
@@ -176,10 +190,6 @@ void RenderingServerViewport::_draw_viewport(Viewport *p_viewport, XRInterface::
lights_with_shadow = cl;
cl->radius_cache = cl->rect_cache.size.length();
}
- if (cl->mode == RS::CANVAS_LIGHT_MODE_MASK) {
- cl->mask_next_ptr = lights_with_mask;
- lights_with_mask = cl;
- }
light_count++;
}
@@ -189,6 +199,26 @@ void RenderingServerViewport::_draw_viewport(Viewport *p_viewport, XRInterface::
}
}
+ for (Set<RasterizerCanvas::Light *>::Element *F = canvas->directional_lights.front(); F; F = F->next()) {
+ RasterizerCanvas::Light *cl = F->get();
+ if (cl->enabled) {
+ cl->filter_next_ptr = directional_lights;
+ directional_lights = cl;
+ cl->xform_cache = xf * cl->xform;
+ cl->xform_cache.elements[2] = Vector2(); //translation is pointless
+ if (cl->use_shadow) {
+ cl->shadows_next_ptr = directional_lights_with_shadow;
+ directional_lights_with_shadow = cl;
+ }
+
+ directional_light_count++;
+
+ if (directional_light_count == RS::MAX_2D_DIRECTIONAL_LIGHTS) {
+ break;
+ }
+ }
+ }
+
canvas_map[Viewport::CanvasKey(E->key(), E->get().layer, E->get().sublayer)] = &E->get();
}
@@ -230,6 +260,90 @@ void RenderingServerViewport::_draw_viewport(Viewport *p_viewport, XRInterface::
RENDER_TIMESTAMP("<End rendering 2D Shadows");
}
+ if (directional_lights_with_shadow) {
+ //update shadows if any
+ RasterizerCanvas::Light *light = directional_lights_with_shadow;
+ while (light) {
+ Vector2 light_dir = -light->xform_cache.elements[1].normalized(); // Y is light direction
+ float cull_distance = light->directional_distance;
+
+ Vector2 light_dir_sign;
+ light_dir_sign.x = (ABS(light_dir.x) < CMP_EPSILON) ? 0.0 : ((light_dir.x > 0.0) ? 1.0 : -1.0);
+ light_dir_sign.y = (ABS(light_dir.y) < CMP_EPSILON) ? 0.0 : ((light_dir.y > 0.0) ? 1.0 : -1.0);
+
+ Vector2 points[6];
+ int point_count = 0;
+
+ for (int j = 0; j < 4; j++) {
+ static const Vector2 signs[4] = { Vector2(1, 1), Vector2(1, 0), Vector2(0, 0), Vector2(0, 1) };
+ Vector2 sign_cmp = signs[j] * 2.0 - Vector2(1.0, 1.0);
+ Vector2 point = clip_rect.position + clip_rect.size * signs[j];
+
+ if (sign_cmp == light_dir_sign) {
+ //both point in same direction, plot offseted
+ points[point_count++] = point + light_dir * cull_distance;
+ } else if (sign_cmp.x == light_dir_sign.x || sign_cmp.y == light_dir_sign.y) {
+ int next_j = (j + 1) % 4;
+ Vector2 next_sign_cmp = signs[next_j] * 2.0 - Vector2(1.0, 1.0);
+
+ //one point in the same direction, plot segment
+
+ if (next_sign_cmp.x == light_dir_sign.x || next_sign_cmp.y == light_dir_sign.y) {
+ if (light_dir_sign.x != 0.0 || light_dir_sign.y != 0.0) {
+ points[point_count++] = point;
+ }
+ points[point_count++] = point + light_dir * cull_distance;
+ } else {
+ points[point_count++] = point + light_dir * cull_distance;
+ if (light_dir_sign.x != 0.0 || light_dir_sign.y != 0.0) {
+ points[point_count++] = point;
+ }
+ }
+ } else {
+ //plot normally
+ points[point_count++] = point;
+ }
+ }
+
+ Vector2 xf_points[6];
+
+ RasterizerCanvas::LightOccluderInstance *occluders = nullptr;
+
+ RENDER_TIMESTAMP(">Render Directional 2D Shadows");
+
+ //make list of occluders
+ int occ_cullded = 0;
+ for (Map<RID, Viewport::CanvasData>::Element *E = p_viewport->canvas_map.front(); E; E = E->next()) {
+ RenderingServerCanvas::Canvas *canvas = static_cast<RenderingServerCanvas::Canvas *>(E->get().canvas);
+ Transform2D xf = _canvas_get_transform(p_viewport, canvas, &E->get(), clip_rect.size);
+
+ for (Set<RasterizerCanvas::LightOccluderInstance *>::Element *F = canvas->occluders.front(); F; F = F->next()) {
+ if (!F->get()->enabled) {
+ continue;
+ }
+ F->get()->xform_cache = xf * F->get()->xform;
+ Transform2D localizer = F->get()->xform_cache.affine_inverse();
+
+ for (int j = 0; j < point_count; j++) {
+ xf_points[j] = localizer.xform(points[j]);
+ }
+ if (F->get()->aabb_cache.intersects_filled_polygon(xf_points, point_count)) {
+ F->get()->next = occluders;
+ occluders = F->get();
+ occ_cullded++;
+ }
+ }
+ }
+
+ RSG::canvas_render->light_update_directional_shadow(light->light_internal, shadow_count++, light->xform_cache, light->item_shadow_mask, cull_distance, clip_rect, occluders);
+
+ light = light->shadows_next_ptr;
+ }
+
+ //RSG::canvas_render->reset_canvas();
+ RENDER_TIMESTAMP("<Render Directional 2D Shadows");
+ }
+
if (scenario_draw_canvas_bg && canvas_map.front() && canvas_map.front()->key().get_layer() > scenario_canvas_max_layer) {
if (!can_draw_3d) {
RSG::scene->render_empty_scene(p_viewport->render_buffers, p_viewport->scenario, p_viewport->shadow_atlas);
@@ -245,6 +359,7 @@ void RenderingServerViewport::_draw_viewport(Viewport *p_viewport, XRInterface::
Transform2D xform = _canvas_get_transform(p_viewport, canvas, E->get(), clip_rect.size);
RasterizerCanvas::Light *canvas_lights = nullptr;
+ RasterizerCanvas::Light *canvas_directional_lights = nullptr;
RasterizerCanvas::Light *ptr = lights;
while (ptr) {
@@ -255,7 +370,16 @@ void RenderingServerViewport::_draw_viewport(Viewport *p_viewport, XRInterface::
ptr = ptr->filter_next_ptr;
}
- RSG::canvas->render_canvas(p_viewport->render_target, canvas, xform, canvas_lights, lights_with_mask, clip_rect, p_viewport->texture_filter, p_viewport->texture_repeat);
+ ptr = directional_lights;
+ while (ptr) {
+ if (E->get()->layer >= ptr->layer_min && E->get()->layer <= ptr->layer_max) {
+ ptr->next_ptr = canvas_directional_lights;
+ canvas_directional_lights = ptr;
+ }
+ ptr = ptr->filter_next_ptr;
+ }
+
+ RSG::canvas->render_canvas(p_viewport->render_target, canvas, xform, canvas_lights, canvas_directional_lights, clip_rect, p_viewport->texture_filter, p_viewport->texture_repeat, p_viewport->snap_2d_transforms_to_pixel, p_viewport->snap_2d_vertices_to_pixel);
i++;
if (scenario_draw_canvas_bg && E->key().get_layer() >= scenario_canvas_max_layer) {
@@ -774,6 +898,18 @@ float RenderingServerViewport::viewport_get_measured_render_time_gpu(RID p_viewp
return double((viewport->time_gpu_end - viewport->time_gpu_begin) / 1000) / 1000.0;
}
+void RenderingServerViewport::viewport_set_snap_2d_transforms_to_pixel(RID p_viewport, bool p_enabled) {
+ Viewport *viewport = viewport_owner.getornull(p_viewport);
+ ERR_FAIL_COND(!viewport);
+ viewport->snap_2d_transforms_to_pixel = p_enabled;
+}
+
+void RenderingServerViewport::viewport_set_snap_2d_vertices_to_pixel(RID p_viewport, bool p_enabled) {
+ Viewport *viewport = viewport_owner.getornull(p_viewport);
+ ERR_FAIL_COND(!viewport);
+ viewport->snap_2d_vertices_to_pixel = p_enabled;
+}
+
void RenderingServerViewport::viewport_set_default_canvas_item_texture_filter(RID p_viewport, RS::CanvasItemTextureFilter p_filter) {
ERR_FAIL_COND_MSG(p_filter == RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT, "Viewport does not accept DEFAULT as texture filter (it's the topmost choice already).)");
Viewport *viewport = viewport_owner.getornull(p_viewport);
diff --git a/servers/rendering/rendering_server_viewport.h b/servers/rendering/rendering_server_viewport.h
index 161ae94fb0..d00a06c5ee 100644
--- a/servers/rendering/rendering_server_viewport.h
+++ b/servers/rendering/rendering_server_viewport.h
@@ -70,6 +70,9 @@ public:
bool disable_environment;
bool measure_render_time;
+ bool snap_2d_transforms_to_pixel;
+ bool snap_2d_vertices_to_pixel;
+
uint64_t time_cpu_begin;
uint64_t time_cpu_end;
@@ -136,6 +139,9 @@ public:
screen_space_aa = RS::VIEWPORT_SCREEN_SPACE_AA_DISABLED;
use_debanding = false;
+ snap_2d_transforms_to_pixel = false;
+ snap_2d_vertices_to_pixel = false;
+
for (int i = 0; i < RS::VIEWPORT_RENDER_INFO_MAX; i++) {
render_info[i] = 0;
}
@@ -220,6 +226,9 @@ public:
float viewport_get_measured_render_time_cpu(RID p_viewport) const;
float viewport_get_measured_render_time_gpu(RID p_viewport) const;
+ void viewport_set_snap_2d_transforms_to_pixel(RID p_viewport, bool p_enabled);
+ void viewport_set_snap_2d_vertices_to_pixel(RID p_viewport, bool p_enabled);
+
void viewport_set_default_canvas_item_texture_filter(RID p_viewport, RS::CanvasItemTextureFilter p_filter);
void viewport_set_default_canvas_item_texture_repeat(RID p_viewport, RS::CanvasItemTextureRepeat p_repeat);
diff --git a/servers/rendering/rendering_server_wrap_mt.h b/servers/rendering/rendering_server_wrap_mt.h
index 1836f99c99..237ba012fa 100644
--- a/servers/rendering/rendering_server_wrap_mt.h
+++ b/servers/rendering/rendering_server_wrap_mt.h
@@ -431,6 +431,8 @@ public:
FUNC2(viewport_remove_canvas, RID, RID)
FUNC3(viewport_set_canvas_transform, RID, RID, const Transform2D &)
FUNC2(viewport_set_transparent_background, RID, bool)
+ FUNC2(viewport_set_snap_2d_transforms_to_pixel, RID, bool)
+ FUNC2(viewport_set_snap_2d_vertices_to_pixel, RID, bool)
FUNC2(viewport_set_default_canvas_item_texture_filter, RID, CanvasItemTextureFilter)
FUNC2(viewport_set_default_canvas_item_texture_repeat, RID, CanvasItemTextureRepeat)
@@ -642,10 +644,15 @@ public:
FUNC2(canvas_item_set_use_parent_material, RID, bool)
+ FUNC6(canvas_item_set_canvas_group_mode, RID, CanvasGroupMode, float, bool, float, bool)
+
FUNC0R(RID, canvas_light_create)
+
+ FUNC2(canvas_light_set_mode, RID, CanvasLightMode)
+
FUNC2(canvas_light_attach_to_canvas, RID, RID)
FUNC2(canvas_light_set_enabled, RID, bool)
- FUNC2(canvas_light_set_scale, RID, float)
+ FUNC2(canvas_light_set_texture_scale, RID, float)
FUNC2(canvas_light_set_transform, RID, const Transform2D &)
FUNC2(canvas_light_set_texture, RID, RID)
FUNC2(canvas_light_set_texture_offset, RID, const Vector2 &)
@@ -656,8 +663,9 @@ public:
FUNC3(canvas_light_set_layer_range, RID, int, int)
FUNC2(canvas_light_set_item_cull_mask, RID, int)
FUNC2(canvas_light_set_item_shadow_cull_mask, RID, int)
+ FUNC2(canvas_light_set_directional_distance, RID, float)
- FUNC2(canvas_light_set_mode, RID, CanvasLightMode)
+ FUNC2(canvas_light_set_blend_mode, RID, CanvasLightBlendMode)
FUNC2(canvas_light_set_shadow_enabled, RID, bool)
FUNC2(canvas_light_set_shadow_filter, RID, CanvasLightShadowFilter)
diff --git a/servers/rendering/shader_types.cpp b/servers/rendering/shader_types.cpp
index 48eaf1dd13..4d21807735 100644
--- a/servers/rendering/shader_types.cpp
+++ b/servers/rendering/shader_types.cpp
@@ -134,6 +134,11 @@ ShaderTypes::ShaderTypes() {
shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["IRRADIANCE"] = ShaderLanguage::TYPE_VEC4;
shader_modes[RS::SHADER_SPATIAL].functions["fragment"].can_discard = true;
+ shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_SCISSOR_THRESHOLD"] = ShaderLanguage::TYPE_FLOAT;
+ shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_HASH_SCALE"] = ShaderLanguage::TYPE_FLOAT;
+ shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_ANTIALIASING_EDGE"] = ShaderLanguage::TYPE_FLOAT;
+ shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_TEXTURE_COORDINATE"] = ShaderLanguage::TYPE_VEC2;
+
shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["WORLD_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["INV_CAMERA_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["CAMERA_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
@@ -206,6 +211,9 @@ ShaderTypes::ShaderTypes() {
shader_modes[RS::SHADER_SPATIAL].modes.push_back("vertex_lighting");
+ shader_modes[RS::SHADER_SPATIAL].modes.push_back("alpha_to_coverage");
+ shader_modes[RS::SHADER_SPATIAL].modes.push_back("alpha_to_coverage_and_one");
+
/************ CANVAS ITEM **************************/
shader_modes[RS::SHADER_CANVAS_ITEM].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT);
diff --git a/servers/rendering_server.cpp b/servers/rendering_server.cpp
index 42a77101f7..121bf3ee92 100644
--- a/servers/rendering_server.cpp
+++ b/servers/rendering_server.cpp
@@ -1833,7 +1833,7 @@ void RenderingServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("canvas_light_create"), &RenderingServer::canvas_light_create);
ClassDB::bind_method(D_METHOD("canvas_light_attach_to_canvas", "light", "canvas"), &RenderingServer::canvas_light_attach_to_canvas);
ClassDB::bind_method(D_METHOD("canvas_light_set_enabled", "light", "enabled"), &RenderingServer::canvas_light_set_enabled);
- ClassDB::bind_method(D_METHOD("canvas_light_set_scale", "light", "scale"), &RenderingServer::canvas_light_set_scale);
+ ClassDB::bind_method(D_METHOD("canvas_light_set_texture_scale", "light", "scale"), &RenderingServer::canvas_light_set_texture_scale);
ClassDB::bind_method(D_METHOD("canvas_light_set_transform", "light", "transform"), &RenderingServer::canvas_light_set_transform);
ClassDB::bind_method(D_METHOD("canvas_light_set_texture", "light", "texture"), &RenderingServer::canvas_light_set_texture);
ClassDB::bind_method(D_METHOD("canvas_light_set_texture_offset", "light", "offset"), &RenderingServer::canvas_light_set_texture_offset);
@@ -2190,10 +2190,16 @@ void RenderingServer::_bind_methods() {
BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_REPEAT_MIRROR);
BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_REPEAT_MAX);
- BIND_ENUM_CONSTANT(CANVAS_LIGHT_MODE_ADD);
- BIND_ENUM_CONSTANT(CANVAS_LIGHT_MODE_SUB);
- BIND_ENUM_CONSTANT(CANVAS_LIGHT_MODE_MIX);
- BIND_ENUM_CONSTANT(CANVAS_LIGHT_MODE_MASK);
+ BIND_ENUM_CONSTANT(CANVAS_GROUP_MODE_DISABLED);
+ BIND_ENUM_CONSTANT(CANVAS_GROUP_MODE_OPAQUE);
+ BIND_ENUM_CONSTANT(CANVAS_GROUP_MODE_TRANSPARENT);
+
+ BIND_ENUM_CONSTANT(CANVAS_LIGHT_MODE_POINT);
+ BIND_ENUM_CONSTANT(CANVAS_LIGHT_MODE_DIRECTIONAL);
+
+ BIND_ENUM_CONSTANT(CANVAS_LIGHT_BLEND_MODE_ADD);
+ BIND_ENUM_CONSTANT(CANVAS_LIGHT_BLEND_MODE_SUB);
+ BIND_ENUM_CONSTANT(CANVAS_LIGHT_BLEND_MODE_MIX);
BIND_ENUM_CONSTANT(CANVAS_LIGHT_FILTER_NONE);
BIND_ENUM_CONSTANT(CANVAS_LIGHT_FILTER_PCF5);
diff --git a/servers/rendering_server.h b/servers/rendering_server.h
index 61d0fed52f..3aa15623eb 100644
--- a/servers/rendering_server.h
+++ b/servers/rendering_server.h
@@ -77,6 +77,7 @@ public:
CANVAS_ITEM_Z_MAX = 4096,
MAX_GLOW_LEVELS = 7,
MAX_CURSORS = 8,
+ MAX_2D_DIRECTIONAL_LIGHTS = 8
};
/* TEXTURE API */
@@ -720,6 +721,8 @@ public:
virtual void viewport_remove_canvas(RID p_viewport, RID p_canvas) = 0;
virtual void viewport_set_canvas_transform(RID p_viewport, RID p_canvas, const Transform2D &p_offset) = 0;
virtual void viewport_set_transparent_background(RID p_viewport, bool p_enabled) = 0;
+ virtual void viewport_set_snap_2d_transforms_to_pixel(RID p_viewport, bool p_enabled) = 0;
+ virtual void viewport_set_snap_2d_vertices_to_pixel(RID p_viewport, bool p_enabled) = 0;
virtual void viewport_set_default_canvas_item_texture_filter(RID p_viewport, CanvasItemTextureFilter p_filter) = 0;
virtual void viewport_set_default_canvas_item_texture_repeat(RID p_viewport, CanvasItemTextureRepeat p_repeat) = 0;
@@ -1184,13 +1187,26 @@ public:
virtual void canvas_item_set_use_parent_material(RID p_item, bool p_enable) = 0;
+ enum CanvasGroupMode {
+ CANVAS_GROUP_MODE_DISABLED,
+ CANVAS_GROUP_MODE_OPAQUE,
+ CANVAS_GROUP_MODE_TRANSPARENT,
+ };
+
+ virtual void canvas_item_set_canvas_group_mode(RID p_item, CanvasGroupMode p_mode, float p_clear_margin = 5.0, bool p_fit_empty = false, float p_fit_margin = 0.0, bool p_blur_mipmaps = false) = 0;
+
virtual RID canvas_light_create() = 0;
+
+ enum CanvasLightMode {
+ CANVAS_LIGHT_MODE_POINT,
+ CANVAS_LIGHT_MODE_DIRECTIONAL,
+ };
+
+ virtual void canvas_light_set_mode(RID p_light, CanvasLightMode p_mode) = 0;
+
virtual void canvas_light_attach_to_canvas(RID p_light, RID p_canvas) = 0;
virtual void canvas_light_set_enabled(RID p_light, bool p_enabled) = 0;
- virtual void canvas_light_set_scale(RID p_light, float p_scale) = 0;
virtual void canvas_light_set_transform(RID p_light, const Transform2D &p_transform) = 0;
- virtual void canvas_light_set_texture(RID p_light, RID p_texture) = 0;
- virtual void canvas_light_set_texture_offset(RID p_light, const Vector2 &p_offset) = 0;
virtual void canvas_light_set_color(RID p_light, const Color &p_color) = 0;
virtual void canvas_light_set_height(RID p_light, float p_height) = 0;
virtual void canvas_light_set_energy(RID p_light, float p_energy) = 0;
@@ -1199,14 +1215,19 @@ public:
virtual void canvas_light_set_item_cull_mask(RID p_light, int p_mask) = 0;
virtual void canvas_light_set_item_shadow_cull_mask(RID p_light, int p_mask) = 0;
- enum CanvasLightMode {
- CANVAS_LIGHT_MODE_ADD,
- CANVAS_LIGHT_MODE_SUB,
- CANVAS_LIGHT_MODE_MIX,
- CANVAS_LIGHT_MODE_MASK,
+ virtual void canvas_light_set_directional_distance(RID p_light, float p_distance) = 0;
+
+ virtual void canvas_light_set_texture_scale(RID p_light, float p_scale) = 0;
+ virtual void canvas_light_set_texture(RID p_light, RID p_texture) = 0;
+ virtual void canvas_light_set_texture_offset(RID p_light, const Vector2 &p_offset) = 0;
+
+ enum CanvasLightBlendMode {
+ CANVAS_LIGHT_BLEND_MODE_ADD,
+ CANVAS_LIGHT_BLEND_MODE_SUB,
+ CANVAS_LIGHT_BLEND_MODE_MIX,
};
- virtual void canvas_light_set_mode(RID p_light, CanvasLightMode p_mode) = 0;
+ virtual void canvas_light_set_blend_mode(RID p_light, CanvasLightBlendMode p_mode) = 0;
enum CanvasLightShadowFilter {
CANVAS_LIGHT_FILTER_NONE,
@@ -1424,7 +1445,9 @@ VARIANT_ENUM_CAST(RenderingServer::ShadowCastingSetting);
VARIANT_ENUM_CAST(RenderingServer::NinePatchAxisMode);
VARIANT_ENUM_CAST(RenderingServer::CanvasItemTextureFilter);
VARIANT_ENUM_CAST(RenderingServer::CanvasItemTextureRepeat);
+VARIANT_ENUM_CAST(RenderingServer::CanvasGroupMode);
VARIANT_ENUM_CAST(RenderingServer::CanvasLightMode);
+VARIANT_ENUM_CAST(RenderingServer::CanvasLightBlendMode);
VARIANT_ENUM_CAST(RenderingServer::CanvasLightShadowFilter);
VARIANT_ENUM_CAST(RenderingServer::CanvasOccluderPolygonCullMode);
VARIANT_ENUM_CAST(RenderingServer::GlobalVariableType);
diff --git a/tests/test_color.h b/tests/test_color.h
index dfdc29ec7d..e5b6899908 100644
--- a/tests/test_color.h
+++ b/tests/test_color.h
@@ -185,9 +185,6 @@ TEST_CASE("[Color] Manipulation methods") {
CHECK_MESSAGE(
blue.inverted().is_equal_approx(Color(1, 1, 0, 0.4)),
"Inverted color should have its red, green and blue components inverted.");
- CHECK_MESSAGE(
- blue.contrasted().is_equal_approx(Color(0.5, 0.5, 0.5, 0.4)),
- "Contrasted pure blue should be fully gray.");
const Color purple = Color(0.5, 0.2, 0.5, 0.25);
diff --git a/thirdparty/misc/pcg.cpp b/thirdparty/misc/pcg.cpp
index c421e16f89..5f4bf40460 100644
--- a/thirdparty/misc/pcg.cpp
+++ b/thirdparty/misc/pcg.cpp
@@ -23,3 +23,13 @@ void pcg32_srandom_r(pcg32_random_t* rng, uint64_t initstate, uint64_t initseq)
rng->state += initstate;
pcg32_random_r(rng);
}
+
+// Source from https://github.com/imneme/pcg-c-basic/blob/master/pcg_basic.c
+uint32_t pcg32_boundedrand_r(pcg32_random_t *rng, uint32_t bound) {
+ uint32_t threshold = -bound % bound;
+ for (;;) {
+ uint32_t r = pcg32_random_r(rng);
+ if (r >= threshold)
+ return r % bound;
+ }
+}
diff --git a/thirdparty/misc/pcg.h b/thirdparty/misc/pcg.h
index 6f42b3b094..0faab73e64 100644
--- a/thirdparty/misc/pcg.h
+++ b/thirdparty/misc/pcg.h
@@ -11,5 +11,6 @@
typedef struct { uint64_t state; uint64_t inc; } pcg32_random_t;
uint32_t pcg32_random_r(pcg32_random_t* rng);
void pcg32_srandom_r(pcg32_random_t* rng, uint64_t initstate, uint64_t initseq);
+uint32_t pcg32_boundedrand_r(pcg32_random_t* rng, uint32_t bound);
#endif // RANDOM_H
diff --git a/thirdparty/vulkan/loader/loader.c b/thirdparty/vulkan/loader/loader.c
index a6b5522cd4..86ac79d963 100644
--- a/thirdparty/vulkan/loader/loader.c
+++ b/thirdparty/vulkan/loader/loader.c
@@ -71,6 +71,9 @@
#include <devpkey.h>
#include <winternl.h>
#include <strsafe.h>
+#ifdef __MINGW32__
+#undef strcpy // fix error with redfined strcpy when building with MinGW-w64
+#endif
#include <dxgi1_6.h>
#include "adapters.h"
@@ -695,7 +698,11 @@ VkResult loaderGetDeviceRegistryFiles(const struct loader_instance *inst, char *
LPCSTR value_name) {
static const wchar_t *softwareComponentGUID = L"{5c4c3332-344d-483c-8739-259e934c9cc8}";
static const wchar_t *displayGUID = L"{4d36e968-e325-11ce-bfc1-08002be10318}";
+#ifdef CM_GETIDLIST_FILTER_PRESENT
const ULONG flags = CM_GETIDLIST_FILTER_CLASS | CM_GETIDLIST_FILTER_PRESENT;
+#else
+ const ULONG flags = 0x300;
+#endif
wchar_t childGuid[MAX_GUID_STRING_LEN + 2]; // +2 for brackets {}
ULONG childGuidSize = sizeof(childGuid);
diff --git a/thirdparty/vulkan/patches/Vulkan-Loader-pr475.patch b/thirdparty/vulkan/patches/Vulkan-Loader-pr475.patch
new file mode 100644
index 0000000000..5303768f5c
--- /dev/null
+++ b/thirdparty/vulkan/patches/Vulkan-Loader-pr475.patch
@@ -0,0 +1,37 @@
+From e1c938170bba5879d95bf2d7b57b4d1d68557cd5 Mon Sep 17 00:00:00 2001
+From: Brecht Sanders <brecht@sanders.org>
+Date: Tue, 29 Sep 2020 18:14:55 +0200
+Subject: [PATCH] loader: Fixes build with MinGW-w64 8.0.0.
+
+See http://winlibs.com for a release of such GCC compiler
+See issue https://github.com/KhronosGroup/Vulkan-Loader/issues/474
+---
+ loader/loader.c | 7 +++++++
+ 1 file changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/loader/loader.c b/loader/loader.c
+index 4d8865e13..509f2f420 100644
+--- a/loader/loader.c
++++ b/loader/loader.c
+@@ -71,6 +71,9 @@
+ #include <devpkey.h>
+ #include <winternl.h>
+ #include <strsafe.h>
++#ifdef __MINGW32__
++#undef strcpy // fix error with redfined strcpy when building with MinGW-w64
++#endif
+ #include <dxgi1_6.h>
+ #include "adapters.h"
+
+@@ -695,7 +698,11 @@ VkResult loaderGetDeviceRegistryFiles(const struct loader_instance *inst, char *
+ LPCSTR value_name) {
+ static const wchar_t *softwareComponentGUID = L"{5c4c3332-344d-483c-8739-259e934c9cc8}";
+ static const wchar_t *displayGUID = L"{4d36e968-e325-11ce-bfc1-08002be10318}";
++#ifdef CM_GETIDLIST_FILTER_PRESENT
+ const ULONG flags = CM_GETIDLIST_FILTER_CLASS | CM_GETIDLIST_FILTER_PRESENT;
++#else
++ const ULONG flags = 0x300;
++#endif
+
+ wchar_t childGuid[MAX_GUID_STRING_LEN + 2]; // +2 for brackets {}
+ ULONG childGuidSize = sizeof(childGuid);