summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/error_macros.h20
-rw-r--r--core/io/resource_importer.cpp9
-rw-r--r--core/io/resource_importer.h1
-rw-r--r--doc/classes/AnimationPlayer.xml4
-rw-r--r--doc/classes/AnimationTreePlayer.xml2
-rw-r--r--doc/classes/ScrollContainer.xml2
-rw-r--r--drivers/gles2/rasterizer_scene_gles2.cpp89
-rw-r--r--drivers/gles2/rasterizer_scene_gles2.h2
-rw-r--r--drivers/gles2/rasterizer_storage_gles2.cpp142
-rw-r--r--drivers/gles2/rasterizer_storage_gles2.h8
-rw-r--r--drivers/gles2/shader_gles2.cpp535
-rw-r--r--drivers/gles2/shader_gles2.h275
-rw-r--r--drivers/gles3/rasterizer_storage_gles3.cpp1
-rw-r--r--drivers/gles3/shader_gles3.cpp9
-rw-r--r--editor/code_editor.cpp1
-rw-r--r--editor/editor_node.cpp92
-rw-r--r--editor/editor_node.h2
-rw-r--r--editor/editor_resource_preview.cpp7
-rw-r--r--editor/editor_resource_preview.h1
-rw-r--r--editor/editor_sectioned_inspector.cpp4
-rw-r--r--editor/export_template_manager.cpp6
-rw-r--r--editor/filesystem_dock.cpp25
-rw-r--r--editor/filesystem_dock.h4
-rw-r--r--editor/import/editor_scene_importer_gltf.cpp2
-rw-r--r--editor/plugins/animation_blend_tree_editor_plugin.cpp1
-rw-r--r--editor/plugins/tile_set_editor_plugin.cpp63
-rw-r--r--editor/plugins/tile_set_editor_plugin.h1
-rw-r--r--editor/script_editor_debugger.cpp20
-rw-r--r--editor/script_editor_debugger.h2
-rw-r--r--editor/translations/af.po372
-rw-r--r--editor/translations/ar.po396
-rw-r--r--editor/translations/bg.po378
-rw-r--r--editor/translations/bn.po409
-rw-r--r--editor/translations/ca.po401
-rw-r--r--editor/translations/cs.po691
-rw-r--r--editor/translations/da.po380
-rw-r--r--editor/translations/de.po434
-rw-r--r--editor/translations/de_CH.po372
-rw-r--r--editor/translations/editor.pot331
-rw-r--r--editor/translations/el.po407
-rw-r--r--editor/translations/es.po427
-rw-r--r--editor/translations/es_AR.po409
-rw-r--r--editor/translations/et.po331
-rw-r--r--editor/translations/fa.po384
-rw-r--r--editor/translations/fi.po421
-rw-r--r--editor/translations/fr.po420
-rw-r--r--editor/translations/he.po380
-rw-r--r--editor/translations/hi.po353
-rw-r--r--editor/translations/hr.po331
-rw-r--r--editor/translations/hu.po396
-rw-r--r--editor/translations/id.po424
-rw-r--r--editor/translations/is.po352
-rw-r--r--editor/translations/it.po409
-rw-r--r--editor/translations/ja.po506
-rw-r--r--editor/translations/ka.po362
-rw-r--r--editor/translations/ko.po447
-rw-r--r--editor/translations/lt.po355
-rw-r--r--editor/translations/lv.po353
-rw-r--r--editor/translations/ml.po331
-rw-r--r--editor/translations/ms.po343
-rw-r--r--editor/translations/nb.po398
-rw-r--r--editor/translations/nl.po404
-rw-r--r--editor/translations/pl.po447
-rw-r--r--editor/translations/pr.po357
-rw-r--r--editor/translations/pt_BR.po481
-rw-r--r--editor/translations/pt_PT.po398
-rw-r--r--editor/translations/ro.po394
-rw-r--r--editor/translations/ru.po415
-rw-r--r--editor/translations/si.po347
-rw-r--r--editor/translations/sk.po355
-rw-r--r--editor/translations/sl.po395
-rw-r--r--editor/translations/sq.po339
-rw-r--r--editor/translations/sr_Cyrl.po403
-rw-r--r--editor/translations/sr_Latn.po349
-rw-r--r--editor/translations/sv.po393
-rw-r--r--editor/translations/ta.po351
-rw-r--r--editor/translations/te.po331
-rw-r--r--editor/translations/th.po409
-rw-r--r--editor/translations/tr.po407
-rw-r--r--editor/translations/uk.po414
-rw-r--r--editor/translations/ur_PK.po345
-rw-r--r--editor/translations/vi.po384
-rw-r--r--editor/translations/zh_CN.po423
-rw-r--r--editor/translations/zh_HK.po392
-rw-r--r--editor/translations/zh_TW.po385
-rw-r--r--modules/csg/csg.cpp6
-rw-r--r--modules/gdscript/gdscript.cpp3
-rw-r--r--modules/mono/csharp_script.cpp33
-rw-r--r--modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj1
-rw-r--r--modules/mono/editor/GodotSharpTools/Project/IdentifierUtils.cs199
-rw-r--r--modules/mono/editor/GodotSharpTools/Project/ProjectGenerator.cs5
-rw-r--r--modules/mono/editor/script_class_parser.cpp25
-rw-r--r--modules/mono/glue/Managed/Files/Array.cs13
-rw-r--r--modules/mono/glue/collections_glue.cpp5
-rw-r--r--modules/mono/glue/collections_glue.h2
-rw-r--r--modules/opus/SCsub299
-rw-r--r--platform/android/audio_driver_opensl.cpp104
-rw-r--r--platform/android/audio_driver_opensl.h15
-rw-r--r--platform/x11/os_x11.cpp2
-rw-r--r--scene/gui/control.cpp2
-rw-r--r--scene/gui/progress_bar.cpp9
-rw-r--r--scene/gui/rich_text_label.cpp11
-rw-r--r--scene/gui/rich_text_label.h2
-rw-r--r--scene/resources/packed_scene.cpp2
-rw-r--r--scene/resources/sky.cpp11
-rw-r--r--scene/resources/visual_shader.cpp2
-rw-r--r--servers/audio/audio_stream.cpp18
-rw-r--r--servers/visual/visual_server_scene.cpp3
-rw-r--r--servers/visual/visual_server_viewport.cpp2
-rw-r--r--thirdparty/README.md6
-rw-r--r--thirdparty/opus/http.c3465
-rw-r--r--thirdparty/opus/wincerts.c171
-rw-r--r--thirdparty/opus/winerrno.h90
113 files changed, 21379 insertions, 6478 deletions
diff --git a/core/error_macros.h b/core/error_macros.h
index 3aa8ed4596..ca5ccd24cf 100644
--- a/core/error_macros.h
+++ b/core/error_macros.h
@@ -310,6 +310,16 @@ extern bool _err_error_exists;
_err_error_exists = false; \
}
+#define ERR_PRINT_ONCE(m_string) \
+ { \
+ static bool first_print = true; \
+ if (first_print) { \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_string); \
+ _err_error_exists = false; \
+ first_print = false; \
+ } \
+ }
+
/** Print a warning string.
*/
@@ -325,6 +335,16 @@ extern bool _err_error_exists;
_err_error_exists = false; \
}
+#define WARN_PRINT_ONCE(m_string) \
+ { \
+ static bool first_print = true; \
+ if (first_print) { \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_string, ERR_HANDLER_WARNING); \
+ _err_error_exists = false; \
+ first_print = false; \
+ } \
+ }
+
#define WARN_DEPRECATED \
{ \
static volatile bool warning_shown = false; \
diff --git a/core/io/resource_importer.cpp b/core/io/resource_importer.cpp
index 427ce2c2cd..69907a710a 100644
--- a/core/io/resource_importer.cpp
+++ b/core/io/resource_importer.cpp
@@ -406,9 +406,14 @@ bool ResourceFormatImporter::are_import_settings_valid(const String &p_path) con
}
String ResourceFormatImporter::get_import_settings_hash() const {
+
+ Vector<Ref<ResourceImporter> > sorted_importers = importers;
+
+ sorted_importers.sort_custom<SortImporterByName>();
+
String hash;
- for (int i = 0; i < importers.size(); i++) {
- hash += ":" + importers[i]->get_importer_name() + ":" + importers[i]->get_import_settings_string();
+ for (int i = 0; i < sorted_importers.size(); i++) {
+ hash += ":" + sorted_importers[i]->get_importer_name() + ":" + sorted_importers[i]->get_import_settings_string();
}
return hash.md5_text();
}
diff --git a/core/io/resource_importer.h b/core/io/resource_importer.h
index db1befb51e..1d27d4dec3 100644
--- a/core/io/resource_importer.h
+++ b/core/io/resource_importer.h
@@ -77,7 +77,6 @@ public:
void add_importer(const Ref<ResourceImporter> &p_importer) {
importers.push_back(p_importer);
- importers.sort_custom<SortImporterByName>();
}
void remove_importer(const Ref<ResourceImporter> &p_importer) { importers.erase(p_importer); }
Ref<ResourceImporter> get_importer_by_name(const String &p_name) const;
diff --git a/doc/classes/AnimationPlayer.xml b/doc/classes/AnimationPlayer.xml
index 9d68102952..21aba282ee 100644
--- a/doc/classes/AnimationPlayer.xml
+++ b/doc/classes/AnimationPlayer.xml
@@ -30,7 +30,7 @@
<argument index="0" name="delta" type="float">
</argument>
<description>
- Shifts position in the animation timeline. Delta is the time in seconds to shift.
+ Shifts position in the animation timeline. Delta is the time in seconds to shift. Events between the current frame and [code]delta[/code] are handled.
</description>
</method>
<method name="animation_get_next" qualifiers="const">
@@ -197,7 +197,7 @@
<argument index="1" name="update" type="bool" default="false">
</argument>
<description>
- Seek the animation to the [code]seconds[/code] point in time (in seconds). If [code]update[/code] is [code]true[/code], the animation updates too, otherwise it updates at process time.
+ Seek the animation to the [code]seconds[/code] point in time (in seconds). If [code]update[/code] is [code]true[/code], the animation updates too, otherwise it updates at process time. Events between the current frame and [code]seconds[/code] are skipped.
</description>
</method>
<method name="set_blend_time">
diff --git a/doc/classes/AnimationTreePlayer.xml b/doc/classes/AnimationTreePlayer.xml
index b0b58fc7bd..cfec75bc3a 100644
--- a/doc/classes/AnimationTreePlayer.xml
+++ b/doc/classes/AnimationTreePlayer.xml
@@ -29,7 +29,7 @@
<argument index="0" name="delta" type="float">
</argument>
<description>
- Shifts position in the animation timeline. Delta is the time in seconds to shift.
+ Shifts position in the animation timeline. Delta is the time in seconds to shift. Events between the current frame and [code]delta[/code] are handled.
</description>
</method>
<method name="animation_node_get_animation" qualifiers="const">
diff --git a/doc/classes/ScrollContainer.xml b/doc/classes/ScrollContainer.xml
index 0b427fc089..c8c7fa1d01 100644
--- a/doc/classes/ScrollContainer.xml
+++ b/doc/classes/ScrollContainer.xml
@@ -4,7 +4,7 @@
A helper node for displaying scrollable elements (e.g. lists).
</brief_description>
<description>
- A ScrollContainer node with a [Control] child and scrollbar child ([HScrollBar], [VScrollBar], or both) will only draw the Control within the ScrollContainer area. Scrollbars will automatically be drawn at the right (for vertical) or bottom (for horizontal) and will enable dragging to move the viewable Control (and its children) within the ScrollContainer. Scrollbars will also automatically resize the grabber based on the minimum_size of the Control relative to the ScrollContainer. Works great with a [Panel] control. You can set EXPAND on children size flags, so they will upscale to ScrollContainer size if ScrollContainer size is bigger (scroll is invisible for chosen dimension).
+ A ScrollContainer node meant to contain a [Control] child. ScrollContainers will automatically create a scrollbar child ([HScrollBar], [VScrollBar], or both) when needed and will only draw the Control within the ScrollContainer area. Scrollbars will automatically be drawn at the right (for vertical) or bottom (for horizontal) and will enable dragging to move the viewable Control (and its children) within the ScrollContainer. Scrollbars will also automatically resize the grabber based on the minimum_size of the Control relative to the ScrollContainer. Works great with a [Panel] control. You can set EXPAND on children size flags, so they will upscale to ScrollContainer size if ScrollContainer size is bigger (scroll is invisible for chosen dimension).
</description>
<tutorials>
</tutorials>
diff --git a/drivers/gles2/rasterizer_scene_gles2.cpp b/drivers/gles2/rasterizer_scene_gles2.cpp
index 0fd36cfb9c..e6f46776c0 100644
--- a/drivers/gles2/rasterizer_scene_gles2.cpp
+++ b/drivers/gles2/rasterizer_scene_gles2.cpp
@@ -83,7 +83,11 @@ void RasterizerSceneGLES2::shadow_atlas_set_size(RID p_atlas, int p_size) {
// erase the old atlast
if (shadow_atlas->fbo) {
- glDeleteTextures(1, &shadow_atlas->depth);
+ if (storage->config.use_rgba_3d_shadows) {
+ glDeleteRenderbuffers(1, &shadow_atlas->depth);
+ } else {
+ glDeleteTextures(1, &shadow_atlas->depth);
+ }
glDeleteFramebuffers(1, &shadow_atlas->fbo);
if (shadow_atlas->color) {
glDeleteTextures(1, &shadow_atlas->color);
@@ -111,18 +115,15 @@ void RasterizerSceneGLES2::shadow_atlas_set_size(RID p_atlas, int p_size) {
// create a depth texture
glActiveTexture(GL_TEXTURE0);
- glGenTextures(1, &shadow_atlas->depth);
- glBindTexture(GL_TEXTURE_2D, shadow_atlas->depth);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, shadow_atlas->size, shadow_atlas->size, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ if (storage->config.use_rgba_3d_shadows) {
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, shadow_atlas->depth, 0);
+ //maximum compatibility, renderbuffer and RGBA shadow
+ glGenRenderbuffers(1, &shadow_atlas->depth);
+ glBindRenderbuffer(GL_RENDERBUFFER, directional_shadow.depth);
+ glRenderbufferStorage(GL_RENDERBUFFER, storage->config.depth_internalformat, shadow_atlas->size, shadow_atlas->size);
+ glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, shadow_atlas->depth);
- if (storage->config.use_rgba_3d_shadows) {
glGenTextures(1, &shadow_atlas->color);
glBindTexture(GL_TEXTURE_2D, shadow_atlas->color);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, shadow_atlas->size, shadow_atlas->size, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
@@ -131,6 +132,18 @@ void RasterizerSceneGLES2::shadow_atlas_set_size(RID p_atlas, int p_size) {
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, shadow_atlas->color, 0);
+ } else {
+ //just depth texture
+ glGenTextures(1, &shadow_atlas->depth);
+ glBindTexture(GL_TEXTURE_2D, shadow_atlas->depth);
+ glTexImage2D(GL_TEXTURE_2D, 0, storage->config.depth_internalformat, shadow_atlas->size, shadow_atlas->size, 0, GL_DEPTH_COMPONENT, storage->config.depth_type, NULL);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, shadow_atlas->depth, 0);
}
glViewport(0, 0, shadow_atlas->size, shadow_atlas->size);
@@ -475,7 +488,8 @@ RID RasterizerSceneGLES2::reflection_probe_instance_create(RID p_probe) {
glGenTextures(1, &rpi->color[i]);
}
- glGenTextures(1, &rpi->depth);
+ glGenRenderbuffers(1, &rpi->depth);
+
rpi->cubemap = 0;
//glGenTextures(1, &rpi->cubemap);
@@ -524,8 +538,8 @@ bool RasterizerSceneGLES2::reflection_probe_instance_begin_render(RID p_instance
glActiveTexture(GL_TEXTURE0);
- glBindTexture(GL_TEXTURE_2D, rpi->depth);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, size, size, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL);
+ glBindRenderbuffer(GL_RENDERBUFFER, rpi->depth);
+ glRenderbufferStorage(GL_RENDERBUFFER, storage->config.depth_internalformat, size, size);
if (rpi->cubemap != 0) {
glDeleteTextures(1, &rpi->cubemap);
@@ -547,7 +561,7 @@ bool RasterizerSceneGLES2::reflection_probe_instance_begin_render(RID p_instance
glBindTexture(GL_TEXTURE_2D, rpi->color[i]);
glTexImage2D(GL_TEXTURE_2D, 0, internal_format, size, size, 0, format, type, NULL);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, rpi->color[i], 0);
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, rpi->depth, 0);
+ glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, rpi->depth);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
ERR_CONTINUE(status != GL_FRAMEBUFFER_COMPLETE);
}
@@ -566,8 +580,6 @@ bool RasterizerSceneGLES2::reflection_probe_instance_begin_render(RID p_instance
//adjust framebuffer
glBindFramebuffer(GL_FRAMEBUFFER, rpi->fbo[i]);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, _cube_side_enum[i], rpi->cubemap, 0);
- glBindRenderbuffer(GL_RENDERBUFFER, rpi->depth);
- glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, size, size); // Note: used to be _DEPTH_COMPONENT24_OES. GL_DEPTH_COMPONENT untested.
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, rpi->depth);
#ifdef DEBUG_ENABLED
@@ -1265,9 +1277,9 @@ bool RasterizerSceneGLES2::_setup_material(RasterizerStorageGLES2::Material *p_m
}
int tc = p_material->textures.size();
- Pair<StringName, RID> *textures = p_material->textures.ptrw();
+ const Pair<StringName, RID> *textures = p_material->textures.ptr();
- ShaderLanguage::ShaderNode::Uniform::Hint *texture_hints = p_material->shader->texture_hints.ptrw();
+ const ShaderLanguage::ShaderNode::Uniform::Hint *texture_hints = p_material->shader->texture_hints.ptr();
state.scene_shader.set_uniform(SceneShaderGLES2::SKELETON_TEXTURE_SIZE, p_skeleton_tex_size);
@@ -2977,7 +2989,7 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_
if (light->type == VS::LIGHT_OMNI) {
// cubemap only
- if (light->omni_shadow_mode == VS::LIGHT_OMNI_SHADOW_CUBE && storage->config.support_write_depth) {
+ if (light->omni_shadow_mode == VS::LIGHT_OMNI_SHADOW_CUBE && storage->config.support_shadow_cubemaps) {
int cubemap_index = shadow_cubemaps.size() - 1;
// find an appropriate cubemap to render to
@@ -3075,7 +3087,7 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_
state.scene_shader.set_conditional(SceneShaderGLES2::RENDER_DEPTH_DUAL_PARABOLOID, false);
// convert cubemap to dual paraboloid if needed
- if (light->type == VS::LIGHT_OMNI && (light->omni_shadow_mode == VS::LIGHT_OMNI_SHADOW_CUBE && storage->config.support_write_depth) && p_pass == 5) {
+ if (light->type == VS::LIGHT_OMNI && (light->omni_shadow_mode == VS::LIGHT_OMNI_SHADOW_CUBE && storage->config.support_shadow_cubemaps) && p_pass == 5) {
ShadowAtlas *shadow_atlas = shadow_atlas_owner.getornull(p_shadow_atlas);
glBindFramebuffer(GL_FRAMEBUFFER, shadow_atlas->fbo);
@@ -3172,7 +3184,7 @@ bool RasterizerSceneGLES2::free(RID p_rid) {
if (reflection_instance->cubemap != 0) {
glDeleteTextures(1, &reflection_instance->cubemap);
}
- glDeleteTextures(1, &reflection_instance->depth);
+ glDeleteRenderbuffers(1, &reflection_instance->depth);
reflection_probe_release_atlas_index(p_rid);
reflection_probe_instance_owner.free(p_rid);
@@ -3253,7 +3265,7 @@ void RasterizerSceneGLES2::initialize() {
}
// cubemaps for shadows
- if (storage->config.support_write_depth) { //not going to be used
+ if (storage->config.support_shadow_cubemaps) { //not going to be used
int max_shadow_cubemap_sampler_size = 512;
int cube_size = max_shadow_cubemap_sampler_size;
@@ -3271,7 +3283,7 @@ void RasterizerSceneGLES2::initialize() {
for (int i = 0; i < 6; i++) {
- glTexImage2D(_cube_side_enum[i], 0, GL_DEPTH_COMPONENT, cube_size, cube_size, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL);
+ glTexImage2D(_cube_side_enum[i], 0, storage->config.depth_internalformat, cube_size, cube_size, 0, GL_DEPTH_COMPONENT, storage->config.depth_type, NULL);
}
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
@@ -3302,19 +3314,13 @@ void RasterizerSceneGLES2::initialize() {
glGenFramebuffers(1, &directional_shadow.fbo);
glBindFramebuffer(GL_FRAMEBUFFER, directional_shadow.fbo);
- glGenTextures(1, &directional_shadow.depth);
- glBindTexture(GL_TEXTURE_2D, directional_shadow.depth);
-
- glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, directional_shadow.size, directional_shadow.size, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL);
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, directional_shadow.depth, 0);
-
if (storage->config.use_rgba_3d_shadows) {
+ //maximum compatibility, renderbuffer and RGBA shadow
+ glGenRenderbuffers(1, &directional_shadow.depth);
+ glBindRenderbuffer(GL_RENDERBUFFER, directional_shadow.depth);
+ glRenderbufferStorage(GL_RENDERBUFFER, storage->config.depth_internalformat, directional_shadow.size, directional_shadow.size);
+ glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, directional_shadow.depth);
+
glGenTextures(1, &directional_shadow.color);
glBindTexture(GL_TEXTURE_2D, directional_shadow.color);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, directional_shadow.size, directional_shadow.size, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
@@ -3323,6 +3329,19 @@ void RasterizerSceneGLES2::initialize() {
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, directional_shadow.color, 0);
+ } else {
+ //just a depth buffer
+ glGenTextures(1, &directional_shadow.depth);
+ glBindTexture(GL_TEXTURE_2D, directional_shadow.depth);
+
+ glTexImage2D(GL_TEXTURE_2D, 0, storage->config.depth_internalformat, directional_shadow.size, directional_shadow.size, 0, GL_DEPTH_COMPONENT, storage->config.depth_type, NULL);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, directional_shadow.depth, 0);
}
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
diff --git a/drivers/gles2/rasterizer_scene_gles2.h b/drivers/gles2/rasterizer_scene_gles2.h
index fbb8b7e9e5..f23e45b52f 100644
--- a/drivers/gles2/rasterizer_scene_gles2.h
+++ b/drivers/gles2/rasterizer_scene_gles2.h
@@ -475,7 +475,7 @@ public:
virtual void light_instance_set_transform(RID p_light_instance, const Transform &p_transform);
virtual void light_instance_set_shadow_transform(RID p_light_instance, const CameraMatrix &p_projection, const Transform &p_transform, float p_far, float p_split, int p_pass, float p_bias_scale = 1.0);
virtual void light_instance_mark_visible(RID p_light_instance);
- virtual bool light_instances_can_render_shadow_cube() const { return storage->config.support_write_depth; }
+ virtual bool light_instances_can_render_shadow_cube() const { return storage->config.support_shadow_cubemaps; }
LightInstance **render_light_instances;
int render_directional_lights;
diff --git a/drivers/gles2/rasterizer_storage_gles2.cpp b/drivers/gles2/rasterizer_storage_gles2.cpp
index 9d2e609e5e..c106712526 100644
--- a/drivers/gles2/rasterizer_storage_gles2.cpp
+++ b/drivers/gles2/rasterizer_storage_gles2.cpp
@@ -56,6 +56,8 @@ GLuint RasterizerStorageGLES2::system_fbo = 0;
#define _RED_OES 0x1903
+#define _DEPTH_COMPONENT24_OES 0x81A6
+
void RasterizerStorageGLES2::bind_quad_array() const {
glBindBuffer(GL_ARRAY_BUFFER, resources.quadie);
glVertexAttribPointer(VS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 4, 0);
@@ -1306,7 +1308,11 @@ void RasterizerStorageGLES2::_update_shader(Shader *p_shader) const {
actions->uniforms = &p_shader->uniforms;
if (p_shader->spatial.uses_screen_texture && p_shader->spatial.uses_depth_texture) {
- WARN_PRINT("Using both SCREEN_TEXTURE and DEPTH_TEXTURE is not supported in GLES2");
+ ERR_PRINT_ONCE("Using both SCREEN_TEXTURE and DEPTH_TEXTURE is not supported in GLES2");
+ }
+
+ if (p_shader->spatial.uses_depth_texture && !config.support_depth_texture) {
+ ERR_PRINT_ONCE("Using DEPTH_TEXTURE is not permitted on this hardware, operation will fail.");
}
} break;
@@ -2252,9 +2258,14 @@ void RasterizerStorageGLES2::mesh_add_surface(RID p_mesh, uint32_t p_format, VS:
surface->aabb = p_aabb;
surface->max_bone = p_bone_aabbs.size();
-
+#ifdef TOOLS_ENABLED
+ surface->blend_shape_data = p_blend_shapes;
+ if (surface->blend_shape_data.size()) {
+ ERR_PRINT_ONCE("Blend shapes are not supported in OpenGL ES 2.0");
+ }
surface->data = array;
surface->index_data = p_index_array;
+#endif
surface->total_data_size += surface->array_byte_size + surface->index_array_byte_size;
@@ -2324,12 +2335,12 @@ void RasterizerStorageGLES2::mesh_set_blend_shape_count(RID p_mesh, int p_amount
ERR_FAIL_COND(p_amount < 0);
mesh->blend_shape_count = p_amount;
+ mesh->instance_change_notify(true, false);
}
int RasterizerStorageGLES2::mesh_get_blend_shape_count(RID p_mesh) const {
const Mesh *mesh = mesh_owner.getornull(p_mesh);
ERR_FAIL_COND_V(!mesh, 0);
-
return mesh->blend_shape_count;
}
@@ -2415,7 +2426,9 @@ PoolVector<uint8_t> RasterizerStorageGLES2::mesh_surface_get_array(RID p_mesh, i
ERR_FAIL_INDEX_V(p_surface, mesh->surfaces.size(), PoolVector<uint8_t>());
Surface *surface = mesh->surfaces[p_surface];
-
+#ifndef TOOLS_ENABLED
+ ERR_PRINT("OpenGL ES 2.0 does not allow retrieving mesh array data");
+#endif
return surface->data;
}
@@ -2455,7 +2468,14 @@ AABB RasterizerStorageGLES2::mesh_surface_get_aabb(RID p_mesh, int p_surface) co
}
Vector<PoolVector<uint8_t> > RasterizerStorageGLES2::mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const {
- return Vector<PoolVector<uint8_t> >();
+ const Mesh *mesh = mesh_owner.getornull(p_mesh);
+ ERR_FAIL_COND_V(!mesh, Vector<PoolVector<uint8_t> >());
+ ERR_FAIL_INDEX_V(p_surface, mesh->surfaces.size(), Vector<PoolVector<uint8_t> >());
+#ifndef TOOLS_ENABLED
+ ERR_PRINT("OpenGL ES 2.0 does not allow retrieving mesh array data");
+#endif
+
+ return mesh->surfaces[p_surface]->blend_shape_data;
}
Vector<AABB> RasterizerStorageGLES2::mesh_surface_get_skeleton_aabb(RID p_mesh, int p_surface) const {
const Mesh *mesh = mesh_owner.getornull(p_mesh);
@@ -4304,24 +4324,36 @@ void RasterizerStorageGLES2::_render_target_allocate(RenderTarget *rt) {
// depth
- glGenTextures(1, &rt->depth);
- glBindTexture(GL_TEXTURE_2D, rt->depth);
+ if (config.support_depth_texture) {
+ glGenTextures(1, &rt->depth);
+ glBindTexture(GL_TEXTURE_2D, rt->depth);
+ glTexImage2D(GL_TEXTURE_2D, 0, config.depth_internalformat, rt->width, rt->height, 0, GL_DEPTH_COMPONENT, config.depth_type, NULL);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, rt->width, rt->height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL);
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, rt->depth, 0);
+ } else {
+ glGenRenderbuffers(1, &rt->depth);
+ glBindRenderbuffer(GL_RENDERBUFFER, rt->depth);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glRenderbufferStorage(GL_RENDERBUFFER, config.depth_internalformat, rt->width, rt->height);
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, rt->depth, 0);
+ glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, rt->depth);
+ }
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if (status != GL_FRAMEBUFFER_COMPLETE) {
glDeleteFramebuffers(1, &rt->fbo);
- glDeleteTextures(1, &rt->depth);
+ if (config.support_depth_texture) {
+ glDeleteTextures(1, &rt->depth);
+ } else {
+ glDeleteRenderbuffers(1, &rt->depth);
+ }
glDeleteTextures(1, &rt->color);
rt->fbo = 0;
rt->width = 0;
@@ -4393,7 +4425,12 @@ void RasterizerStorageGLES2::_render_target_clear(RenderTarget *rt) {
}
if (rt->depth) {
- glDeleteTextures(1, &rt->depth);
+ if (config.support_depth_texture) {
+ glDeleteTextures(1, &rt->depth);
+ } else {
+ glDeleteRenderbuffers(1, &rt->depth);
+ }
+
rt->depth = 0;
}
@@ -4531,17 +4568,10 @@ RID RasterizerStorageGLES2::canvas_light_shadow_buffer_create(int p_width) {
glGenFramebuffers(1, &cls->fbo);
glBindFramebuffer(GL_FRAMEBUFFER, cls->fbo);
- glGenTextures(1, &cls->depth);
- glBindTexture(GL_TEXTURE_2D, cls->depth);
-
- glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, cls->size, cls->height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL);
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, cls->depth, 0);
+ glGenRenderbuffers(1, &cls->depth);
+ glBindRenderbuffer(GL_RENDERBUFFER, cls->depth);
+ glRenderbufferStorage(GL_RENDERBUFFER, config.depth_internalformat, cls->size, cls->height);
+ glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, cls->depth);
glGenTextures(1, &cls->distance);
glBindTexture(GL_TEXTURE_2D, cls->distance);
@@ -4906,7 +4936,7 @@ bool RasterizerStorageGLES2::free(RID p_rid) {
CanvasLightShadow *cls = canvas_light_shadow_owner.get(p_rid);
glDeleteFramebuffers(1, &cls->fbo);
- glDeleteTextures(1, &cls->depth);
+ glDeleteRenderbuffers(1, &cls->depth);
glDeleteTextures(1, &cls->distance);
canvas_light_shadow_owner.free(p_rid);
memdelete(cls);
@@ -4974,6 +5004,9 @@ void RasterizerStorageGLES2::initialize() {
config.pvrtc_supported = false;
config.etc1_supported = false;
config.support_npot_repeat_mipmap = true;
+ config.depth_internalformat = GL_DEPTH_COMPONENT;
+ config.depth_type = GL_UNSIGNED_INT;
+
#else
config.float_texture_supported = config.extensions.has("GL_ARB_texture_float") || config.extensions.has("GL_OES_texture_float");
config.s3tc_supported = config.extensions.has("GL_EXT_texture_compression_s3tc") || config.extensions.has("WEBGL_compressed_texture_s3tc");
@@ -4984,10 +5017,14 @@ void RasterizerStorageGLES2::initialize() {
#endif
#ifdef GLES_OVER_GL
config.use_rgba_2d_shadows = false;
+ config.support_depth_texture = true;
config.use_rgba_3d_shadows = false;
+ config.support_depth_cubemaps = true;
#else
config.use_rgba_2d_shadows = !(config.float_texture_supported && config.extensions.has("GL_EXT_texture_rg"));
- config.use_rgba_3d_shadows = config.extensions.has("GL_OES_depth_texture");
+ config.support_depth_texture = config.extensions.has("GL_OES_depth_texture");
+ config.use_rgba_3d_shadows = !config.support_depth_texture;
+ config.support_depth_cubemaps = config.extensions.has("GL_OES_depth_texture_cube_map");
#endif
#ifdef GLES_OVER_GL
@@ -5011,6 +5048,55 @@ void RasterizerStorageGLES2::initialize() {
config.support_half_float_vertices = true;
#endif
+ //determine formats for depth textures (or renderbuffers)
+ if (config.support_depth_texture) {
+ // Will use texture for depth
+ // have to manually see if we can create a valid framebuffer texture using UNSIGNED_INT,
+ // as there is no extension to test for this.
+ GLuint fbo;
+ glGenFramebuffers(1, &fbo);
+ glBindFramebuffer(GL_FRAMEBUFFER, fbo);
+ GLuint depth;
+ glGenTextures(1, &depth);
+ glBindTexture(GL_TEXTURE_2D, depth);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 32, 32, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, depth, 0);
+
+ GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
+
+ if (status == GL_FRAMEBUFFER_COMPLETE) {
+ config.depth_internalformat = GL_DEPTH_COMPONENT;
+ config.depth_type = GL_UNSIGNED_INT;
+ } else {
+ config.depth_internalformat = GL_DEPTH_COMPONENT16;
+ config.depth_type = GL_UNSIGNED_SHORT;
+ }
+
+ glBindFramebuffer(GL_FRAMEBUFFER, system_fbo);
+ glDeleteFramebuffers(1, &fbo);
+ glBindTexture(GL_TEXTURE_2D, 0);
+ glDeleteTextures(1, &depth);
+
+ } else {
+ // Will use renderbuffer for depth
+ if (config.extensions.has("GL_OES_depth24")) {
+ config.depth_internalformat = _DEPTH_COMPONENT24_OES;
+ config.depth_type = GL_UNSIGNED_INT;
+ } else {
+ config.depth_internalformat = GL_DEPTH_COMPONENT16;
+ config.depth_type = GL_UNSIGNED_SHORT;
+ }
+ }
+
+ //picky requirements for these
+ config.support_shadow_cubemaps = config.support_depth_texture && config.support_write_depth && config.support_depth_cubemaps;
+
frame.count = 0;
frame.delta = 0;
frame.current_rt = NULL;
diff --git a/drivers/gles2/rasterizer_storage_gles2.h b/drivers/gles2/rasterizer_storage_gles2.h
index f6c8faa497..cad3af200e 100644
--- a/drivers/gles2/rasterizer_storage_gles2.h
+++ b/drivers/gles2/rasterizer_storage_gles2.h
@@ -85,6 +85,13 @@ public:
bool support_write_depth;
bool support_half_float_vertices;
bool support_npot_repeat_mipmap;
+ bool support_depth_texture;
+ bool support_depth_cubemaps;
+
+ bool support_shadow_cubemaps;
+
+ GLuint depth_internalformat;
+ GLuint depth_type;
} config;
struct Resources {
@@ -628,6 +635,7 @@ public:
PoolVector<uint8_t> data;
PoolVector<uint8_t> index_data;
+ Vector<PoolVector<uint8_t> > blend_shape_data;
int total_data_size;
diff --git a/drivers/gles2/shader_gles2.cpp b/drivers/gles2/shader_gles2.cpp
index 012d1538b6..6856035470 100644
--- a/drivers/gles2/shader_gles2.cpp
+++ b/drivers/gles2/shader_gles2.cpp
@@ -69,51 +69,6 @@ ShaderGLES2 *ShaderGLES2::active = NULL;
#endif
-void ShaderGLES2::bind_uniforms() {
- if (!uniforms_dirty)
- return;
-
- // regular uniforms
-
- const Map<uint32_t, Variant>::Element *E = uniform_defaults.front();
-
- while (E) {
- int idx = E->key();
- int location = version->uniform_location[idx];
-
- if (location < 0) {
- E = E->next();
- continue;
- }
-
- Variant v;
-
- v = E->value();
-
- _set_uniform_variant(location, v);
- E = E->next();
- }
-
- // camera uniforms
-
- const Map<uint32_t, CameraMatrix>::Element *C = uniform_cameras.front();
-
- while (C) {
- int idx = C->key();
- int location = version->uniform_location[idx];
-
- if (location < 0) {
- C = C->next();
- continue;
- }
-
- glUniformMatrix4fv(location, 1, GL_FALSE, &(C->get().matrix[0][0]));
- C = C->next();
- }
-
- uniforms_dirty = false;
-}
-
GLint ShaderGLES2::get_uniform_location(int p_index) const {
ERR_FAIL_COND_V(!version, -1);
@@ -139,28 +94,6 @@ bool ShaderGLES2::bind() {
glUseProgram(version->id);
- // find out uniform names and locations
-
- int count;
- glGetProgramiv(version->id, GL_ACTIVE_UNIFORMS, &count);
- version->uniform_names.resize(count);
-
- for (int i = 0; i < count; i++) {
- GLchar uniform_name[1024];
- int len = 0;
- GLint size = 0;
- GLenum type;
-
- glGetActiveUniform(version->id, i, 1024, &len, &size, &type, uniform_name);
-
- uniform_name[len] = '\0';
- String name = String((const char *)uniform_name);
-
- version->uniform_names.write[i] = name;
- }
-
- bind_uniforms();
-
DEBUG_TEST_ERROR("use program");
active = this;
@@ -513,6 +446,7 @@ ShaderGLES2::Version *ShaderGLES2::get_current_version() {
String native_uniform_name = _mkid(cc->texture_uniforms[i]);
GLint location = glGetUniformLocation(v.id, (native_uniform_name).ascii().get_data());
v.custom_uniform_locations[cc->texture_uniforms[i]] = location;
+ glUniform1i(location, i);
}
}
@@ -732,342 +666,317 @@ void ShaderGLES2::use_material(void *p_material) {
if (E->get().texture_order >= 0)
continue; // this is a texture, doesn't go here
- Map<StringName, Variant>::Element *V = material->params.find(E->key());
+ Map<StringName, GLint>::Element *L = v->custom_uniform_locations.find(E->key());
+ if (!L || L->get() < 0)
+ continue; //uniform not valid
- Pair<ShaderLanguage::DataType, Vector<ShaderLanguage::ConstantNode::Value> > value;
+ GLuint location = L->get();
- value.first = E->get().type;
- value.second = E->get().default_value;
+ Map<StringName, Variant>::Element *V = material->params.find(E->key());
if (V) {
- value.second = Vector<ShaderLanguage::ConstantNode::Value>();
- value.second.resize(E->get().default_value.size());
switch (E->get().type) {
case ShaderLanguage::TYPE_BOOL: {
- if (value.second.size() < 1)
- value.second.resize(1);
- value.second.write[0].boolean = V->get();
+
+ bool boolean = V->get();
+ glUniform1i(location, boolean ? 1 : 0);
} break;
case ShaderLanguage::TYPE_BVEC2: {
- if (value.second.size() < 2)
- value.second.resize(2);
int flags = V->get();
- value.second.write[0].boolean = flags & 1;
- value.second.write[1].boolean = flags & 2;
+ glUniform2i(location, (flags & 1) ? 1 : 0, (flags & 2) ? 1 : 0);
} break;
case ShaderLanguage::TYPE_BVEC3: {
- if (value.second.size() < 3)
- value.second.resize(3);
+
int flags = V->get();
- value.second.write[0].boolean = flags & 1;
- value.second.write[1].boolean = flags & 2;
- value.second.write[2].boolean = flags & 4;
+ glUniform3i(location, (flags & 1) ? 1 : 0, (flags & 2) ? 1 : 0, (flags & 4) ? 1 : 0);
} break;
case ShaderLanguage::TYPE_BVEC4: {
- if (value.second.size() < 4)
- value.second.resize(4);
int flags = V->get();
- value.second.write[0].boolean = flags & 1;
- value.second.write[1].boolean = flags & 2;
- value.second.write[2].boolean = flags & 4;
- value.second.write[3].boolean = flags & 8;
+ glUniform4i(location, (flags & 1) ? 1 : 0, (flags & 2) ? 1 : 0, (flags & 4) ? 1 : 0, (flags & 8) ? 1 : 0);
} break;
- case ShaderLanguage::TYPE_INT: {
- if (value.second.size() < 1)
- value.second.resize(1);
- int val = V->get();
- value.second.write[0].sint = val;
+ case ShaderLanguage::TYPE_INT:
+ case ShaderLanguage::TYPE_UINT: {
+ int value = V->get();
+ glUniform1i(location, value);
} break;
- case ShaderLanguage::TYPE_IVEC2: {
- if (value.second.size() < 2)
- value.second.resize(2);
- PoolIntArray val = V->get();
- for (int i = 0; i < val.size(); i++) {
- value.second.write[i].sint = val[i];
+ case ShaderLanguage::TYPE_IVEC2:
+ case ShaderLanguage::TYPE_UVEC2: {
+
+ Array r = V->get();
+ const int count = 2;
+ if (r.size() == count) {
+ int values[count];
+ for (int i = 0; i < count; i++) {
+ values[i] = r[i];
+ }
+ glUniform2i(location, values[0], values[1]);
}
+
} break;
- case ShaderLanguage::TYPE_IVEC3: {
- if (value.second.size() < 3)
- value.second.resize(3);
- PoolIntArray val = V->get();
- for (int i = 0; i < val.size(); i++) {
- value.second.write[i].sint = val[i];
+ case ShaderLanguage::TYPE_IVEC3:
+ case ShaderLanguage::TYPE_UVEC3: {
+ Array r = V->get();
+ const int count = 3;
+ if (r.size() == count) {
+ int values[count];
+ for (int i = 0; i < count; i++) {
+ values[i] = r[i];
+ }
+ glUniform3i(location, values[0], values[1], values[2]);
}
} break;
- case ShaderLanguage::TYPE_IVEC4: {
- if (value.second.size() < 4)
- value.second.resize(4);
- PoolIntArray val = V->get();
- for (int i = 0; i < val.size(); i++) {
- value.second.write[i].sint = val[i];
+ case ShaderLanguage::TYPE_IVEC4:
+ case ShaderLanguage::TYPE_UVEC4: {
+ Array r = V->get();
+ const int count = 4;
+ if (r.size() == count) {
+ int values[count];
+ for (int i = 0; i < count; i++) {
+ values[i] = r[i];
+ }
+ glUniform4i(location, values[0], values[1], values[2], values[3]);
}
} break;
- case ShaderLanguage::TYPE_UINT: {
- if (value.second.size() < 1)
- value.second.resize(1);
- uint32_t val = V->get();
- value.second.write[0].uint = val;
+ case ShaderLanguage::TYPE_FLOAT: {
+ float value = V->get();
+ glUniform1f(location, value);
+
} break;
- case ShaderLanguage::TYPE_UVEC2: {
- if (value.second.size() < 2)
- value.second.resize(2);
- PoolIntArray val = V->get();
- for (int i = 0; i < val.size(); i++) {
- value.second.write[i].uint = val[i];
- }
+ case ShaderLanguage::TYPE_VEC2: {
+ Vector2 value = V->get();
+ glUniform2f(location, value.x, value.y);
+ } break;
+ case ShaderLanguage::TYPE_VEC3: {
+ Vector3 value = V->get();
+ glUniform3f(location, value.x, value.y, value.z);
} break;
- case ShaderLanguage::TYPE_UVEC3: {
- if (value.second.size() < 3)
- value.second.resize(3);
- PoolIntArray val = V->get();
- for (int i = 0; i < val.size(); i++) {
- value.second.write[i].uint = val[i];
+ case ShaderLanguage::TYPE_VEC4: {
+ if (V->get().get_type() == Variant::COLOR) {
+ Color value = V->get();
+ glUniform4f(location, value.r, value.g, value.b, value.a);
+ } else if (V->get().get_type() == Variant::QUAT) {
+ Quat value = V->get();
+ glUniform4f(location, value.x, value.y, value.z, value.w);
+ } else {
+ Plane value = V->get();
+ glUniform4f(location, value.normal.x, value.normal.y, value.normal.z, value.d);
}
} break;
- case ShaderLanguage::TYPE_UVEC4: {
- if (value.second.size() < 4)
- value.second.resize(4);
- PoolIntArray val = V->get();
- for (int i = 0; i < val.size(); i++) {
- value.second.write[i].uint = val[i];
- }
+ case ShaderLanguage::TYPE_MAT2: {
+
+ Transform2D tr = V->get();
+ GLfloat matrix[4] = {
+ /* build a 16x16 matrix */
+ tr.elements[0][0],
+ tr.elements[0][1],
+ tr.elements[1][0],
+ tr.elements[1][1],
+ };
+ glUniformMatrix2fv(location, 1, GL_FALSE, matrix);
} break;
- case ShaderLanguage::TYPE_FLOAT: {
- if (value.second.size() < 1)
- value.second.resize(1);
- value.second.write[0].real = V->get();
+ case ShaderLanguage::TYPE_MAT3: {
+ Basis val = V->get();
+
+ GLfloat mat[9] = {
+ val.elements[0][0],
+ val.elements[1][0],
+ val.elements[2][0],
+ val.elements[0][1],
+ val.elements[1][1],
+ val.elements[2][1],
+ val.elements[0][2],
+ val.elements[1][2],
+ val.elements[2][2],
+ };
+
+ glUniformMatrix3fv(location, 1, GL_FALSE, mat);
+
+ } break;
+
+ case ShaderLanguage::TYPE_MAT4: {
+
+ Transform2D tr = V->get();
+ GLfloat matrix[16] = { /* build a 16x16 matrix */
+ tr.elements[0][0],
+ tr.elements[0][1],
+ 0,
+ 0,
+ tr.elements[1][0],
+ tr.elements[1][1],
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ tr.elements[2][0],
+ tr.elements[2][1],
+ 0,
+ 1
+ };
+
+ glUniformMatrix4fv(location, 1, GL_FALSE, matrix);
+
+ } break;
+
+ default: {
+ ERR_PRINT("type missing, bug?");
+ } break;
+ }
+ } else if (E->get().default_value.size()) {
+ const Vector<ShaderLanguage::ConstantNode::Value> &values = E->get().default_value;
+ switch (E->get().type) {
+ case ShaderLanguage::TYPE_BOOL: {
+ glUniform1i(location, values[0].boolean);
+ } break;
+
+ case ShaderLanguage::TYPE_BVEC2: {
+ glUniform2i(location, values[0].boolean, values[1].boolean);
+ } break;
+
+ case ShaderLanguage::TYPE_BVEC3: {
+ glUniform3i(location, values[0].boolean, values[1].boolean, values[2].boolean);
+ } break;
+
+ case ShaderLanguage::TYPE_BVEC4: {
+ glUniform4i(location, values[0].boolean, values[1].boolean, values[2].boolean, values[3].boolean);
+ } break;
+
+ case ShaderLanguage::TYPE_INT: {
+ glUniform1i(location, values[0].sint);
+ } break;
+
+ case ShaderLanguage::TYPE_IVEC2: {
+ glUniform2i(location, values[0].sint, values[1].sint);
+ } break;
+
+ case ShaderLanguage::TYPE_IVEC3: {
+ glUniform3i(location, values[0].sint, values[1].sint, values[2].sint);
+ } break;
+
+ case ShaderLanguage::TYPE_IVEC4: {
+ glUniform4i(location, values[0].sint, values[1].sint, values[2].sint, values[3].sint);
+ } break;
+
+ case ShaderLanguage::TYPE_UINT: {
+ glUniform1i(location, values[0].uint);
+ } break;
+
+ case ShaderLanguage::TYPE_UVEC2: {
+ glUniform2i(location, values[0].uint, values[1].uint);
+ } break;
+ case ShaderLanguage::TYPE_UVEC3: {
+ glUniform3i(location, values[0].uint, values[1].uint, values[2].uint);
+ } break;
+
+ case ShaderLanguage::TYPE_UVEC4: {
+ glUniform4i(location, values[0].uint, values[1].uint, values[2].uint, values[3].uint);
+ } break;
+
+ case ShaderLanguage::TYPE_FLOAT: {
+ glUniform1f(location, values[0].real);
} break;
case ShaderLanguage::TYPE_VEC2: {
- if (value.second.size() < 2)
- value.second.resize(2);
- Vector2 val = V->get();
- value.second.write[0].real = val.x;
- value.second.write[1].real = val.y;
+ glUniform2f(location, values[0].real, values[1].real);
} break;
case ShaderLanguage::TYPE_VEC3: {
- if (value.second.size() < 3)
- value.second.resize(3);
- Vector3 val = V->get();
- value.second.write[0].real = val.x;
- value.second.write[1].real = val.y;
- value.second.write[2].real = val.z;
+ glUniform3f(location, values[0].real, values[1].real, values[2].real);
} break;
case ShaderLanguage::TYPE_VEC4: {
- if (value.second.size() < 4)
- value.second.resize(4);
- if (V->get().get_type() == Variant::PLANE) {
- Plane val = V->get();
- value.second.write[0].real = val.normal.x;
- value.second.write[1].real = val.normal.y;
- value.second.write[2].real = val.normal.z;
- value.second.write[3].real = val.d;
- } else {
- Color val = V->get();
- value.second.write[0].real = val.r;
- value.second.write[1].real = val.g;
- value.second.write[2].real = val.b;
- value.second.write[3].real = val.a;
- }
-
+ glUniform4f(location, values[0].real, values[1].real, values[2].real, values[3].real);
} break;
case ShaderLanguage::TYPE_MAT2: {
- Transform2D val = V->get();
+ GLfloat mat[4];
- if (value.second.size() < 4) {
- value.second.resize(4);
+ for (int i = 0; i < 4; i++) {
+ mat[i] = values[i].real;
}
- value.second.write[0].real = val.elements[0][0];
- value.second.write[1].real = val.elements[0][1];
- value.second.write[2].real = val.elements[1][0];
- value.second.write[3].real = val.elements[1][1];
-
+ glUniformMatrix2fv(location, 1, GL_FALSE, mat);
} break;
case ShaderLanguage::TYPE_MAT3: {
- Basis val = V->get();
+ GLfloat mat[9];
- if (value.second.size() < 9) {
- value.second.resize(9);
+ for (int i = 0; i < 9; i++) {
+ mat[i] = values[i].real;
}
- value.second.write[0].real = val.elements[0][0];
- value.second.write[1].real = val.elements[0][1];
- value.second.write[2].real = val.elements[0][2];
- value.second.write[3].real = val.elements[1][0];
- value.second.write[4].real = val.elements[1][1];
- value.second.write[5].real = val.elements[1][2];
- value.second.write[6].real = val.elements[2][0];
- value.second.write[7].real = val.elements[2][1];
- value.second.write[8].real = val.elements[2][2];
+ glUniformMatrix3fv(location, 1, GL_FALSE, mat);
+
} break;
case ShaderLanguage::TYPE_MAT4: {
- Transform val = V->get();
+ GLfloat mat[16];
- if (value.second.size() < 16) {
- value.second.resize(16);
+ for (int i = 0; i < 16; i++) {
+ mat[i] = values[i].real;
}
- value.second.write[0].real = val.basis.elements[0][0];
- value.second.write[1].real = val.basis.elements[0][1];
- value.second.write[2].real = val.basis.elements[0][2];
- value.second.write[3].real = 0;
- value.second.write[4].real = val.basis.elements[1][0];
- value.second.write[5].real = val.basis.elements[1][1];
- value.second.write[6].real = val.basis.elements[1][2];
- value.second.write[7].real = 0;
- value.second.write[8].real = val.basis.elements[2][0];
- value.second.write[9].real = val.basis.elements[2][1];
- value.second.write[10].real = val.basis.elements[2][2];
- value.second.write[11].real = 0;
- value.second.write[12].real = val.origin[0];
- value.second.write[13].real = val.origin[1];
- value.second.write[14].real = val.origin[2];
- value.second.write[15].real = 1;
+ glUniformMatrix4fv(location, 1, GL_FALSE, mat);
+
} break;
- default: {
+ case ShaderLanguage::TYPE_SAMPLER2D: {
} break;
- }
- } else {
- if (value.second.size() == 0) {
- // No default value set... weird, let's just use zero for everything
- size_t default_arg_size = 1;
- bool is_float = false;
- switch (E->get().type) {
- case ShaderLanguage::TYPE_BOOL:
- case ShaderLanguage::TYPE_INT:
- case ShaderLanguage::TYPE_UINT: {
- default_arg_size = 1;
- } break;
-
- case ShaderLanguage::TYPE_FLOAT: {
- default_arg_size = 1;
- is_float = true;
- } break;
-
- case ShaderLanguage::TYPE_BVEC2:
- case ShaderLanguage::TYPE_IVEC2:
- case ShaderLanguage::TYPE_UVEC2: {
- default_arg_size = 2;
- } break;
-
- case ShaderLanguage::TYPE_VEC2: {
- default_arg_size = 2;
- is_float = true;
- } break;
-
- case ShaderLanguage::TYPE_BVEC3:
- case ShaderLanguage::TYPE_IVEC3:
- case ShaderLanguage::TYPE_UVEC3: {
- default_arg_size = 3;
- } break;
-
- case ShaderLanguage::TYPE_VEC3: {
- default_arg_size = 3;
- is_float = true;
- } break;
-
- case ShaderLanguage::TYPE_BVEC4:
- case ShaderLanguage::TYPE_IVEC4:
- case ShaderLanguage::TYPE_UVEC4: {
- default_arg_size = 4;
- } break;
-
- case ShaderLanguage::TYPE_VEC4: {
- default_arg_size = 4;
- is_float = true;
- } break;
-
- default: {
- // TODO matricies and all that stuff
- default_arg_size = 1;
- } break;
- }
-
- value.second.resize(default_arg_size);
-
- for (size_t i = 0; i < default_arg_size; i++) {
- if (is_float) {
- value.second.write[i].real = 0.0;
- } else {
- value.second.write[i].uint = 0;
- }
- }
- }
- }
- GLint location;
- if (v->custom_uniform_locations.has(E->key())) {
- location = v->custom_uniform_locations[E->key()];
- } else {
- int idx = v->uniform_names.find(E->key()); // TODO maybe put those in a Map?
- if (idx < 0) {
- location = -1;
- } else {
- location = v->uniform_location[idx];
- }
- }
+ case ShaderLanguage::TYPE_ISAMPLER2D: {
- _set_uniform_value(location, value);
- }
+ } break;
- // bind textures
- int tc = material->textures.size();
- Pair<StringName, RID> *textures = material->textures.ptrw();
+ case ShaderLanguage::TYPE_USAMPLER2D: {
- for (int i = 0; i < tc; i++) {
+ } break;
- Pair<ShaderLanguage::DataType, Vector<ShaderLanguage::ConstantNode::Value> > value;
- value.first = ShaderLanguage::TYPE_INT;
- value.second.resize(1);
- value.second.write[0].sint = i;
+ case ShaderLanguage::TYPE_SAMPLERCUBE: {
- // GLint location = get_uniform_location(textures[i].first);
+ } break;
- // if (location < 0) {
- // location = material->shader->uniform_locations[textures[i].first];
- // }
- GLint location = -1;
- if (v->custom_uniform_locations.has(textures[i].first)) {
- location = v->custom_uniform_locations[textures[i].first];
- } else {
- location = get_uniform_location(textures[i].first);
- }
+ case ShaderLanguage::TYPE_SAMPLER2DARRAY:
+ case ShaderLanguage::TYPE_ISAMPLER2DARRAY:
+ case ShaderLanguage::TYPE_USAMPLER2DARRAY:
+ case ShaderLanguage::TYPE_SAMPLER3D:
+ case ShaderLanguage::TYPE_ISAMPLER3D:
+ case ShaderLanguage::TYPE_USAMPLER3D: {
+ // Not implemented in GLES2
+ } break;
- _set_uniform_value(location, value);
+ case ShaderLanguage::TYPE_VOID: {
+ // Nothing to do?
+ } break;
+ default: {
+ ERR_PRINT("type missing, bug?");
+ } break;
+ }
+ }
}
}
-void ShaderGLES2::set_base_material_tex_index(int p_idx) {
-}
-
ShaderGLES2::ShaderGLES2() {
version = NULL;
last_custom_code = 1;
diff --git a/drivers/gles2/shader_gles2.h b/drivers/gles2/shader_gles2.h
index d493880d0b..ebea40e10e 100644
--- a/drivers/gles2/shader_gles2.h
+++ b/drivers/gles2/shader_gles2.h
@@ -1,4 +1,4 @@
-/*************************************************************************/
+/*************************************************************************/
/* shader_gles2.h */
/*************************************************************************/
/* This file is part of: */
@@ -112,7 +112,6 @@ private:
GLuint id;
GLuint vert_id;
GLuint frag_id;
- Vector<StringName> uniform_names;
GLint *uniform_location;
Vector<GLint> texture_uniform_locations;
Map<StringName, GLint> custom_uniform_locations;
@@ -177,9 +176,6 @@ private:
int max_image_units;
- Map<uint32_t, Variant> uniform_defaults;
- Map<uint32_t, CameraMatrix> uniform_cameras;
-
Map<StringName, Pair<ShaderLanguage::DataType, Vector<ShaderLanguage::ConstantNode::Value> > > uniform_values;
protected:
@@ -212,246 +208,11 @@ public:
static _FORCE_INLINE_ ShaderGLES2 *get_active() { return active; }
bool bind();
void unbind();
- void bind_uniforms();
inline GLuint get_program() const { return version ? version->id : 0; }
void clear_caches();
- _FORCE_INLINE_ void _set_uniform_value(GLint p_uniform, const Pair<ShaderLanguage::DataType, Vector<ShaderLanguage::ConstantNode::Value> > &value) {
- if (p_uniform < 0)
- return;
-
- const Vector<ShaderLanguage::ConstantNode::Value> &values = value.second;
-
- switch (value.first) {
- case ShaderLanguage::TYPE_BOOL: {
- glUniform1i(p_uniform, values[0].boolean);
- } break;
-
- case ShaderLanguage::TYPE_BVEC2: {
- glUniform2i(p_uniform, values[0].boolean, values[1].boolean);
- } break;
-
- case ShaderLanguage::TYPE_BVEC3: {
- glUniform3i(p_uniform, values[0].boolean, values[1].boolean, values[2].boolean);
- } break;
-
- case ShaderLanguage::TYPE_BVEC4: {
- glUniform4i(p_uniform, values[0].boolean, values[1].boolean, values[2].boolean, values[3].boolean);
- } break;
-
- case ShaderLanguage::TYPE_INT: {
- glUniform1i(p_uniform, values[0].sint);
- } break;
-
- case ShaderLanguage::TYPE_IVEC2: {
- glUniform2i(p_uniform, values[0].sint, values[1].sint);
- } break;
-
- case ShaderLanguage::TYPE_IVEC3: {
- glUniform3i(p_uniform, values[0].sint, values[1].sint, values[2].sint);
- } break;
-
- case ShaderLanguage::TYPE_IVEC4: {
- glUniform4i(p_uniform, values[0].sint, values[1].sint, values[2].sint, values[3].sint);
- } break;
-
- case ShaderLanguage::TYPE_UINT: {
- glUniform1i(p_uniform, values[0].uint);
- } break;
-
- case ShaderLanguage::TYPE_UVEC2: {
- glUniform2i(p_uniform, values[0].uint, values[1].uint);
- } break;
-
- case ShaderLanguage::TYPE_UVEC3: {
- glUniform3i(p_uniform, values[0].uint, values[1].uint, values[2].uint);
- } break;
-
- case ShaderLanguage::TYPE_UVEC4: {
- glUniform4i(p_uniform, values[0].uint, values[1].uint, values[2].uint, values[3].uint);
- } break;
-
- case ShaderLanguage::TYPE_FLOAT: {
- glUniform1f(p_uniform, values[0].real);
- } break;
-
- case ShaderLanguage::TYPE_VEC2: {
- glUniform2f(p_uniform, values[0].real, values[1].real);
- } break;
-
- case ShaderLanguage::TYPE_VEC3: {
- glUniform3f(p_uniform, values[0].real, values[1].real, values[2].real);
- } break;
-
- case ShaderLanguage::TYPE_VEC4: {
- glUniform4f(p_uniform, values[0].real, values[1].real, values[2].real, values[3].real);
- } break;
-
- case ShaderLanguage::TYPE_MAT2: {
- GLfloat mat[4];
-
- for (int i = 0; i < 4; i++) {
- mat[i] = values[i].real;
- }
-
- glUniformMatrix2fv(p_uniform, 1, GL_FALSE, mat);
- } break;
-
- case ShaderLanguage::TYPE_MAT3: {
- GLfloat mat[9];
-
- for (int i = 0; i < 9; i++) {
- mat[i] = values[i].real;
- }
-
- glUniformMatrix3fv(p_uniform, 1, GL_FALSE, mat);
-
- } break;
-
- case ShaderLanguage::TYPE_MAT4: {
- GLfloat mat[16];
-
- for (int i = 0; i < 16; i++) {
- mat[i] = values[i].real;
- }
-
- glUniformMatrix4fv(p_uniform, 1, GL_FALSE, mat);
-
- } break;
-
- case ShaderLanguage::TYPE_SAMPLER2D: {
-
- } break;
-
- case ShaderLanguage::TYPE_ISAMPLER2D: {
-
- } break;
-
- case ShaderLanguage::TYPE_USAMPLER2D: {
-
- } break;
-
- case ShaderLanguage::TYPE_SAMPLERCUBE: {
-
- } break;
-
- case ShaderLanguage::TYPE_SAMPLER2DARRAY:
- case ShaderLanguage::TYPE_ISAMPLER2DARRAY:
- case ShaderLanguage::TYPE_USAMPLER2DARRAY:
- case ShaderLanguage::TYPE_SAMPLER3D:
- case ShaderLanguage::TYPE_ISAMPLER3D:
- case ShaderLanguage::TYPE_USAMPLER3D: {
- // Not implemented in GLES2
- } break;
-
- case ShaderLanguage::TYPE_VOID: {
- // Nothing to do?
- } break;
- }
- }
-
- _FORCE_INLINE_ void _set_uniform_variant(GLint p_uniform, const Variant &p_value) {
-
- if (p_uniform < 0)
- return; // do none
- switch (p_value.get_type()) {
-
- case Variant::BOOL:
- case Variant::INT: {
-
- int val = p_value;
- glUniform1i(p_uniform, val);
- } break;
- case Variant::REAL: {
-
- real_t val = p_value;
- glUniform1f(p_uniform, val);
- } break;
- case Variant::COLOR: {
-
- Color val = p_value;
- glUniform4f(p_uniform, val.r, val.g, val.b, val.a);
- } break;
- case Variant::VECTOR2: {
-
- Vector2 val = p_value;
- glUniform2f(p_uniform, val.x, val.y);
- } break;
- case Variant::VECTOR3: {
-
- Vector3 val = p_value;
- glUniform3f(p_uniform, val.x, val.y, val.z);
- } break;
- case Variant::PLANE: {
-
- Plane val = p_value;
- glUniform4f(p_uniform, val.normal.x, val.normal.y, val.normal.z, val.d);
- } break;
- case Variant::QUAT: {
-
- Quat val = p_value;
- glUniform4f(p_uniform, val.x, val.y, val.z, val.w);
- } break;
-
- case Variant::TRANSFORM2D: {
-
- Transform2D tr = p_value;
- GLfloat matrix[16] = { /* build a 16x16 matrix */
- tr.elements[0][0],
- tr.elements[0][1],
- 0,
- 0,
- tr.elements[1][0],
- tr.elements[1][1],
- 0,
- 0,
- 0,
- 0,
- 1,
- 0,
- tr.elements[2][0],
- tr.elements[2][1],
- 0,
- 1
- };
-
- glUniformMatrix4fv(p_uniform, 1, false, matrix);
-
- } break;
- case Variant::BASIS:
- case Variant::TRANSFORM: {
-
- Transform tr = p_value;
- GLfloat matrix[16] = { /* build a 16x16 matrix */
- tr.basis.elements[0][0],
- tr.basis.elements[1][0],
- tr.basis.elements[2][0],
- 0,
- tr.basis.elements[0][1],
- tr.basis.elements[1][1],
- tr.basis.elements[2][1],
- 0,
- tr.basis.elements[0][2],
- tr.basis.elements[1][2],
- tr.basis.elements[2][2],
- 0,
- tr.origin.x,
- tr.origin.y,
- tr.origin.z,
- 1
- };
-
- glUniformMatrix4fv(p_uniform, 1, false, matrix);
- } break;
- case Variant::OBJECT: {
-
- } break;
- default: { ERR_FAIL(); } // do nothing
- }
- }
-
uint32_t create_custom_shader();
void set_custom_shader_code(uint32_t p_code_id,
const String &p_vertex,
@@ -468,18 +229,6 @@ public:
uint32_t get_version_key() const { return conditional_version.version; }
- void set_uniform_default(int p_idx, const Variant &p_value) {
-
- if (p_value.get_type() == Variant::NIL) {
-
- uniform_defaults.erase(p_idx);
- } else {
-
- uniform_defaults[p_idx] = p_value;
- }
- uniforms_dirty = true;
- }
-
// this void* is actually a RasterizerStorageGLES2::Material, but C++ doesn't
// like forward declared nested classes.
void use_material(void *p_material);
@@ -487,31 +236,9 @@ public:
_FORCE_INLINE_ uint32_t get_version() const { return new_conditional_version.version; }
_FORCE_INLINE_ bool is_version_valid() const { return version && version->ok; }
- void set_uniform_camera(int p_idx, const CameraMatrix &p_mat) {
-
- uniform_cameras[p_idx] = p_mat;
- uniforms_dirty = true;
- }
-
- _FORCE_INLINE_ void set_texture_uniform(int p_idx, const Variant &p_value) {
-
- ERR_FAIL_COND(!version);
- ERR_FAIL_INDEX(p_idx, version->texture_uniform_locations.size());
- _set_uniform_variant(version->texture_uniform_locations[p_idx], p_value);
- }
-
- _FORCE_INLINE_ GLint get_texture_uniform_location(int p_idx) {
-
- ERR_FAIL_COND_V(!version, -1);
- ERR_FAIL_INDEX_V(p_idx, version->texture_uniform_locations.size(), -1);
- return version->texture_uniform_locations[p_idx];
- }
-
virtual void init() = 0;
void finish();
- void set_base_material_tex_index(int p_idx);
-
void add_custom_define(const String &p_define) {
custom_defines.push_back(p_define.utf8());
}
diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp
index ccd5fff99f..fdfa4a72e4 100644
--- a/drivers/gles3/rasterizer_storage_gles3.cpp
+++ b/drivers/gles3/rasterizer_storage_gles3.cpp
@@ -3634,6 +3634,7 @@ void RasterizerStorageGLES3::mesh_set_blend_shape_count(RID p_mesh, int p_amount
ERR_FAIL_COND(p_amount < 0);
mesh->blend_shape_count = p_amount;
+ mesh->instance_change_notify(true, false);
}
int RasterizerStorageGLES3::mesh_get_blend_shape_count(RID p_mesh) const {
diff --git a/drivers/gles3/shader_gles3.cpp b/drivers/gles3/shader_gles3.cpp
index 2db0223edd..fa7cc00230 100644
--- a/drivers/gles3/shader_gles3.cpp
+++ b/drivers/gles3/shader_gles3.cpp
@@ -133,15 +133,6 @@ bool ShaderGLES3::bind() {
active = this;
uniforms_dirty = true;
- /*
- * why on earth is this code here?
- for (int i=0;i<texunit_pair_count;i++) {
-
- glUniform1i(texunit_pairs[i].location, texunit_pairs[i].index);
- DEBUG_TEST_ERROR("Uniform 1 i");
- }
-
-*/
return true;
}
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp
index e9580ae0d1..7ee4d5b03b 100644
--- a/editor/code_editor.cpp
+++ b/editor/code_editor.cpp
@@ -1144,6 +1144,7 @@ void CodeTextEditor::_update_font() {
text_editor->add_font_override("font", get_font("source", "EditorFonts"));
Ref<Font> status_bar_font = get_font("status_source", "EditorFonts");
+ error->add_font_override("font", status_bar_font);
int count = status_bar->get_child_count();
for (int i = 0; i < count; i++) {
Control *n = Object::cast_to<Control>(status_bar->get_child(i));
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index dcab17041f..8a9835c977 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -291,6 +291,8 @@ void EditorNode::_notification(int p_what) {
get_tree()->get_root()->set_as_audio_listener_2d(false);
get_tree()->set_auto_accept_quit(false);
get_tree()->connect("files_dropped", this, "_dropped_files");
+
+ /* DO NOT LOAD SCENES HERE, WAIT FOR FILE SCANNING AND REIMPORT TO COMPLETE */
}
if (p_what == NOTIFICATION_EXIT_TREE) {
@@ -305,7 +307,8 @@ void EditorNode::_notification(int p_what) {
_editor_select(EDITOR_3D);
_update_debug_options();
- _load_docks();
+
+ /* DO NOT LOAD SCENES HERE, WAIT FOR FILE SCANNING AND REIMPORT TO COMPLETE */
}
if (p_what == MainLoop::NOTIFICATION_WM_FOCUS_IN) {
@@ -527,14 +530,17 @@ void EditorNode::_resources_reimported(const Vector<String> &p_resources) {
void EditorNode::_sources_changed(bool p_exist) {
if (waiting_for_first_scan) {
+ waiting_for_first_scan = false;
+
+ EditorResourcePreview::get_singleton()->start(); //start previes now that it's safe
+
+ _load_docks();
if (defer_load_scene != "") {
load_scene(defer_load_scene);
defer_load_scene = "";
}
-
- waiting_for_first_scan = false;
}
}
@@ -1046,6 +1052,41 @@ static bool _find_edited_resources(const Ref<Resource> &p_resource, Set<Ref<Reso
return false;
}
+int EditorNode::_save_external_resources() {
+ //save external resources and its subresources if any was modified
+
+ int flg = 0;
+ if (EditorSettings::get_singleton()->get("filesystem/on_save/compress_binary_resources"))
+ flg |= ResourceSaver::FLAG_COMPRESS;
+ flg |= ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS;
+
+ Set<Ref<Resource> > edited_subresources;
+ int saved = 0;
+ List<Ref<Resource> > cached;
+ ResourceCache::get_cached_resources(&cached);
+ for (List<Ref<Resource> >::Element *E = cached.front(); E; E = E->next()) {
+
+ Ref<Resource> res = E->get();
+ if (!res->get_path().is_resource_file())
+ continue;
+ //not only check if this resourec is edited, check contained subresources too
+ if (_find_edited_resources(res, edited_subresources)) {
+ ResourceSaver::save(res->get_path(), res, flg);
+ saved++;
+ }
+ }
+
+ // clear later, because user may have put the same subresource in two different resources,
+ // which will be shared until the next reload
+
+ for (Set<Ref<Resource> >::Element *E = edited_subresources.front(); E; E = E->next()) {
+ Ref<Resource> res = E->get();
+ res->set_edited(false);
+ }
+
+ return saved;
+}
+
void EditorNode::_save_scene(String p_file, int idx) {
Node *scene = editor_data.get_edited_scene_root(idx);
@@ -1104,34 +1145,8 @@ void EditorNode::_save_scene(String p_file, int idx) {
flg |= ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS;
err = ResourceSaver::save(p_file, sdata, flg);
- //Map<RES, bool> processed;
- //this method is slow and not always works, deprecating
- //_save_edited_subresources(scene, processed, flg);
- { //instead, just find globally unsaved subresources and save them
-
- Set<Ref<Resource> > edited_subresources;
- List<Ref<Resource> > cached;
- ResourceCache::get_cached_resources(&cached);
- for (List<Ref<Resource> >::Element *E = cached.front(); E; E = E->next()) {
-
- Ref<Resource> res = E->get();
- if (!res->get_path().is_resource_file())
- continue;
- //not only check if this resourec is edited, check contained subresources too
- if (_find_edited_resources(res, edited_subresources)) {
- ResourceSaver::save(res->get_path(), res, flg);
- }
- }
-
- // clear later, because user may have put the same subresource in two different resources,
- // which will be shared until the next reload
-
- for (Set<Ref<Resource> >::Element *E = edited_subresources.front(); E; E = E->next()) {
- Ref<Resource> res = E->get();
- res->set_edited(false);
- }
- }
+ _save_external_resources();
editor_data.save_editor_external_data();
if (err == OK) {
@@ -1884,7 +1899,15 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
if (!scene) {
- show_accept(TTR("This operation can't be done without a tree root."), TTR("OK"));
+ int saved = _save_external_resources();
+ String err_text;
+ if (saved > 0) {
+ err_text = vformat(TTR("Saved %s modified resource(s)."), itos(saved));
+ } else {
+ err_text = TTR("A root node is required to save the scene.");
+ }
+
+ show_accept(err_text, TTR("OK"));
break;
}
@@ -3646,6 +3669,9 @@ void EditorNode::_dock_select_draw() {
void EditorNode::_save_docks() {
+ if (waiting_for_first_scan) {
+ return; //scanning, do not touch docks
+ }
Ref<ConfigFile> config;
config.instance();
@@ -3859,9 +3885,8 @@ void EditorNode::_load_docks_from_config(Ref<ConfigFile> p_layout, const String
}
}
- int fs_split_ofs = 0;
if (p_layout->has_section_key(p_section, "dock_filesystem_split")) {
- fs_split_ofs = p_layout->get_value(p_section, "dock_filesystem_split");
+ int fs_split_ofs = p_layout->get_value(p_section, "dock_filesystem_split");
filesystem_dock->set_split_offset(fs_split_ofs);
}
@@ -3874,7 +3899,6 @@ void EditorNode::_load_docks_from_config(Ref<ConfigFile> p_layout, const String
FileSystemDock::FileListDisplayMode dock_filesystem_file_list_display_mode = FileSystemDock::FileListDisplayMode(int(p_layout->get_value(p_section, "dock_filesystem_file_list_display_mode")));
filesystem_dock->set_file_list_display_mode(dock_filesystem_file_list_display_mode);
}
- filesystem_dock->set_split_offset(fs_split_ofs);
for (int i = 0; i < vsplits.size(); i++) {
diff --git a/editor/editor_node.h b/editor/editor_node.h
index 433441c29e..192dc649e9 100644
--- a/editor/editor_node.h
+++ b/editor/editor_node.h
@@ -442,6 +442,8 @@ private:
void _show_messages();
void _vp_resized();
+ int _save_external_resources();
+
bool _validate_scene_recursive(const String &p_filename, Node *p_node);
void _save_scene(String p_file, int idx = -1);
void _save_all_scenes();
diff --git a/editor/editor_resource_preview.cpp b/editor/editor_resource_preview.cpp
index 1fa1fe9070..e0c292dc87 100644
--- a/editor/editor_resource_preview.cpp
+++ b/editor/editor_resource_preview.cpp
@@ -417,6 +417,10 @@ void EditorResourcePreview::check_for_invalidation(const String &p_path) {
}
}
+void EditorResourcePreview::start() {
+ ERR_FAIL_COND(thread);
+ thread = Thread::create(_thread_func, this);
+}
void EditorResourcePreview::stop() {
if (thread) {
exit = true;
@@ -428,13 +432,12 @@ void EditorResourcePreview::stop() {
}
EditorResourcePreview::EditorResourcePreview() {
+ thread = NULL;
singleton = this;
preview_mutex = Mutex::create();
preview_sem = Semaphore::create();
order = 0;
exit = false;
-
- thread = Thread::create(_thread_func, this);
}
EditorResourcePreview::~EditorResourcePreview() {
diff --git a/editor/editor_resource_preview.h b/editor/editor_resource_preview.h
index 85ac78d58f..c958bfbb74 100644
--- a/editor/editor_resource_preview.h
+++ b/editor/editor_resource_preview.h
@@ -126,6 +126,7 @@ public:
void remove_preview_generator(const Ref<EditorResourcePreviewGenerator> &p_generator);
void check_for_invalidation(const String &p_path);
+ void start();
void stop();
EditorResourcePreview();
diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp
index acc7637c0b..e7019e4ef6 100644
--- a/editor/editor_sectioned_inspector.cpp
+++ b/editor/editor_sectioned_inspector.cpp
@@ -80,7 +80,7 @@ class SectionedInspectorFilter : public Object {
PropertyInfo pi = E->get();
int sp = pi.name.find("/");
- if (pi.name == "resource_path" || pi.name == "resource_name" || pi.name == "resource_local_to_scene" || pi.name.begins_with("script/")) //skip resource stuff
+ if (pi.name == "resource_path" || pi.name == "resource_name" || pi.name == "resource_local_to_scene" || pi.name.begins_with("script/") || pi.name.begins_with("_global_script")) //skip resource stuff
continue;
if (sp == -1) {
@@ -233,7 +233,7 @@ void SectionedInspector::update_category_list() {
else if (!(pi.usage & PROPERTY_USAGE_EDITOR))
continue;
- if (pi.name.find(":") != -1 || pi.name == "script" || pi.name == "resource_name" || pi.name == "resource_path" || pi.name == "resource_local_to_scene")
+ if (pi.name.find(":") != -1 || pi.name == "script" || pi.name == "resource_name" || pi.name == "resource_path" || pi.name == "resource_local_to_scene" || pi.name.begins_with("_global_script"))
continue;
if (search_box && search_box->get_text() != String() && pi.name.findn(search_box->get_text()) == -1)
diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp
index ad3ce90afd..97ccfb0db1 100644
--- a/editor/export_template_manager.cpp
+++ b/editor/export_template_manager.cpp
@@ -270,7 +270,7 @@ bool ExportTemplateManager::_install_from_file(const String &p_file, bool p_use_
char fname[16384];
unzGetCurrentFileInfo(pkg, &info, fname, 16384, NULL, 0, NULL, 0);
- String file_path(fname);
+ String file_path(String(fname).simplify_path());
String file = file_path.get_file();
@@ -287,10 +287,10 @@ bool ExportTemplateManager::_install_from_file(const String &p_file, bool p_use_
unzReadCurrentFile(pkg, data.ptrw(), data.size());
unzCloseCurrentFile(pkg);
- String base_dir = file_path.get_base_dir().trim_suffix("/").trim_suffix("\\");
+ String base_dir = file_path.get_base_dir().trim_suffix("/");
if (base_dir != contents_dir && base_dir.begins_with(contents_dir)) {
- base_dir = base_dir.substr(contents_dir.length(), file_path.length()).trim_prefix("/").trim_prefix("\\");
+ base_dir = base_dir.substr(contents_dir.length(), file_path.length()).trim_prefix("/");
file = base_dir.plus_file(file);
DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp
index 0c3c222085..9bd6063a71 100644
--- a/editor/filesystem_dock.cpp
+++ b/editor/filesystem_dock.cpp
@@ -231,7 +231,6 @@ void FileSystemDock::_update_tree(const Vector<String> p_uncollapsed_paths, bool
void FileSystemDock::set_display_mode(DisplayMode p_display_mode) {
display_mode = p_display_mode;
- emit_signal("display_mode_changed");
_update_display_mode(false);
}
@@ -284,8 +283,7 @@ void FileSystemDock::_notification(int p_what) {
String ei = "EditorIcons";
button_reload->set_icon(get_icon("Reload", ei));
button_toggle_display_mode->set_icon(get_icon("Panels2", ei));
- _update_file_list_display_mode_button();
- button_file_list_display_mode->connect("pressed", this, "_change_file_display");
+ button_file_list_display_mode->connect("toggled", this, "_toggle_file_display");
files->connect("item_activated", this, "_file_list_activate_file");
button_hist_next->connect("pressed", this, "_fw_history");
@@ -501,9 +499,13 @@ void FileSystemDock::_tree_thumbnail_done(const String &p_path, const Ref<Textur
}
}
-void FileSystemDock::_update_file_list_display_mode_button() {
+void FileSystemDock::_toggle_file_display(bool p_active) {
+ _set_file_display(p_active);
+ emit_signal("display_mode_changed");
+}
- if (button_file_list_display_mode->is_pressed()) {
+void FileSystemDock::_set_file_display(bool p_active) {
+ if (p_active) {
file_list_display_mode = FILE_LIST_DISPLAY_LIST;
button_file_list_display_mode->set_icon(get_icon("FileThumbnail", "EditorIcons"));
button_file_list_display_mode->set_tooltip(TTR("View items as a grid of thumbnails."));
@@ -512,14 +514,6 @@ void FileSystemDock::_update_file_list_display_mode_button() {
button_file_list_display_mode->set_icon(get_icon("FileList", "EditorIcons"));
button_file_list_display_mode->set_tooltip(TTR("View items as a list."));
}
- emit_signal("display_mode_changed");
-}
-
-void FileSystemDock::_change_file_display() {
-
- _update_file_list_display_mode_button();
-
- EditorSettings::get_singleton()->set("docks/filesystem/files_display_mode", file_list_display_mode);
_update_file_list(true);
}
@@ -1679,6 +1673,7 @@ void FileSystemDock::_rescan() {
void FileSystemDock::_toggle_split_mode(bool p_active) {
set_display_mode(p_active ? DISPLAY_MODE_SPLIT : DISPLAY_MODE_TREE_ONLY);
+ emit_signal("display_mode_changed");
}
void FileSystemDock::fix_dependencies(const String &p_for_file) {
@@ -1696,7 +1691,7 @@ void FileSystemDock::set_file_list_display_mode(FileListDisplayMode p_mode) {
return;
button_file_list_display_mode->set_pressed(p_mode == FILE_LIST_DISPLAY_LIST);
- _change_file_display();
+ _toggle_file_display(p_mode == FILE_LIST_DISPLAY_LIST);
}
Variant FileSystemDock::get_drag_data_fw(const Point2 &p_point, Control *p_from) {
@@ -2285,7 +2280,7 @@ void FileSystemDock::_bind_methods() {
ClassDB::bind_method(D_METHOD("_tree_activate_file"), &FileSystemDock::_tree_activate_file);
ClassDB::bind_method(D_METHOD("_select_file"), &FileSystemDock::_select_file);
ClassDB::bind_method(D_METHOD("_navigate_to_path"), &FileSystemDock::_navigate_to_path);
- ClassDB::bind_method(D_METHOD("_change_file_display"), &FileSystemDock::_change_file_display);
+ ClassDB::bind_method(D_METHOD("_toggle_file_display"), &FileSystemDock::_toggle_file_display);
ClassDB::bind_method(D_METHOD("_fw_history"), &FileSystemDock::_fw_history);
ClassDB::bind_method(D_METHOD("_bw_history"), &FileSystemDock::_bw_history);
ClassDB::bind_method(D_METHOD("_fs_changed"), &FileSystemDock::_fs_changed);
diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h
index e31afee23e..7cf37a7634 100644
--- a/editor/filesystem_dock.h
+++ b/editor/filesystem_dock.h
@@ -181,8 +181,8 @@ private:
void _tree_gui_input(Ref<InputEvent> p_event);
void _update_file_list(bool p_keep_selection);
- void _update_file_list_display_mode_button();
- void _change_file_display();
+ void _toggle_file_display(bool p_active);
+ void _set_file_display(bool p_active);
void _fs_changed();
void _tree_toggle_collapsed();
diff --git a/editor/import/editor_scene_importer_gltf.cpp b/editor/import/editor_scene_importer_gltf.cpp
index ff2f68ffd3..3909d437e5 100644
--- a/editor/import/editor_scene_importer_gltf.cpp
+++ b/editor/import/editor_scene_importer_gltf.cpp
@@ -892,9 +892,11 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) {
primitive = primitives2[mode];
}
+ ERR_FAIL_COND_V(!a.has("POSITION"), ERR_PARSE_ERROR);
if (a.has("POSITION")) {
array[Mesh::ARRAY_VERTEX] = _decode_accessor_as_vec3(state, a["POSITION"], true);
}
+
if (a.has("NORMAL")) {
array[Mesh::ARRAY_NORMAL] = _decode_accessor_as_vec3(state, a["NORMAL"], true);
}
diff --git a/editor/plugins/animation_blend_tree_editor_plugin.cpp b/editor/plugins/animation_blend_tree_editor_plugin.cpp
index eef3358260..afe2573898 100644
--- a/editor/plugins/animation_blend_tree_editor_plugin.cpp
+++ b/editor/plugins/animation_blend_tree_editor_plugin.cpp
@@ -231,6 +231,7 @@ void AnimationNodeBlendTreeEditor::_update_graph() {
}
pb->set_percent_visible(false);
+ pb->set_custom_minimum_size(Vector2(0, 14) * EDSCALE);
animations[E->get()] = pb;
node->add_child(pb);
diff --git a/editor/plugins/tile_set_editor_plugin.cpp b/editor/plugins/tile_set_editor_plugin.cpp
index 5f4c4a610a..5b34aaa92a 100644
--- a/editor/plugins/tile_set_editor_plugin.cpp
+++ b/editor/plugins/tile_set_editor_plugin.cpp
@@ -206,6 +206,7 @@ void TileSetEditor::_bind_methods() {
ClassDB::bind_method("add_texture", &TileSetEditor::add_texture);
ClassDB::bind_method("remove_texture", &TileSetEditor::remove_texture);
ClassDB::bind_method("update_texture_list_icon", &TileSetEditor::update_texture_list_icon);
+ ClassDB::bind_method("update_workspace_minsize", &TileSetEditor::update_workspace_minsize);
}
void TileSetEditor::_notification(int p_what) {
@@ -590,16 +591,15 @@ void TileSetEditor::_on_texture_list_selected(int p_index) {
if (get_current_texture().is_valid()) {
current_item_index = p_index;
preview->set_texture(get_current_texture());
- workspace->set_custom_minimum_size(get_current_texture()->get_size() + WORKSPACE_MARGIN * 2);
- workspace_container->set_custom_minimum_size(get_current_texture()->get_size() + WORKSPACE_MARGIN * 2);
- workspace_overlay->set_custom_minimum_size(get_current_texture()->get_size() + WORKSPACE_MARGIN * 2);
update_workspace_tile_mode();
+ update_workspace_minsize();
} else {
current_item_index = -1;
preview->set_texture(NULL);
workspace->set_custom_minimum_size(Size2i());
update_workspace_tile_mode();
}
+
set_current_tile(-1);
workspace->update();
}
@@ -1082,7 +1082,23 @@ void TileSetEditor::_on_workspace_input(const Ref<InputEvent> &p_ie) {
undo_redo->create_action(TTR("Set Tile Region"));
undo_redo->add_do_method(tileset.ptr(), "tile_set_region", get_current_tile(), edited_region);
undo_redo->add_undo_method(tileset.ptr(), "tile_set_region", get_current_tile(), tileset->tile_get_region(get_current_tile()));
+
+ Size2 tile_workspace_size = edited_region.position + edited_region.size + WORKSPACE_MARGIN * 2;
+ Size2 workspace_minsize = workspace->get_custom_minimum_size();
+ if (tile_workspace_size.x > workspace_minsize.x && tile_workspace_size.y > workspace_minsize.y) {
+ undo_redo->add_do_method(workspace, "set_custom_minimum_size", tile_workspace_size);
+ undo_redo->add_undo_method(workspace, "set_custom_minimum_size", workspace_minsize);
+ undo_redo->add_do_method(workspace_container, "set_custom_minimum_size", tile_workspace_size);
+ undo_redo->add_undo_method(workspace_container, "set_custom_minimum_size", workspace_minsize);
+ undo_redo->add_do_method(workspace_overlay, "set_custom_minimum_size", tile_workspace_size);
+ undo_redo->add_undo_method(workspace_overlay, "set_custom_minimum_size", workspace_minsize);
+ } else if (workspace_minsize.x > get_current_texture()->get_size().x + WORKSPACE_MARGIN.x * 2 || workspace_minsize.y > get_current_texture()->get_size().y + WORKSPACE_MARGIN.y * 2) {
+ undo_redo->add_do_method(this, "update_workspace_minsize");
+ undo_redo->add_undo_method(this, "update_workspace_minsize");
+ }
+
edited_region = Rect2();
+
undo_redo->add_do_method(workspace, "update");
undo_redo->add_undo_method(workspace, "update");
undo_redo->add_do_method(workspace_overlay, "update");
@@ -1106,6 +1122,19 @@ void TileSetEditor::_on_workspace_input(const Ref<InputEvent> &p_ie) {
tool_workspacemode[WORKSPACE_EDIT]->set_pressed(true);
tool_editmode[EDITMODE_COLLISION]->set_pressed(true);
edit_mode = EDITMODE_COLLISION;
+
+ Size2 tile_workspace_size = edited_region.position + edited_region.size + WORKSPACE_MARGIN * 2;
+ Size2 workspace_minsize = workspace->get_custom_minimum_size();
+ if (tile_workspace_size.x > workspace_minsize.x || tile_workspace_size.y > workspace_minsize.y) {
+ Size2 new_workspace_minsize = Size2(MAX(tile_workspace_size.x, workspace_minsize.x), MAX(tile_workspace_size.y, workspace_minsize.y));
+ undo_redo->add_do_method(workspace, "set_custom_minimum_size", new_workspace_minsize);
+ undo_redo->add_undo_method(workspace, "set_custom_minimum_size", workspace_minsize);
+ undo_redo->add_do_method(workspace_container, "set_custom_minimum_size", new_workspace_minsize);
+ undo_redo->add_undo_method(workspace_container, "set_custom_minimum_size", workspace_minsize);
+ undo_redo->add_do_method(workspace_overlay, "set_custom_minimum_size", new_workspace_minsize);
+ undo_redo->add_undo_method(workspace_overlay, "set_custom_minimum_size", workspace_minsize);
+ }
+
edited_region = Rect2();
undo_redo->add_do_method(workspace, "update");
@@ -1504,6 +1533,14 @@ void TileSetEditor::_on_tool_clicked(int p_tool) {
undo_redo->add_do_method(tileset.ptr(), "remove_tile", t_id);
_undo_tile_removal(t_id);
undo_redo->add_do_method(this, "_validate_current_tile_id");
+
+ Rect2 tile_region = tileset->tile_get_region(get_current_tile());
+ Size2 tile_workspace_size = tile_region.position + tile_region.size;
+ if (tile_workspace_size.x > get_current_texture()->get_size().x || tile_workspace_size.y > get_current_texture()->get_size().y) {
+ undo_redo->add_do_method(this, "update_workspace_minsize");
+ undo_redo->add_undo_method(this, "update_workspace_minsize");
+ }
+
undo_redo->add_do_method(workspace, "update");
undo_redo->add_undo_method(workspace, "update");
undo_redo->add_do_method(workspace_overlay, "update");
@@ -2506,6 +2543,26 @@ void TileSetEditor::update_workspace_tile_mode() {
_on_edit_mode_changed(edit_mode);
}
+void TileSetEditor::update_workspace_minsize() {
+ Size2 workspace_min_size = get_current_texture()->get_size();
+ RID current_texture_rid = get_current_texture()->get_rid();
+ List<int> *tiles = new List<int>();
+ tileset->get_tile_list(tiles);
+ for (List<int>::Element *E = tiles->front(); E; E = E->next()) {
+ if (tileset->tile_get_texture(E->get())->get_rid() == current_texture_rid) {
+ Rect2i region = tileset->tile_get_region(E->get());
+ if (region.position.x + region.size.x > workspace_min_size.x)
+ workspace_min_size.x = region.position.x + region.size.x;
+ if (region.position.y + region.size.y > workspace_min_size.y)
+ workspace_min_size.y = region.position.y + region.size.y;
+ }
+ }
+
+ workspace->set_custom_minimum_size(workspace_min_size + WORKSPACE_MARGIN * 2);
+ workspace_container->set_custom_minimum_size(workspace_min_size + WORKSPACE_MARGIN * 2);
+ workspace_overlay->set_custom_minimum_size(workspace_min_size + WORKSPACE_MARGIN * 2);
+}
+
void TileSetEditor::update_edited_region(const Vector2 &end_point) {
edited_region = Rect2(region_from, Size2());
if (tools[TOOL_GRID_SNAP]->is_pressed()) {
diff --git a/editor/plugins/tile_set_editor_plugin.h b/editor/plugins/tile_set_editor_plugin.h
index 6bbfee8714..9c4aa80dcb 100644
--- a/editor/plugins/tile_set_editor_plugin.h
+++ b/editor/plugins/tile_set_editor_plugin.h
@@ -210,6 +210,7 @@ private:
void select_coord(const Vector2 &coord);
Vector2 snap_point(const Vector2 &point);
void update_workspace_tile_mode();
+ void update_workspace_minsize();
void update_edited_region(const Vector2 &end_point);
int get_current_tile() const;
diff --git a/editor/script_editor_debugger.cpp b/editor/script_editor_debugger.cpp
index 303d10d768..6b7c4781dd 100644
--- a/editor/script_editor_debugger.cpp
+++ b/editor/script_editor_debugger.cpp
@@ -1084,19 +1084,19 @@ void ScriptEditorDebugger::_notification(int p_what) {
if (error_count != last_error_count || warning_count != last_warning_count) {
if (error_count == 0 && warning_count == 0) {
- error_tree->set_name(TTR("Errors"));
+ errors_tab->set_name(TTR("Errors"));
debugger_button->set_text(TTR("Debugger"));
debugger_button->set_icon(Ref<Texture>());
- tabs->set_tab_icon(error_tree->get_index(), Ref<Texture>());
+ tabs->set_tab_icon(errors_tab->get_index(), Ref<Texture>());
} else {
- error_tree->set_name(TTR("Errors") + " (" + itos(error_count + warning_count) + ")");
+ errors_tab->set_name(TTR("Errors") + " (" + itos(error_count + warning_count) + ")");
debugger_button->set_text(TTR("Debugger") + " (" + itos(error_count + warning_count) + ")");
if (error_count == 0) {
debugger_button->set_icon(get_icon("Warning", "EditorIcons"));
- tabs->set_tab_icon(error_tree->get_index(), get_icon("Warning", "EditorIcons"));
+ tabs->set_tab_icon(errors_tab->get_index(), get_icon("Warning", "EditorIcons"));
} else {
debugger_button->set_icon(get_icon("Error", "EditorIcons"));
- tabs->set_tab_icon(error_tree->get_index(), get_icon("Error", "EditorIcons"));
+ tabs->set_tab_icon(errors_tab->get_index(), get_icon("Error", "EditorIcons"));
}
}
last_error_count = error_count;
@@ -2054,11 +2054,11 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) {
}
{ //errors
- VBoxContainer *errvb = memnew(VBoxContainer);
- errvb->set_name(TTR("Errors"));
+ errors_tab = memnew(VBoxContainer);
+ errors_tab->set_name(TTR("Errors"));
HBoxContainer *errhb = memnew(HBoxContainer);
- errvb->add_child(errhb);
+ errors_tab->add_child(errhb);
Button *expand_all = memnew(Button);
expand_all->set_text(TTR("Expand All"));
@@ -2093,13 +2093,13 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) {
error_tree->set_v_size_flags(SIZE_EXPAND_FILL);
error_tree->set_allow_rmb_select(true);
error_tree->connect("item_rmb_selected", this, "_error_tree_item_rmb_selected");
- errvb->add_child(error_tree);
+ errors_tab->add_child(error_tree);
item_menu = memnew(PopupMenu);
item_menu->connect("id_pressed", this, "_item_menu_id_pressed");
error_tree->add_child(item_menu);
- tabs->add_child(errvb);
+ tabs->add_child(errors_tab);
}
{ // remote scene tree
diff --git a/editor/script_editor_debugger.h b/editor/script_editor_debugger.h
index 49651ad9c9..fb1545559c 100644
--- a/editor/script_editor_debugger.h
+++ b/editor/script_editor_debugger.h
@@ -87,7 +87,7 @@ class ScriptEditorDebugger : public Control {
Map<ObjectID, ScriptEditorDebuggerInspectedObject *> remote_objects;
Set<ObjectID> unfold_cache;
- HSplitContainer *error_split;
+ VBoxContainer *errors_tab;
Tree *error_tree;
Tree *inspect_scene_tree;
Button *clearbutton;
diff --git a/editor/translations/af.po b/editor/translations/af.po
index fa210f0894..249e68ff53 100644
--- a/editor/translations/af.po
+++ b/editor/translations/af.po
@@ -87,6 +87,15 @@ msgstr "Dupliseer Seleksie"
msgid "Delete Selected Key(s)"
msgstr "Skrap gekose lêers?"
+#: editor/animation_bezier_editor.cpp
+msgid "Add Bezier Point"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Skuif Gunsteling Op"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Anim Dupliseer Sleutels"
@@ -118,6 +127,16 @@ msgid "Anim Change Call"
msgstr "Anim Verander Roep"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Verander Anim Lente"
+
+#: 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 ""
@@ -170,6 +189,11 @@ msgid "Anim Clips:"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Verander Skikking Waarde"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr ""
@@ -196,6 +220,10 @@ msgid "Time (s): "
msgstr "Tree (s):"
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Deurlopend"
@@ -248,6 +276,21 @@ msgid "Delete Key(s)"
msgstr "Anim Skrap Sleutels"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Verander Woordeboek Waarde"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Verander Woordeboek Waarde"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Verander Anim Herspeel"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Verwyder Anim Baan"
@@ -289,6 +332,16 @@ msgid "Anim Insert Key"
msgstr "Anim Voeg Sleutel by"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Verander Anim Lente"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Herrangskik AutoLaaie"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -313,6 +366,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Anim Voeg Baan By"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -321,10 +379,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Anim Voeg Baan & Sleutel By"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Anim Voeg Baan By"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Anim Voeg Baan & Sleutel By"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -337,6 +410,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Anim Skaal Sleutels"
@@ -382,10 +459,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Skaal Seleksie"
@@ -488,6 +561,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Anim Voeg Baan By"
+
+#: 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 "Herskaleer Skikking"
@@ -1310,6 +1396,12 @@ msgstr ""
msgid "Packing"
msgstr "Verpak"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1881,6 +1973,14 @@ 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 ""
@@ -3495,12 +3595,46 @@ msgstr "Laai"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Skuif Gunsteling Op"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Skuif Gunsteling Op"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Animasie Zoem."
+
+#: 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 ""
@@ -3542,6 +3676,27 @@ msgid "Triangle already exists"
msgstr "AutoLaai '%s' bestaan reeds!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Anim Voeg Baan By"
+
+#: 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 ""
@@ -3550,6 +3705,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Wissel AutoLaai Globale"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3567,6 +3727,10 @@ 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 ""
@@ -3576,11 +3740,54 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Nodus Naam:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Koppel"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Ontkoppel"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Optimaliseer Animasie"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Skrap"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Wissel Gunsteling"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Verander Anim Lente"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3596,6 +3803,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Nodus Naam:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr ""
@@ -3829,6 +4042,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Skuif Byvoeg Sleutel"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Oorgang"
+
+#: 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 ""
@@ -3858,6 +4086,20 @@ msgid "No playback resource set at path: %s."
msgstr "Nie in hulpbron pad nie."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Verwyder"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Oorgang"
+
+#: 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"
@@ -4668,6 +4910,10 @@ msgstr ""
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 ""
@@ -5835,6 +6081,14 @@ 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
#, fuzzy
msgid "Skeleton2D"
msgstr "EnkelHouer"
@@ -5946,10 +6200,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5994,7 +6244,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6086,6 +6336,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6094,6 +6350,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6372,10 +6632,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6711,6 +6967,11 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Skep Nuwe"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Skep Intekening"
@@ -6887,6 +7148,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Anim Dupliseer Sleutels"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6902,6 +7184,14 @@ msgstr ""
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 ""
@@ -6915,7 +7205,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6927,6 +7226,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7915,6 +8218,10 @@ 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 Node(s)?"
msgstr ""
@@ -7949,6 +8256,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Create Root Node:"
msgstr "Skep Vouer"
@@ -8365,6 +8676,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8571,6 +8894,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8868,10 +9195,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8954,6 +9277,10 @@ 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 ""
@@ -9828,12 +10155,6 @@ msgstr ""
#~ msgid "Out-In"
#~ msgstr "Uit-In"
-#~ msgid "Change Anim Len"
-#~ msgstr "Verander Anim Lente"
-
-#~ msgid "Change Anim Loop"
-#~ msgstr "Verander Anim Herspeel"
-
#~ msgid "Anim Create Typed Value Key"
#~ msgstr "Anim Skep Soort-Waarde Sleutel"
@@ -9892,8 +10213,5 @@ msgstr ""
#~ msgid "Skip"
#~ msgstr "Spring Oor"
-#~ msgid "Move Add Key"
-#~ msgstr "Skuif Byvoeg Sleutel"
-
#~ msgid "List:"
#~ msgstr "Lys:"
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index 4870528b89..ce40d0bdfa 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -104,6 +104,16 @@ msgstr "تكرار المÙاتيح المحدد(Ø©)"
msgid "Delete Selected Key(s)"
msgstr "إمسح المÙاتيح المحدد(Ø©)"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "إضاÙØ© نقطة"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "مسح النقطة"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "تكرار Ù…Ùاتيح التحريك"
@@ -133,6 +143,16 @@ msgid "Anim Change Call"
msgstr "نداء تغيير التحريك"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 "خط الخاصية"
@@ -182,6 +202,11 @@ msgid "Anim Clips:"
msgstr "مقاطع الحركة:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "تغيير قيمة ÙÙŠ المصÙÙˆÙØ©"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "تمكين/إيقا٠هذا المسار."
@@ -209,6 +234,10 @@ msgid "Time (s): "
msgstr "وقت التلاشي X (ثواني):"
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "متواصل"
@@ -262,6 +291,21 @@ msgid "Delete Key(s)"
msgstr "Ù…Ùاتيح حذ٠التحريك"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "تغيير إسم الحركة:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "عقدة الحركة"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "تغيير تكرير الحركة"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "حذ٠مسار التحريك"
@@ -303,6 +347,16 @@ msgid "Anim Insert Key"
msgstr "أض٠مÙتاح حركة"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "تغيير إسم الحركة:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "اعادة ترتيب التحميلات التلقائية"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -327,6 +381,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "إضاÙØ© مسار"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -335,10 +394,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "خط التحريك ثلاثي الأبعاد"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "استدعاء أسلوب المسار"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -351,6 +425,11 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "لصق المÙعامل"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Ù…Ùتاح تكبير حركة"
@@ -397,11 +476,6 @@ msgid "Copy Tracks"
msgstr "إنسخ المÙعامل"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "لصق المÙعامل"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "تكبير المحدد"
@@ -504,6 +578,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "تغيير حجم المصÙÙˆÙØ©"
@@ -1317,6 +1404,12 @@ msgstr ""
msgid "Packing"
msgstr "يَحزم\"ينتج المل٠المضغوط\""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1906,6 +1999,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "هل تريد Ø­Ùظ التغييرات إلي'%s' قبل الإغلاق؟"
#: editor/editor_node.cpp
+#, fuzzy
+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 "Ø­Ùظ المشهد كـ..."
@@ -3583,12 +3685,49 @@ msgstr "تحميل"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "مسح النقطة"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "تغيير وقت الدمج"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "تغيير وقت الدمج"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "إضاÙØ© نقطة"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "أض٠حركة"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3630,6 +3769,30 @@ msgid "Triangle already exists"
msgstr "خطأ: إسم الحركة موجود بالÙعل!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "إضاÙØ© مسار"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "تغيير وقت الدمج"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "تغيير وقت الدمج"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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 ""
@@ -3638,6 +3801,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "تبديل التحميل التلقائي العام"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3655,6 +3823,11 @@ msgid "Blend:"
msgstr "الدمج:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "تحديث التغييرات"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "تعديل المصاÙÙŠ"
@@ -3664,11 +3837,54 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "وضع التحريك"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "متصل"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "غير متصل"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "صورة متحركة"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "إنشاء عقدة"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "تمكين/إيقا٠هذا المسار."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "تغيير خط الحركة"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3684,6 +3900,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "إسم العقدة:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr ""
@@ -3918,6 +4140,21 @@ msgid "Cross-Animation Blend Times"
msgstr "وقت الدمج عبر الحركة"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "وضع التحريك"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "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 ""
@@ -3947,6 +4184,20 @@ msgid "No playback resource set at path: %s."
msgstr "ليس ÙÙŠ مسار الموارد."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Ù…ÙسÙØ­:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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"
@@ -4779,6 +5030,10 @@ msgstr "إبقي ضاغطاً علي Shift لتعديل المماس ÙردياÙ
msgid "Bake GI Probe"
msgstr "طبخ مجس GI"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "العنصر %d"
@@ -5967,6 +6222,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+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
+#, fuzzy
msgid "Skeleton2D"
msgstr "الÙردية"
@@ -6079,10 +6343,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -6127,7 +6387,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6220,6 +6480,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6228,6 +6494,11 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "الكبس إلي الشبكة"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "تحديد الوضع (ض)"
@@ -6509,10 +6780,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6861,6 +7128,11 @@ msgstr "زر الÙأرة الأيمن: مسح النقطة."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "إنشاء %s جديد"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "أنشئ شكل جديد من لا شئ."
@@ -7045,6 +7317,28 @@ msgid "TileSet"
msgstr "مجموعة البلاط"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "حدد كإÙتراضي من أجل '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Ù…Ùاتيح نسخ التحريك"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -7061,6 +7355,15 @@ msgstr ""
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+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 ""
@@ -7074,7 +7377,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -7087,6 +7399,10 @@ msgid "Exporting All"
msgstr "التصدير كـ %s"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -8080,6 +8396,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Ø­Ùظ المشهد"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8116,6 +8437,11 @@ msgstr "أنشئ عظام"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Ø­Ùظ المشهد"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "إنشاء عقدة"
@@ -8538,6 +8864,20 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "تخÙي٠للخارج"
+
+#: editor/settings_config_dialog.cpp
+msgid "Restore Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "تغيير المرتكزات"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr ""
@@ -8754,6 +9094,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -9050,10 +9394,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -9136,6 +9476,11 @@ msgid "Change Input Value"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "تعديل العنصر القماشي"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
@@ -10030,10 +10375,6 @@ msgstr ""
#~ msgid "Search in files"
#~ msgstr "إبحث ÙÙŠ الأصناÙ"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "الكبس إلي الشبكة"
-
#~ msgid "Bake!"
#~ msgstr "طبخ!"
@@ -10085,12 +10426,6 @@ msgstr ""
#~ msgid "Out-In"
#~ msgstr "خارج-داخل"
-#~ msgid "Change Anim Len"
-#~ msgstr "تغيير خط الحركة"
-
-#~ msgid "Change Anim Loop"
-#~ msgstr "تغيير تكرير الحركة"
-
#~ msgid "Anim Create Typed Value Key"
#~ msgstr "أنشي Ù…Ùتاح حركة ذا قيمة مكتوبة"
@@ -10244,9 +10579,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "تم إضاÙته:"
-#~ msgid "Removed:"
-#~ msgstr "Ù…ÙسÙØ­:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "لا يمكن Ø­Ùظ النسيج الÙرعي للأطلس:"
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index cbab22b334..a629e78a9c 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -92,6 +92,15 @@ msgstr ""
msgid "Delete Selected Key(s)"
msgstr ""
+#: editor/animation_bezier_editor.cpp
+msgid "Add Bezier Point"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "LMB: ПремеÑти Точка."
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr ""
@@ -121,6 +130,16 @@ msgid "Anim Change Call"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 ""
@@ -172,6 +191,10 @@ 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 ""
@@ -198,6 +221,10 @@ msgid "Time (s): "
msgstr "Стъпка (Ñек.):"
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -250,6 +277,21 @@ msgid "Delete Key(s)"
msgstr "Изтрий Key(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Промени Името на ÐнимациÑта:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Промени Името на ÐнимациÑта:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Промени Името на ÐнимациÑта:"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr ""
@@ -291,6 +333,16 @@ msgid "Anim Insert Key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Промени Името на ÐнимациÑта:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "ПоÑтавÑне на възелите"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -315,6 +367,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "ДобавÑне на нови пътечки."
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -323,10 +380,24 @@ 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
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "ДобавÑне на нови пътечки."
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -339,6 +410,11 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "ПоÑтавÑне на възелите"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -383,11 +459,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "ПоÑтавÑне на възелите"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -489,6 +560,19 @@ msgstr ""
msgid "Copy"
msgstr "Копиране"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "ПреоразмерÑване на маÑива"
@@ -1287,6 +1371,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1848,6 +1938,15 @@ msgid "Save changes to '%s' before closing?"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+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 "Запазване на Ñцената като..."
@@ -3505,12 +3604,47 @@ msgstr "Зареди..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "LMB: ПремеÑти Точка."
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Добави Възел..."
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Добави ÐнимациÑ"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3553,6 +3687,28 @@ msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
#, fuzzy
+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
+#, fuzzy
+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
+#, fuzzy
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D не принадлежи на възел тип AnimationTree."
@@ -3561,6 +3717,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Покажи Любими"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3578,6 +3739,10 @@ 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
#, fuzzy
msgid "Edit Filters"
@@ -3588,11 +3753,53 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Режим на ПремеÑтване"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "ИзрÑзване на възелите"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Разкачи"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Ðово Име на ÐнимациÑ:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Избиране на вÑичко"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+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 ""
@@ -3608,6 +3815,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Възел"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -3841,6 +4054,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Режим на ПремеÑтване"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "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 ""
@@ -3870,6 +4098,20 @@ msgid "No playback resource set at path: %s."
msgstr "Обектът не е базиран на реÑурÑен файл"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Премахни"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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"
@@ -4689,6 +4931,10 @@ msgstr ""
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 ""
@@ -5855,6 +6101,15 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Възпроизвеждане на Ñцена по избор"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr ""
@@ -5964,10 +6219,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Изглед Отгоре."
@@ -6012,8 +6263,9 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
-msgstr ""
+#, fuzzy
+msgid "Align with View"
+msgstr "Изглед ОтдÑÑно."
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "No parent to instance a child at."
@@ -6105,6 +6357,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6113,6 +6371,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Режим на Селектиране (Q)"
@@ -6393,10 +6655,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6738,6 +6996,11 @@ msgstr "Изтрий точки."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Създай нови възли."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Създай нов полигон от нулата."
@@ -6922,6 +7185,28 @@ msgid "TileSet"
msgstr "Файл:"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Задай по Подразбиране за '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Ðаправи дупликат на Key(s)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6937,6 +7222,15 @@ msgstr ""
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+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 ""
@@ -6950,7 +7244,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6963,6 +7266,10 @@ msgid "Exporting All"
msgstr "ИзнаÑÑне за %s"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7971,6 +8278,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Запазване на Ñцената"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8006,6 +8318,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Запазване на Ñцената"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Създаване на папка"
@@ -8435,6 +8752,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8657,6 +8986,11 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "ÐаÑтройки"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8960,10 +9294,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -9048,6 +9378,11 @@ msgid "Change Input Value"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Вкарай Коментар"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
@@ -9873,9 +10208,6 @@ msgstr ""
#~ msgid "Select a split to erase it."
#~ msgstr "Избери разделение и го изтрий"
-#~ msgid "Add Node.."
-#~ msgstr "Добави Възел..."
-
#~ msgid "Zoom out"
#~ msgstr "Отдалечи"
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index 5d24e2b222..845cceaf35 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -93,6 +93,16 @@ msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অনà§à¦²à¦¿à¦ªà¦¿ করà§
msgid "Delete Selected Key(s)"
msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অপসারণ করà§à¦¨"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "বিনà§à¦¦à§ সরান"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) কি ডà§à¦ªà§à¦²à¦¿à¦•à§‡à¦Ÿ করà§à¦¨"
@@ -125,6 +135,16 @@ msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) কল পরিবরà§à¦¤à¦¨ à¦
#: editor/animation_track_editor.cpp
#, fuzzy
+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
+#, fuzzy
msgid "Property Track"
msgstr "পà§à¦°à¦ªà¦¾à¦°à§à¦Ÿà¦¿:"
@@ -182,6 +202,11 @@ msgstr "কà§à¦²à¦¿à¦ªà¦¸à¦®à§‚হ"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Track Path"
+msgstr "শà§à¦°à§‡à¦£à§€à¦¬à¦¿à¦¨à§à¦¯à¦¾à¦¸/সারির মান পরিবরà§à¦¤à¦¨ করà§à¦¨"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Toggle this track on/off."
msgstr "বিকà§à¦·à§‡à¦ª-হীন মোড"
@@ -209,6 +234,11 @@ msgid "Time (s): "
msgstr "X-ফেড/বিলীন সময় (সেঃ):"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "সকà§à¦°à¦¿à¦¯à¦¼ করà§à¦¨"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "অবিচà§à¦›à¦¿à¦¨à§à¦¨/নিরবচà§à¦›à¦¿à¦¨à§à¦¨"
@@ -262,6 +292,21 @@ msgid "Delete Key(s)"
msgstr "নোড(সমূহ) অপসারণ করà§à¦¨"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° নাম পরিবরà§à¦¤à¦¨ করà§à¦¨:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° নোড"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° লà§à¦ª পরিবরà§à¦¤à¦¨ করà§à¦¨"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) টà§à¦°à§à¦¯à¦¾à¦• রিমà§à¦­ করà§à¦¨"
@@ -303,6 +348,16 @@ msgid "Anim Insert Key"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡ (Anim) চাবি যোগ করà§à¦¨"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° FPS পরিবরà§à¦¤à¦¨ করà§à¦¨"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Autoload সমূহ পà§à¦¨à¦°à§à¦¬à¦¿à¦¨à§à¦¯à¦¸à§à¦¤ করà§à¦¨"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -327,6 +382,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) টà§à¦°à§à¦¯à¦¾à¦• যোগ করà§à¦¨"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -335,11 +395,26 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦°à§‡à¦° ধরণ"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) টà§à¦°à§à¦¯à¦¾à¦• যোগ করà§à¦¨"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Add Method Track Key"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡ (Anim) টà§à¦°à§à¦¯à¦¾à¦•/পথ à¦à¦¬à¦‚ চাবি যোগ করà§à¦¨"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Method not found in object: "
msgstr "সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿà§‡ চলক-পà§à¦°à¦¾à¦ªà¦• (VariableGet) পাওয়া যায়নি: "
@@ -353,6 +428,11 @@ msgid "Clipboard is empty"
msgstr "রিসোরà§à¦¸à§‡à¦° কà§à¦²à§€à¦ªà¦¬à§‹à¦°à§à¦¡ খালি!"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "মানসমূহ পà§à¦°à¦¤à¦¿à¦²à§‡à¦ªà¦¨/পেসà§à¦Ÿ করà§à¦¨"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° (Anim) চাবিসমূহের আকার পরিবরà§à¦¤à¦¨ করà§à¦¨"
@@ -399,11 +479,6 @@ msgid "Copy Tracks"
msgstr "মানসমূহ পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿/কপি করà§à¦¨"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "মানসমূহ পà§à¦°à¦¤à¦¿à¦²à§‡à¦ªà¦¨/পেসà§à¦Ÿ করà§à¦¨"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহের আকার পরিবরà§à¦¤à¦¨ করà§à¦¨"
@@ -506,6 +581,19 @@ msgstr ""
msgid "Copy"
msgstr "পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿/কপি করà§à¦¨"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "শà§à¦°à§‡à¦£à§€à¦¬à¦¿à¦¨à§à¦¯à¦¾à¦¸/সারি পà§à¦¨à¦°à§à¦®à¦¾à¦ªà¦¨ করà§à¦¨"
@@ -1338,6 +1426,12 @@ msgstr ""
msgid "Packing"
msgstr "পà§à¦¯à¦¾à¦•/গà§à¦šà§à¦›à¦¿à¦¤ করা"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1955,6 +2049,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "'%s' বনà§à¦§ করার পূরà§à¦¬à§‡ পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ সংরকà§à¦·à¦£ করবেন?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "রিসোরà§à¦¸ লোড বà§à¦¯à¦°à§à¦¥ হয়েছে।"
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "বৃহৎ গঠনবিনà§à¦¯à¦¾à¦¸à§‡à¦° জনà§à¦¯ শà§à¦§à§à¦®à¦¾à¦¤à§à¦° à¦à¦•à¦Ÿà¦¿ ফাইল পà§à¦°à§Ÿà§‹à¦œà¦¨à¥¤"
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "দৃশà§à¦¯ à¦à¦‡à¦°à§‚পে সংরকà§à¦·à¦£ করà§à¦¨..."
@@ -3728,12 +3832,49 @@ msgstr "লোড"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "বিনà§à¦¦à§ সরান"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "বà§à¦²à§‡à¦¨à§à¦¡-à¦à¦° সময় পরিবরà§à¦¤à¦¨ করà§à¦¨"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "বà§à¦²à§‡à¦¨à§à¦¡-à¦à¦° সময় পরিবরà§à¦¤à¦¨ করà§à¦¨"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "নোড সংযোজন করà§à¦¨"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ যà§à¦•à§à¦¤ করà§à¦¨"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3776,6 +3917,31 @@ msgid "Triangle already exists"
msgstr "'%s' অà§à¦¯à¦¾à¦•à¦¶à¦¨ ইতিমধà§à¦¯à§‡à¦‡ বিদà§à¦¯à¦®à¦¾à¦¨!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "চলক/ভেরিয়েবল সংযোজন করà§à¦¨"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "বà§à¦²à§‡à¦¨à§à¦¡-à¦à¦° সময় পরিবরà§à¦¤à¦¨ করà§à¦¨"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "বà§à¦²à§‡à¦¨à§à¦¡-à¦à¦° সময় পরিবরà§à¦¤à¦¨ করà§à¦¨"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "পথের বিনà§à¦¦à§ অপসারণ করà§à¦¨"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "চলক/ভেরিয়েবল অপসারণ করà§à¦¨"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
@@ -3784,6 +3950,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "AutoLoad à¦à¦° সারà§à¦¬à¦œà¦¨à§€à¦¨ মানসমূহ অদলবদল/টগল করà§à¦¨"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3802,6 +3973,11 @@ msgid "Blend:"
msgstr "বà§à¦²à§‡à¦¨à§à¦¡/মিশà§à¦°à¦£:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ হাল-নাগাদ করà§à¦¨"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#, fuzzy
msgid "Edit Filters"
@@ -3812,11 +3988,55 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "শাখা (tree) হতে নোড (সমূহ) যà§à¦•à§à¦¤ করà§à¦¨"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "মোড (Mode) সরান"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "সংযোগ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "সংযোগ বিচà§à¦›à¦¿à¦¨à§à¦¨ করà§à¦¨"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "নোড(সমূহ) অপসারণ করà§à¦¨"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "বিকà§à¦·à§‡à¦ª-হীন মোড"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "বà§à¦²à§‡à¦¨à§à¦¡-à¦à¦° সময় পরিবরà§à¦¤à¦¨ করà§à¦¨"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3832,6 +4052,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "নোডের নাম:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -4073,6 +4299,21 @@ msgstr "আনà§à¦¤-অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ বà§à¦²à§‡à¦¨à§à¦¡ সম
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
+msgid "Move Node"
+msgstr "মোড (Mode) সরান"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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
+#, fuzzy
msgid "End"
msgstr "সমাপà§à¦¤à¦¿(সমূহ)"
@@ -4102,6 +4343,20 @@ msgid "No playback resource set at path: %s."
msgstr "রিসোরà§à¦¸à§‡à¦° পথে নয়।"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "অপসারিত:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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"
@@ -4967,6 +5222,10 @@ msgstr "টà§à¦¯à¦¾à¦¨à¦œà§‡à¦¨à§à¦Ÿà¦—à§à¦²à¦¿ আলাদা আলাদà
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 "বসà§à¦¤à§ %d"
@@ -6190,6 +6449,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Mesh হতে Emitter তৈরি করà§à¦¨"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "সà§à¦•à§‡à¦²à§‡à¦Ÿà¦¨/কাঠাম..."
@@ -6308,10 +6576,6 @@ msgid "Vertices"
msgstr "ভারটেকà§à¦¸"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "à¦à¦« পি à¦à¦¸"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "শীরà§à¦· দরà§à¦¶à¦¨à¥¤"
@@ -6356,7 +6620,8 @@ msgid "Rear"
msgstr "পশà§à¦šà¦¾à§Ž"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "দরà§à¦¶à¦¨à§‡à¦° সাথে সারিবদà§à¦§ করà§à¦¨"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6459,6 +6724,12 @@ msgid "Freelook Speed Modifier"
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
#, fuzzy
msgid "View Rotation Locked"
msgstr "তথà§à¦¯ দেখà§à¦¨"
@@ -6469,6 +6740,11 @@ msgstr "XForm à¦à¦° সংলাপ"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª মোড:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid "Select Mode (Q)"
msgstr "মোড (Mode) বাছাই করà§à¦¨"
@@ -6761,10 +7037,6 @@ msgid "Add Empty"
msgstr "খালি বসà§à¦¤à§ যোগ করà§à¦¨"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° লà§à¦ª পরিবরà§à¦¤à¦¨ করà§à¦¨"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° FPS পরিবরà§à¦¤à¦¨ করà§à¦¨"
@@ -7122,6 +7394,11 @@ msgstr "মাউসের ডান বোতাম: বিনà§à¦¦à§ মà§à
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "নতà§à¦¨ তৈরি করà§à¦¨"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "আরমà§à¦­ হতে নতà§à¦¨ polygon তৈরি করà§à¦¨à¥¤"
@@ -7307,6 +7584,29 @@ msgid "TileSet"
msgstr "TileSet (টাইল-সেট)..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "'% s' à¦à¦° জনà§à¦¯ ডিফলà§à¦Ÿ হিসাবে সেট করà§à¦¨"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "শেডার"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "নোড(সমূহ) পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿ করà§à¦¨"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vertex"
msgstr "ভারটেকà§à¦¸"
@@ -7325,6 +7625,16 @@ msgstr "ডান"
msgid "VisualShader"
msgstr "শেডার"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "নোড ফিলà§à¦Ÿà¦¾à¦°à¦¸à¦®à§‚হ সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ হাল-নাগাদ করà§à¦¨"
+
#: editor/project_export.cpp
#, fuzzy
msgid "Runnable"
@@ -7341,10 +7651,17 @@ msgid "Delete preset '%s'?"
msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ফাইলসমূহ অপসারণ করবেন?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
#, fuzzy
@@ -7357,6 +7674,12 @@ msgid "Exporting All"
msgstr "%s à¦à¦° জনà§à¦¯ à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ (export) হচà§à¦›à§‡"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+"à¦à¦‡ পà§à¦²à§à¦¯à¦¾à¦Ÿà¦«à¦°à§à¦®à§‡à¦° জনà§à¦¯ দরকারি à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ টেমপà§à¦²à§‡à¦Ÿà¦—à§à¦²à¦¿ কà§à¦·à¦¤à¦¿à¦—à§à¦°à¦¸à§à¦¥ হয়েছে অথবা খà§à¦à¦œà§‡ পাওয়া "
+"যাচà§à¦›à§‡ না:"
+
+#: editor/project_export.cpp
#, fuzzy
msgid "Presets"
msgstr "পà§à¦°à¦¿à¦¸à§‡à¦Ÿ..."
@@ -8418,6 +8741,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "অরà§à¦¥à¦ªà§‚রà§à¦¨!"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "নোড(সমূহ) অপসারণ করবেন?"
@@ -8453,6 +8781,11 @@ msgstr "সà§à¦¥à¦¾à¦¨à§€à§Ÿ করà§à¦¨"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "অরà§à¦¥à¦ªà§‚রà§à¦¨!"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "নোড তৈরি করà§à¦¨"
@@ -8913,6 +9246,21 @@ msgid "Set From Tree"
msgstr "শাখা হতে সà§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "বহিঃ-সহজাগমন"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "শরà§à¦Ÿà¦•à¦¾à¦Ÿà¦¸à¦®à§‚হ"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "অà§à¦¯à¦¾à¦‚করসমূহ পরিবরà§à¦¤à¦¨ করà§à¦¨"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "শরà§à¦Ÿà¦•à¦¾à¦Ÿà¦¸à¦®à§‚হ"
@@ -9138,6 +9486,11 @@ msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অনà§à¦²à¦¿à¦ªà¦¿ করà§
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
+msgid "GridMap Paint"
+msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª সেটিংস"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Grid Map"
msgstr "গà§à¦°à¦¿à¦¡ সà§à¦¨à§à¦¯à¦¾à¦ª"
@@ -9471,10 +9824,6 @@ msgid "Change Expression"
msgstr "অভিবà§à¦¯à¦•à§à¦¤à¦¿ (Expression) পরিবরà§à¦¤à¦¨ করà§à¦¨"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "নোড সংযোজন করà§à¦¨"
-
-#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Remove VisualScript Nodes"
msgstr "অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯ চাবিসমূহ অপসারণ করà§à¦¨"
@@ -9575,6 +9924,11 @@ msgstr "ইনপà§à¦Ÿ নাম পরিবরà§à¦¤à¦¨ করà§à¦¨"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
+msgid "Resize Comment"
+msgstr "CanvasItem সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨"
+
+#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Can't copy the function node."
msgstr "'..' তে পরিচালনা করা সমà§à¦­à¦¬ নয়"
@@ -10406,6 +10760,9 @@ msgstr ""
msgid "Varyings can only be assigned in vertex function."
msgstr ""
+#~ msgid "FPS"
+#~ msgstr "à¦à¦« পি à¦à¦¸"
+
#, fuzzy
#~ msgid "Warnings:"
#~ msgstr "সতরà§à¦•à¦¤à¦¾"
@@ -10582,10 +10939,6 @@ msgstr ""
#~ msgid "Convert To Lowercase"
#~ msgstr "à¦à¦¤à§‡ রূপানà§à¦¤à¦° করà§à¦¨..."
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª মোড:"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "০ ডিগà§à¦°à¦¿ ঘোরানà§"
@@ -11118,9 +11471,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "সংযোজিত:"
-#~ msgid "Removed:"
-#~ msgstr "অপসারিত:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "à¦à¦Ÿà¦²à¦¾à¦¸/মানচিতà§à¦°à¦¾à¦¬à¦²à§€à¦° উপ-গঠনবিনà§à¦¯à¦¾à¦¸ (subtexture) সংরকà§à¦·à¦£ অসমরà§à¦¥ হয়েছে:"
@@ -11381,9 +11731,6 @@ msgstr ""
#~ msgid "Error importing:"
#~ msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿà§‡ সমসà§à¦¯à¦¾ হয়েছে:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "বৃহৎ গঠনবিনà§à¦¯à¦¾à¦¸à§‡à¦° জনà§à¦¯ শà§à¦§à§à¦®à¦¾à¦¤à§à¦° à¦à¦•à¦Ÿà¦¿ ফাইল পà§à¦°à§Ÿà§‹à¦œà¦¨à¥¤"
-
#~ msgid "Max Texture Size:"
#~ msgstr "গঠনবিনà§à¦¯à¦¾à¦¸à§‡à¦° সরà§à¦¬à§‡à¦¾à¦šà§à¦š আকার:"
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index d43dae0f8e..e8642ec86f 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -85,6 +85,16 @@ msgstr "Duplica les Claus seleccionades"
msgid "Delete Selected Key(s)"
msgstr "Elimina les Claus seleccionades"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Afegeix un punt"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Mou el Punt"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Duplica les Claus"
@@ -114,6 +124,16 @@ msgid "Anim Change Call"
msgstr "Modifica la Crida"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Modifica el bucle d'Animació"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "Modifica el bucle d'Animació"
+
+#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr "Pista de Propietats"
@@ -163,6 +183,11 @@ msgid "Anim Clips:"
msgstr "Talls d'Animació:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Modifica el Valor de la Taula"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Activa/Desactiva la Pista."
@@ -187,6 +212,11 @@ msgid "Time (s): "
msgstr "Temps (s): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Activa Doppler"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Continu"
@@ -237,6 +267,21 @@ msgid "Delete Key(s)"
msgstr "Elimina les Claus"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Modifica el Nom de l'Animació:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Mode d'Interpolació"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Modifica el bucle d'Animació"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Treu la Pista"
@@ -279,6 +324,16 @@ msgid "Anim Insert Key"
msgstr "Insereix una Clau"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Modifica els FPS de l'Animació"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Reorganitza AutoCàrregues"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
"Les pistes de Transformació només s'apliquen a nodes del tipus Espacial."
@@ -310,6 +365,11 @@ msgid "Not possible to add a new track without a root"
msgstr "No es pot afegir una nova pista sense cap arrel"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Afegeix una Pista"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "El camí de la Pista no és vàlid i per tant no s'hi poden afegir claus."
@@ -318,11 +378,26 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "No s'hi pot inserir cap Clau. La pista no és del tipus \"Spatial\""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Pista de Transformació 3D"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Afegeix una Pista"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
"No s'hi pot afegit cap clau de mètode. El camí de la pista no és vàlid."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Pista de Crida de Mètodes"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "No s'ha trobat el mètode en l'objecte: "
@@ -335,6 +410,10 @@ msgid "Clipboard is empty"
msgstr "El porta-retalls és buit"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Enganxa les Pistes"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Escala les Claus"
@@ -378,10 +457,6 @@ msgid "Copy Tracks"
msgstr "Còpia les Pistes"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Enganxa les Pistes"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Escala la Selecció"
@@ -483,6 +558,19 @@ msgstr "Tria les Pistes per copiar:"
msgid "Copy"
msgstr "Copia"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Talls d'Àudio:"
+
+#: 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 "Redimensiona la Matriu"
@@ -1301,6 +1389,12 @@ msgstr ""
msgid "Packing"
msgstr "Compressió"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1896,6 +1990,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Desar els canvis a '%s' abans de tancar?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "No s'ha pogut carregar el recurs."
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Anomena i Desa l'Escena..."
@@ -3548,6 +3651,22 @@ msgstr "Carrega..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Mou el Punt"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Modifica el Temps de Mescla"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Modifica el Temps de Mescla"
+
+#: 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 ""
@@ -3556,6 +3675,27 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Afegeix un Node"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Afegeix una Animació"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Elimina un Punt del Camí"
+
+#: 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 ""
@@ -3597,6 +3737,31 @@ msgid "Triangle already exists"
msgstr "El triangle ja existeix"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Afegeix una Variable"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Modifica el Temps de Mescla"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Modifica el Temps de Mescla"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Elimina un Punt del Camí"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Elimina la Variable"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D no pertany a cap node AnimationTree."
@@ -3605,6 +3770,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "En no haver-hi cap triangle, no es pot mesclar res."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Commuta les Globals d'AutoCàrrega"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Crea triangles connectant punts."
@@ -3622,6 +3792,11 @@ msgid "Blend:"
msgstr "Mescla:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Canvis de Material"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Edita Filtres"
@@ -3631,11 +3806,55 @@ msgid "Output node can't be added to the blend tree."
msgstr "No es pot afegir el node de sortida a l'arbre de mescla."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Node Moved"
+msgstr "Mode de moviment"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr "No es pot connectar. El port és en ús o la connexió no és vàlida."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Connectat"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Desconnectat"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animació"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Elimina els Nodes"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Activa/Desactiva la Pista."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "S'ha Modificat el Filtre de Locale"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"En no haver-se establert cap reproductor d'animacions, no es poden recuperar "
@@ -3653,6 +3872,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Nom del node:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -3891,6 +4116,21 @@ msgstr "Temps de mescla entre Animacions"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
+msgid "Move Node"
+msgstr "Mode de moviment"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Afegeix una Traducció"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Afegeix un Node"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "End"
msgstr "Final/s"
@@ -3920,6 +4160,20 @@ msgid "No playback resource set at path: %s."
msgstr "Fora del camí dels recursos."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Eliminat:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Node de Transició"
+
+#: 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"
@@ -4756,6 +5010,10 @@ msgstr "Prem Maj. per editar les tangents individualment"
msgid "Bake GI Probe"
msgstr "Precalcula la Sonda d'IG"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Element %d"
@@ -5947,6 +6205,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Crea Punts d'Emissió des d'una Malla"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "Singleton"
@@ -6060,10 +6327,6 @@ msgid "Vertices"
msgstr "Vèrtexs"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Vista superior."
@@ -6108,7 +6371,8 @@ msgid "Rear"
msgstr "Darrere"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Alinea amb la Vista"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6202,6 +6466,12 @@ msgid "Freelook Speed Modifier"
msgstr "Modificador de la Velocitat de la Vista Lliure"
#: 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
#, fuzzy
msgid "View Rotation Locked"
msgstr "Mostra la Informació"
@@ -6211,6 +6481,11 @@ msgid "XForm Dialog"
msgstr "Diàleg XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Alinea-ho amb la graella"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Mode Selecció (Q)"
@@ -6497,10 +6772,6 @@ msgid "Add Empty"
msgstr "Afegeix un element Buit"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Modifica el bucle d'Animació"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Modifica els FPS de l'Animació"
@@ -6844,6 +7115,11 @@ msgstr "Elimina un Punt."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Crea Nou %s"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Crea un nou Polígon del no-res."
@@ -7035,6 +7311,29 @@ msgid "TileSet"
msgstr "Tile Set"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Establir com a valor Predeterminat per a '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "Ombreig"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Duplica els Nodes"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vertex"
msgstr "Vèrtexs"
@@ -7054,6 +7353,16 @@ msgstr "Dreta"
msgid "VisualShader"
msgstr "Ombreig"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Edita Filtres"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Canvis de Ombreig"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Executable"
@@ -7067,8 +7376,17 @@ msgid "Delete preset '%s'?"
msgstr "Esborrar la configuració '%s' ?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "Manquen d'exportació per aquesta plataforma o s'han malmès:"
+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
#, fuzzy
@@ -7081,6 +7399,10 @@ msgid "Exporting All"
msgstr "Exportació per a %s"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "Manquen d'exportació per aquesta plataforma o s'han malmès:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Configuracions prestablertes"
@@ -8110,6 +8432,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Entesos!"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Elimina els Nodes?"
@@ -8146,6 +8473,11 @@ msgstr "Local"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Entesos!"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Crea un Node"
@@ -8587,6 +8919,21 @@ msgid "Set From Tree"
msgstr "Estableix des de l'Arbre"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Sortida Lenta"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Dreceres"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Modifica Ancoratges"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Dreceres"
@@ -8804,6 +9151,11 @@ msgid "GridMap Duplicate Selection"
msgstr "Duplica la Selecció del GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "Configuració del GridMap"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Mapa de Graella"
@@ -9107,10 +9459,6 @@ msgid "Change Expression"
msgstr "Modifica l'Expressió"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Afegeix un Node"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Elimina els Nodes de VisualScript"
@@ -9197,6 +9545,11 @@ msgid "Change Input Value"
msgstr "Modifica el Valor de l'Entrada"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Modifica el elementCanvas"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "No es pot copiar el node de funció."
@@ -10062,6 +10415,9 @@ msgstr ""
msgid "Varyings can only be assigned in vertex function."
msgstr ""
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#~ msgid "Warnings:"
#~ msgstr "Avisos:"
@@ -10239,10 +10595,6 @@ msgstr ""
#~ msgid "Convert To Lowercase"
#~ msgstr "Converteix en minúscules"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "Alinea-ho amb la graella"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "Gira-ho 0 graus"
@@ -10754,9 +11106,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "Afegit:"
-#~ msgid "Removed:"
-#~ msgstr "Eliminat:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "No s'ha pogut desar la subtextura de l'atles:"
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index b987e1d8ef..b8c1040589 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -9,13 +9,14 @@
# Luděk Novotný <gladosicek@gmail.com>, 2016, 2018.
# Martin Novák <maidx@seznam.cz>, 2017.
# zxey <r.hozak@seznam.cz>, 2018.
-# Vojtěch Šamla <auzkok@seznam.cz>, 2018.
+# Vojtěch Šamla <auzkok@seznam.cz>, 2018, 2019.
+# Peeter Angelo <contact@peeterangelo.com>, 2019.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-02-10 12:01+0000\n"
-"Last-Translator: Josef KuchaÅ™ <josef.kuchar267@gmail.com>\n"
+"PO-Revision-Date: 2019-02-21 21:18+0000\n"
+"Last-Translator: Vojtěch Šamla <auzkok@seznam.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/"
"cs/>\n"
"Language: cs\n"
@@ -67,9 +68,8 @@ msgstr "Při volání '%s':"
#: editor/animation_bezier_editor.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Free"
-msgstr "Uvolnit"
+msgstr "Volný"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
@@ -85,14 +85,22 @@ msgid "Insert Key Here"
msgstr "Vložit klÃ­Ä zde"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Duplicate Selected Key(s)"
-msgstr "Duplikovat výběr"
+msgstr "Duplikovat klíÄ(e)"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Delete Selected Key(s)"
-msgstr "Smazat vybraný"
+msgstr "Smazat klíÄ(e)"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Přidat bod"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Přesunout body"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
@@ -123,6 +131,16 @@ msgid "Anim Change Call"
msgstr "Animace: změna volání"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "ZmÄ›nit smyÄku animace"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "ZmÄ›nit smyÄku animace"
+
+#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr "Stopa vlastnosti"
@@ -172,12 +190,17 @@ msgid "Anim Clips:"
msgstr "AnimaÄní klipy:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Změnit hodnotu pole"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Aktivovat/Deaktivovat tuto stopu."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr ""
+msgstr "Režim aktualizece (jak je tato vlastnost nastavena)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
@@ -196,6 +219,11 @@ msgid "Time (s): "
msgstr "ÄŒas (s): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Povolit"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Spojité"
@@ -246,6 +274,21 @@ msgid "Delete Key(s)"
msgstr "Odstranit klíÄ(e)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Změnit název animace:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "InterpolaÄní režim"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "ZmÄ›nit smyÄku animace"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Odstranit stopu animace"
@@ -287,6 +330,16 @@ msgid "Anim Insert Key"
msgstr "Animace: vložit klíÄ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Změnit FPS animace"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Přeskupit Autoloady"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -315,6 +368,11 @@ msgid "Not possible to add a new track without a root"
msgstr "Není možné přidat novou stopu bez kořenového uzlu"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Přidat stopu"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -323,10 +381,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "Stopa není typu Spatial, nelze vložit klíÄ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Stopa 3D transformace"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Přidat stopu"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Stopa volání metody"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Tato metoda nebyla v objektu nalezena: "
@@ -339,6 +412,10 @@ msgid "Clipboard is empty"
msgstr "Schránka je prázdná"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Vložit stopy"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Animace: zmÄ›nit měřítko klíÄů"
@@ -381,10 +458,6 @@ msgid "Copy Tracks"
msgstr "Kopírovat stopy"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Vložit stopy"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Změnit měřítko výběru"
@@ -405,14 +478,12 @@ msgid "Delete Selection"
msgstr "Smazat vyběr"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Next Step"
-msgstr "Jít k dalšímu kroku"
+msgstr "Přejít k dalšímu kroku"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Previous Step"
-msgstr "Jít k předchozímu kroku"
+msgstr "Přejít k předchozímu kroku"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -486,6 +557,19 @@ msgstr "Zvolte stopy ke zkopírování:"
msgid "Copy"
msgstr "Kopírovat"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Audio klipy:"
+
+#: 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 "Změnit velikost pole"
@@ -653,9 +737,8 @@ msgid "Disconnect"
msgstr "Odpojit"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect Signal: "
-msgstr "Připojuji signál:"
+msgstr "Připojit Signál: "
#: editor/connections_dialog.cpp
msgid "Edit Connection: "
@@ -1290,29 +1373,30 @@ msgid "Storing File:"
msgstr "Ukládám soubor:"
#: editor/editor_export.cpp
-#, fuzzy
msgid "No export template found at the expected path:"
-msgstr ""
-"Nebyly nalezeny žádné exportní šablony.\n"
-"Stáhněte a nainstalujte exportní šablony."
+msgstr "Na oÄekávané cestÄ› nebyly nalezeny žádné exportní Å¡ablony:"
#: editor/editor_export.cpp
msgid "Packing"
msgstr "Balím"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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 debug template not found."
-msgstr "Vlastní ladící balíÄek nebyl nalezen."
+msgstr "Vlastní ladící šablona nebyla nalezena."
#: 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 "Vlastní balíÄek k uveÅ™ejnÄ›ní nebyl nalezen."
+msgstr "Vlastní šablona k uveřejnění nebyla nalezena."
#: editor/editor_export.cpp platform/javascript/export/export.cpp
msgid "Template file not found:"
@@ -1866,6 +1950,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Uložit změny '%s' před zavřením?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Selhalo nahrání zdroje."
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Uložit scénu jako..."
@@ -2385,9 +2478,8 @@ msgid "Save & Restart"
msgstr "Uložit a restartovat"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Spins when the editor window redraws."
-msgstr "ToÄí se, když se okno pÅ™ekresluje!"
+msgstr "ToÄí se, když se okno editoru pÅ™ekresluje."
#: editor/editor_node.cpp
msgid "Update Always"
@@ -2593,14 +2685,12 @@ msgid "[Empty]"
msgstr "[Prázdné]"
#: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp
-#, fuzzy
msgid "Assign..."
-msgstr "Přiřadit.."
+msgstr "Přiřadit..."
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Invalid RID"
-msgstr "Neplatná cesta"
+msgstr "Neplatné RID"
#: editor/editor_properties.cpp
msgid ""
@@ -3071,11 +3161,11 @@ msgstr "Přejmenovat"
#: editor/filesystem_dock.cpp
msgid "Previous Directory"
-msgstr "Předchozí adresář"
+msgstr "Předchozí složka"
#: editor/filesystem_dock.cpp
msgid "Next Directory"
-msgstr "Následující adresář"
+msgstr "Následující složka"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
@@ -3172,7 +3262,6 @@ msgid "Group name already exists."
msgstr "Název skupiny již existuje."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Invalid group name."
msgstr "Neplatný název skupiny."
@@ -3467,21 +3556,18 @@ msgid "Erase points."
msgstr "Vymazat body."
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Edit Polygon"
-msgstr "Editovat polygon"
+msgstr "Upravit polygon"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Insert Point"
msgstr "Vložit polygon"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Edit Polygon (Remove Point)"
-msgstr "Upravit polygon (Odstranit bod)"
+msgstr "Upravit polygon (odstranit bod)"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Remove Polygon And Point"
msgstr "Odstranit polygon a bod"
@@ -3497,9 +3583,22 @@ msgstr "Přidat animaci"
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Load..."
-msgstr "NaÄíst.."
+msgstr "NaÄíst..."
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Přesunout body"
+
+#: 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
@@ -3509,6 +3608,27 @@ msgstr "Tento typ uzlu nelze použít. Jsou povoleny pouze kořenové uzly."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Přidat uzel"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Přidat animaci"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Odstranit bod cesty"
+
+#: 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 ""
@@ -3548,6 +3668,29 @@ msgid "Triangle already exists"
msgstr "Trojúhelník již existuje"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Přidat proměnnou"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Odstranit bod cesty"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Odstranit proměnnou"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
@@ -3556,6 +3699,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Zobrazit oblíbené"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3573,6 +3721,11 @@ msgid "Blend:"
msgstr "Prolínání:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Změny materiálu"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Editovat filtry"
@@ -3582,11 +3735,55 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Přidat uzel(y) ze stromu"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Režim přesouvání"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Připojeno"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Odpojeno"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Nová animace"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Odstranit uzel/uzly"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Aktivovat/Deaktivovat tuto stopu."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Změnit typ hodnot pole"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3602,10 +3799,15 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#: editor/plugins/visual_shader_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
+msgid "Node Renamed"
+msgstr "Název uzlu"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
-msgstr "Přidat uzel.."
+msgstr "Přidat uzel..."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/root_motion_editor_plugin.cpp
@@ -3614,7 +3816,7 @@ msgstr "Upravit filtrované stopy:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Enable filtering"
-msgstr ""
+msgstr "Povolit filtrování"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
@@ -3675,9 +3877,8 @@ msgid "No animation to copy!"
msgstr "Žádná animace pro kopírování!"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation resource on clipboard!"
-msgstr "Není v cestě ke zdroji."
+msgstr "Ve schránce není žádný zdroj animace!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
@@ -3693,11 +3894,11 @@ msgstr "Žádná animace pro úpravu!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
-msgstr ""
+msgstr "PÅ™ehrát zvolenou animaci pozpátku ze souÄasné pozice. (A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr ""
+msgstr "Přehrát zvolenou animaci pozpátku od konce. (A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Stop animation playback. (S)"
@@ -3742,7 +3943,7 @@ msgstr "Otevřít v inspektoru"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Display list of animations in player."
-msgstr ""
+msgstr "Zobrazit seznam animací v pÅ™ehrávaÄi."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Autoplay on Load"
@@ -3830,6 +4031,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Režim přesouvání"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Přidat překlad"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Přidat uzel"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr "Konec"
@@ -3859,6 +4075,20 @@ msgid "No playback resource set at path: %s."
msgstr "Není v cestě ke zdroji."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Odebrat"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Přechod: "
+
+#: 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"
@@ -3874,9 +4104,8 @@ msgid "Connect nodes."
msgstr "Připojit uzly."
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Remove selected node or transition."
-msgstr "Odstranit vybranou stopu."
+msgstr "Odstranit vybraný uzel nebo přechod."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Toggle autoplay this animation on start, restart or seek to zero."
@@ -3946,7 +4175,6 @@ msgid "Blend 0:"
msgstr "Prolínání 0:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
-#, fuzzy
msgid "Blend 1:"
msgstr "Prolínání 1:"
@@ -4265,9 +4493,8 @@ msgid "Resize CanvasItem"
msgstr "Změnit velikost CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Scale CanvasItem"
-msgstr "Rotovat CanvasItem"
+msgstr "Škálovat CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move CanvasItem"
@@ -4308,9 +4535,8 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
-#, fuzzy
msgid "Zoom Reset"
-msgstr "Oddálit"
+msgstr "Resetovat zoom"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Select Mode"
@@ -4342,9 +4568,8 @@ msgid "Rotate Mode"
msgstr "Režim otáÄení"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Scale Mode"
-msgstr "Režim zvětšování (R)"
+msgstr "Režim škálování"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -4441,9 +4666,8 @@ msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Skeleton Options"
-msgstr "Kostra"
+msgstr "Možnosti kostry"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Bones"
@@ -4469,7 +4693,7 @@ msgstr "Vymazat kosti"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View"
-msgstr "Zobrazit"
+msgstr "Zobrazení"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -4569,9 +4793,8 @@ msgid ""
msgstr ""
#: editor/plugins/collision_polygon_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon3D"
-msgstr "Vytvořit polygon"
+msgstr "Vytvořit Polygon3D"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Edit Poly"
@@ -4669,6 +4892,10 @@ msgstr ""
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 "Položka %d"
@@ -5056,9 +5283,8 @@ msgid "Add Point to Curve"
msgstr "Přidat bod do křivky"
#: editor/plugins/path_2d_editor_plugin.cpp
-#, fuzzy
msgid "Split Curve"
-msgstr "Uzavřít křivku"
+msgstr "Rozdělit křivku"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Point in Curve"
@@ -5181,7 +5407,6 @@ msgid ""
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Sync Bones"
msgstr "Synchronizovat kosti"
@@ -5202,42 +5427,36 @@ msgid ""
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon & UV"
-msgstr "Vytvořit Poly3D"
+msgstr "Vytvořit polygon a UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Internal Vertex"
-msgstr "Vytvořit nové vodorovné vodítko"
+msgstr "Vytvořit vnitřní vrchol"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Remove Internal Vertex"
-msgstr "Odstranit položku"
+msgstr "Odstranit vnitřní vrchol"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Invalid Polygon (need 3 different vertices)"
-msgstr ""
+msgstr "Neplatný polygon (jsou třeba 3 různé vrcholy)"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Add Custom Polygon"
-msgstr "Editovat polygon"
+msgstr "Přidat vlastní polygon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Polygon"
-msgstr "Odstranit polygon a bod"
+msgstr "Odstranit vlastní polygon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Transform UV Map"
msgstr "Transformovat UV mapu"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Transform Polygon"
-msgstr "Typ transformace"
+msgstr "Transformovat polygon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Paint Bone Weights"
@@ -5254,26 +5473,23 @@ msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "UV"
-msgstr ""
+msgstr "UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Points"
-msgstr "Bod"
+msgstr "Body"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Polygons"
-msgstr "Polygon->UV"
+msgstr "Polygony"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Bones"
msgstr "Kosti"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Move Points"
-msgstr "Přesunout bod"
+msgstr "Přesunout body"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Ctrl: Rotate"
@@ -5301,13 +5517,15 @@ msgstr "Změnit měřítko mnohoúhelníku"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create a custom polygon. Enables custom polygon rendering."
-msgstr ""
+msgstr "Vytvořit vlastní polygon. Aktivuje renderování vlastních polygonů."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid ""
"Remove a custom polygon. If none remain, custom polygon rendering is "
"disabled."
msgstr ""
+"Odstranit vlastní polygon. Pokud žádný nezbývá, je renderování vlastních "
+"polygonů deaktivováno."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Paint weights with specified intensity."
@@ -5319,7 +5537,7 @@ msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Radius:"
-msgstr ""
+msgstr "Poloměr:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon->UV"
@@ -5451,31 +5669,27 @@ msgstr "Chyba: nelze naÄíst soubor."
#: editor/plugins/script_editor_plugin.cpp
msgid "Error could not load file."
-msgstr "Chyba nelze naÄíst soubor."
+msgstr "Chyba: nelze naÄíst soubor."
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving file!"
msgstr "Chyba při ukládání souboru!"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error while saving theme."
-msgstr "Chyba při ukládání motivu"
+msgstr "Chyba při ukládání motivu."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error Saving"
-msgstr "Chyba při ukládání"
+msgstr "Chyba ukládání"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error importing theme."
-msgstr "Chyba při importu motivu"
+msgstr "Chyba při importu motivu."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error Importing"
-msgstr "Chyba při importu"
+msgstr "Chyba importu"
#: editor/plugins/script_editor_plugin.cpp
msgid "New TextFile..."
@@ -5511,7 +5725,7 @@ msgstr " Reference třídy"
#: editor/plugins/script_editor_plugin.cpp
msgid "Toggle alphabetical sorting of the method list."
-msgstr ""
+msgstr "Přepnout abecední řazení seznamu metod."
#: editor/plugins/script_editor_plugin.cpp
msgid "Sort"
@@ -5542,9 +5756,8 @@ msgid "File"
msgstr "Soubor"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Open..."
-msgstr "Otevřít"
+msgstr "Otevřít..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Save All"
@@ -5573,9 +5786,8 @@ msgid "Theme"
msgstr "Téma"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Import Theme..."
-msgstr "Importovat motiv"
+msgstr "Importovat motiv..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
@@ -5836,6 +6048,15 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Vytvořit ze scény"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "Skeleton2D"
@@ -5896,9 +6117,8 @@ msgid "Scaling: "
msgstr "Škálování: "
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translating: "
-msgstr "Přechod"
+msgstr "Posun: "
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotating %s degrees."
@@ -5945,10 +6165,6 @@ msgid "Vertices"
msgstr "Vrcholy"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Pohled shora."
@@ -5993,7 +6209,8 @@ msgid "Rear"
msgstr "Zadní"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Zarovnat s výhledem"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6087,6 +6304,12 @@ msgid "Freelook Speed Modifier"
msgstr "Rychlost volného pohledu"
#: 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
#, fuzzy
msgid "View Rotation Locked"
msgstr "Zobrazit informace"
@@ -6096,6 +6319,11 @@ msgid "XForm Dialog"
msgstr "XForm Dialog"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Přichytit k mřížce"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Režim výběru (Q)"
@@ -6376,10 +6604,6 @@ msgid "Add Empty"
msgstr "Přidat prázdný"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "ZmÄ›nit smyÄku animace"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Změnit FPS animace"
@@ -6388,14 +6612,12 @@ msgid "(empty)"
msgstr "(prázdný)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Animations:"
-msgstr "Animace"
+msgstr "Animace:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "New Animation"
-msgstr "Animace"
+msgstr "Nová animace"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Speed (FPS):"
@@ -6562,9 +6784,8 @@ msgid "Many"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Has,Many,Options"
-msgstr "Možnosti"
+msgstr "Má,mnoho,možností"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Tab 1"
@@ -6607,9 +6828,8 @@ msgid "Erase Selection"
msgstr "Vymazat oznaÄené"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Fix Invalid Tiles"
-msgstr "Neplatný název."
+msgstr "Opravit neplatné dlaždice"
#: editor/plugins/tile_map_editor_plugin.cpp
#, fuzzy
@@ -6705,22 +6925,24 @@ msgstr "SlouÄit ze scény"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Copy bitmask."
-msgstr ""
+msgstr "Kopírovat bitovou masku."
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Paste bitmask."
-msgstr "Vložit animaci"
+msgstr "Vložit bitovou masku."
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Erase bitmask."
-msgstr "Vymazat body."
+msgstr "Vymazat bitovou masku."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Vytvořit nové uzly."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
-msgstr "Vytvořit polygon"
+msgstr "Vytvořit nový polygon."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Keep polygon inside region Rect."
@@ -6735,13 +6957,14 @@ msgid "Display Tile Names (Hold Alt Key)"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove selected texture? This will remove all tiles which use it."
-msgstr "Odstranit aktuální texturu z TileSetu"
+msgstr ""
+"Odstranit vybranou texturu? Toto odstraní všechny dlaždice, které ji "
+"používají."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "You haven't selected a texture to remove."
-msgstr ""
+msgstr "Nevybrali jste texturu k odstranění."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from scene? This will overwrite all current tiles."
@@ -6752,9 +6975,8 @@ msgid "Merge from scene?"
msgstr "SlouÄit ze scény?"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove Texture"
-msgstr "Odstranit Å¡ablonu"
+msgstr "Odstranit texturu"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "%s file(s) were not added because was already on the list."
@@ -6779,9 +7001,8 @@ msgid ""
msgstr "Vytvořit složku"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete polygon."
-msgstr "Odstranit body"
+msgstr "Smazat polygon."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -6817,18 +7038,16 @@ msgid "Set Tile Region"
msgstr "Oblast textury"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create Tile"
-msgstr "Vytvořit složku"
+msgstr "Vytvořit dlaždici"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Set Tile Icon"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Tile Bitmask"
-msgstr "Editovat filtry"
+msgstr "Upravit bitovou masku dlaždice"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -6846,18 +7065,16 @@ msgid "Edit Navigation Polygon"
msgstr "VytvoÅ™it navigaÄní polygon"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Paste Tile Bitmask"
-msgstr "Vložit animaci"
+msgstr "Vložit bitovou masku dlaždice"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Clear Tile Bitmask"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove Tile"
-msgstr "Odstranit Å¡ablonu"
+msgstr "Odstranit dlaždici"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -6898,9 +7115,30 @@ msgid "This property can't be changed."
msgstr "Tato vlastnost nemůže být změněna."
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "TileSet"
-msgstr "Soubor:"
+msgstr "TileSet"
+
+#: 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
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "VisualShader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Duplikovat uzel/uzly"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
@@ -6918,6 +7156,16 @@ msgstr "Světlo"
msgid "VisualShader"
msgstr "VisualShader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Editovat filtry"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Změny shaderu"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Spustitelný"
@@ -6932,8 +7180,17 @@ msgid "Delete preset '%s'?"
msgstr "Odstranit předvolbu '%s'?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "Exportní šablony pro tuto platformu chybí nebo jsou poškozené:"
+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"
@@ -6944,6 +7201,10 @@ msgid "Exporting All"
msgstr "Exportování všeho"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "Exportní šablony pro tuto platformu chybí nebo jsou poškozené:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Předvolby"
@@ -6952,9 +7213,8 @@ msgid "Add..."
msgstr "Přidat..."
#: editor/project_export.cpp
-#, fuzzy
msgid "Export Path"
-msgstr "Exportovat projekt"
+msgstr "Exportovat cestu"
#: editor/project_export.cpp
msgid "Resources"
@@ -7001,33 +7261,31 @@ msgstr ""
#: editor/project_export.cpp
msgid "Features"
-msgstr ""
+msgstr "Funkce"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
-msgstr ""
+msgstr "Vlastní (oddÄ›lené Äárkou):"
#: editor/project_export.cpp
msgid "Feature List:"
msgstr "Seznam funkcí:"
#: editor/project_export.cpp
-#, fuzzy
msgid "Script"
-msgstr "Nový skript"
+msgstr "Skript"
#: editor/project_export.cpp
-#, fuzzy
msgid "Script Export Mode:"
-msgstr "Expertní režim:"
+msgstr "Režim exportu skriptů:"
#: editor/project_export.cpp
msgid "Text"
-msgstr ""
+msgstr "Text"
#: editor/project_export.cpp
msgid "Compiled"
-msgstr ""
+msgstr "Zkompilovaný"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
@@ -7035,7 +7293,7 @@ msgstr ""
#: editor/project_export.cpp
msgid "Invalid Encryption Key (must be 64 characters long)"
-msgstr ""
+msgstr "Neplatný Å¡ifrovací klÃ­Ä (musí být dlouhý 64 znaků)"
#: editor/project_export.cpp
msgid "Script Encryption Key (256-bits as hex):"
@@ -7043,17 +7301,15 @@ msgstr ""
#: editor/project_export.cpp
msgid "Export PCK/Zip"
-msgstr ""
+msgstr "Exportovat PCK/Zip"
#: editor/project_export.cpp
-#, fuzzy
msgid "Export mode?"
-msgstr "Expertní režim:"
+msgstr "Režim exportu?"
#: editor/project_export.cpp
-#, fuzzy
msgid "Export All"
-msgstr "Exportovat"
+msgstr "Exportovat vše"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing:"
@@ -7069,15 +7325,15 @@ msgstr "Cesta neexistuje."
#: editor/project_manager.cpp
msgid "Invalid '.zip' project file, does not contain a 'project.godot' file."
-msgstr ""
+msgstr "Neplatný projektový '.zip' soubor; neobsahuje soubor 'project.godot'."
#: editor/project_manager.cpp
msgid "Please choose an empty folder."
-msgstr ""
+msgstr "Zvolte prosím prázdnou složku."
#: editor/project_manager.cpp
msgid "Please choose a 'project.godot' or '.zip' file."
-msgstr ""
+msgstr "Zvolte prosím soubor 'project.godot' nebo '.zip'."
#: editor/project_manager.cpp
msgid "Directory already contains a Godot project."
@@ -7088,9 +7344,8 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid Project Name."
-msgstr "Jméno projektu:"
+msgstr "Neplatný název projektu."
#: editor/project_manager.cpp
msgid "Couldn't create folder."
@@ -7216,9 +7471,8 @@ msgid "Unnamed Project"
msgstr "Nepojmenovaný projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Can't open project at '%s'."
-msgstr "Nelze otevřít projekt"
+msgstr "Nelze otevřít projekt v '%s'."
#: editor/project_manager.cpp
msgid "Are you sure to open more than one project?"
@@ -7349,7 +7603,6 @@ msgid "Mouse Button"
msgstr "TlaÄítko myÅ¡i"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid ""
"Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'"
@@ -7375,9 +7628,8 @@ msgid "Add Input Action Event"
msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "All Devices"
-msgstr "Zařízení"
+msgstr "Všechna zařízení"
#: editor/project_settings_editor.cpp
msgid "Device"
@@ -7513,13 +7765,12 @@ msgid "Delete Item"
msgstr "Odstranit položku"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid ""
"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'."
msgstr ""
"Neplatné jméno akce. Nesmí být prázdné nebo obsahovat '/', ':', '=', '\\' "
-"nebo '\"'"
+"nebo '\"'."
#: editor/project_settings_editor.cpp
msgid "Already existing"
@@ -7603,9 +7854,8 @@ msgid "Action:"
msgstr "Akce:"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Action"
-msgstr "Akce:"
+msgstr "Akce"
#: editor/project_settings_editor.cpp
msgid "Deadzone"
@@ -7740,9 +7990,8 @@ msgid "Can't load back converted image using PVRTC tool:"
msgstr ""
#: editor/rename_dialog.cpp editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Batch Rename"
-msgstr "Rozlišovat malá/velká"
+msgstr "Dávkové přejmenování"
#: editor/rename_dialog.cpp
msgid "Prefix"
@@ -7753,9 +8002,8 @@ msgid "Suffix"
msgstr "Sufix"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Advanced options"
-msgstr "Možnosti přichytávání"
+msgstr "PokroÄilé možnosti"
#: editor/rename_dialog.cpp
msgid "Substitute"
@@ -7797,7 +8045,7 @@ msgstr ""
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
-msgstr ""
+msgstr "PoÄáteÄní hodnota pro poÄítadlo"
#: editor/rename_dialog.cpp
msgid "Step"
@@ -7816,6 +8064,8 @@ msgid ""
"Minimum number of digits for the counter.\n"
"Missing digits are padded with leading zeros."
msgstr ""
+"Minimální poÄet Äíslic poÄítadla.\n"
+"ChybÄ›jící Äíslice budou nahrazeny nulami."
#: editor/rename_dialog.cpp
msgid "Regular Expressions"
@@ -7850,9 +8100,8 @@ msgid "To Uppercase"
msgstr "Na velká písmena"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Reset"
-msgstr "Obnovit původní přiblížení"
+msgstr "Resetovat"
#: editor/rename_dialog.cpp
msgid "Error"
@@ -7949,6 +8198,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Dává smysl!"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Odstranit uzel/uzly?"
@@ -7985,27 +8239,28 @@ msgstr "Místní"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Dává smysl!"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
-msgstr "Vytvořit uzel"
+msgstr "Vytvořit kořenový uzel:"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "2D Scene"
-msgstr "Scéna"
+msgstr "2D scéna"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "3D Scene"
-msgstr "Scéna"
+msgstr "3D scéna"
#: editor/scene_tree_dock.cpp
msgid "User Interface"
-msgstr ""
+msgstr "Uživatelské rozhraní"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Custom Node"
-msgstr "Vyjmout uzly"
+msgstr "Vlastní uzel"
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes from a foreign scene!"
@@ -8046,9 +8301,8 @@ msgid "Clear Inheritance"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Open documentation"
-msgstr "Otevřít Godot online dokumentaci"
+msgstr "Otevřít dokumentaci"
#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)"
@@ -8146,7 +8400,6 @@ msgid ""
msgstr ""
#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp
-#, fuzzy
msgid "Open Script"
msgstr "Otevřít skript"
@@ -8218,9 +8471,8 @@ msgid "Path is empty"
msgstr "Cesta je prázdná"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Filename is empty"
-msgstr "Sprite je prázdný!"
+msgstr "Název souboru je prázdný"
#: editor/script_create_dialog.cpp
msgid "Path is not local"
@@ -8277,7 +8529,7 @@ msgstr "Vytvořit nový soubor skriptu"
#: editor/script_create_dialog.cpp
msgid "Load existing script file"
-msgstr ""
+msgstr "NaÄíst existující soubor skriptu"
#: editor/script_create_dialog.cpp
msgid "Language"
@@ -8408,6 +8660,21 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Zkratky"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Zkratky"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Upravit kotvy"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Zkratky"
@@ -8622,6 +8889,11 @@ msgid "GridMap Duplicate Selection"
msgstr "GridMap Duplikovat výběr"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "Nastavení GridMap"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8760,9 +9032,8 @@ msgid "Build Project"
msgstr "Sestavit projekt"
#: modules/mono/editor/mono_bottom_panel.cpp
-#, fuzzy
msgid "View log"
-msgstr "Zobrazit soubory"
+msgstr "Zobrazit logy"
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
@@ -8926,10 +9197,6 @@ msgid "Change Expression"
msgstr "Změnit výraz"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Přidat uzel"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Odstranit uzly VisualScriptu"
@@ -9018,6 +9285,11 @@ msgid "Change Input Value"
msgstr "Změnit vstupní hodnotu"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Změnit velikost CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
@@ -9853,6 +10125,9 @@ msgstr ""
msgid "Varyings can only be assigned in vertex function."
msgstr ""
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#~ msgid "Warnings:"
#~ msgstr "Varování:"
@@ -9997,10 +10272,6 @@ msgstr ""
#~ msgid "Convert To Lowercase"
#~ msgstr "Konvertovat na malá písmena"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "Přichytit k mřížce"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "OtoÄit o 0 stupňů"
diff --git a/editor/translations/da.po b/editor/translations/da.po
index 41e00e3cbf..fe271a62a6 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -91,6 +91,16 @@ msgstr "Duplikér valgte nøgle(r)"
msgid "Delete Selected Key(s)"
msgstr "Slet valgte nøgle(r)"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Tilføj punkt"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Fjern punkt"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Anim Dublikér Nøgle"
@@ -120,6 +130,16 @@ msgid "Anim Change Call"
msgstr "Anim Skift Call"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Ændre Animation Navn:"
+
+#: 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 "Egenskabsbane"
@@ -169,6 +189,11 @@ msgid "Anim Clips:"
msgstr "Anim klip:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Ændre Array-Værdi"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Slå spor til/fra."
@@ -193,6 +218,10 @@ msgid "Time (s): "
msgstr "Tid (s): "
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Kontinuerlig"
@@ -243,6 +272,21 @@ msgid "Delete Key(s)"
msgstr "Slet nøgle(r)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Ændre Animation Navn:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Interpolationsmetode"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Ændre Anim Løkke"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Fjern Anim Spor"
@@ -284,6 +328,16 @@ msgid "Anim Insert Key"
msgstr "Anim Indsæt Nøgle"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Ændre Animation Navn:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Flytte om på Autoloads"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "Transformeringsspor kan kun anvendes på rumlige noder."
@@ -313,6 +367,11 @@ msgid "Not possible to add a new track without a root"
msgstr "Det er ikke muligt at tilføje et nyt spor uden en rod"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Tilføj Spor"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "Sporstien er ugyldig, så kan ikke tilføje en nøgle."
@@ -321,10 +380,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "Spor er ikke af typen Spatial, kan ikke indsætte nøgle"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "3D-transformationsspor"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Tilføj Spor"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr "Sporstien er ugyldig, så kan ikke tilføje en metode nøgle."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Kald metode spor"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Metode ikke fundet i objekt: "
@@ -337,6 +411,10 @@ msgid "Clipboard is empty"
msgstr "Udklipsholder er tom"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Indsæt Spor"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Anim Skaler Nøgler"
@@ -381,10 +459,6 @@ msgid "Copy Tracks"
msgstr "Kopier Spor"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Indsæt Spor"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Skalér Valgte"
@@ -484,6 +558,19 @@ msgstr "Vælg spor til kopiering:"
msgid "Copy"
msgstr "Kopier"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Lydklip:"
+
+#: 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 "Ændre størrelsen på Array"
@@ -1295,6 +1382,12 @@ msgstr ""
msgid "Packing"
msgstr "Pakker"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1870,6 +1963,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Gem ændringer til '%s' før lukning?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Fejler med at indlæse ressource."
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Gem Scene Som..."
@@ -3540,12 +3642,47 @@ msgstr "Indlæs"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Fjern punkt"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Tilføj Node"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Tilføj animation"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Fjern Poly og Punkt"
+
+#: 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 ""
@@ -3587,6 +3724,29 @@ msgid "Triangle already exists"
msgstr "FEJL: Animationsnavn eksisterer allerede!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Tilføj variabel"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Fjern Poly og Punkt"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Fjern Variabel"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
@@ -3595,6 +3755,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Skift AutoIndlæs Globalt"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3612,6 +3777,11 @@ msgid "Blend:"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Skift Shader"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Rediger filtre"
@@ -3621,11 +3791,55 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "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:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Tilsluttet"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Afbrudt"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Ny Animation Navn:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Vælg Node"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Slå spor til/fra."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Ændret Lokalfilter"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3641,6 +3855,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Node Navn:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -3878,6 +4098,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Flyt Node(s)"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Overgang"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Tilføj Node"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr ""
@@ -3907,6 +4142,20 @@ msgid "No playback resource set at path: %s."
msgstr "Ikke i stien for ressource."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Fjern"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Overgang"
+
+#: 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"
@@ -4723,6 +4972,10 @@ msgstr ""
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 ""
@@ -5909,6 +6162,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Spil Brugerdefineret Scene"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "Singleton"
@@ -6020,10 +6282,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -6068,7 +6326,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6161,6 +6419,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6169,6 +6433,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Select Mode (Q)"
msgstr "Vælg Mode (Q)\n"
@@ -6451,10 +6719,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6793,6 +7057,11 @@ msgstr "Slet points"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Opret Ny %s"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Opret Poly"
@@ -6977,6 +7246,28 @@ msgid "TileSet"
msgstr "TileSet..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Sæt som Standard for '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Dublikér nøgle(r)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6993,6 +7284,16 @@ msgstr ""
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Rediger filtre"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Skift Shader"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -7006,7 +7307,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -7019,6 +7329,10 @@ msgid "Exporting All"
msgstr "Eksporter"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -8024,6 +8338,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Gem Scene"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8059,6 +8378,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Gem Scene"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Opret Mappe"
@@ -8484,6 +8808,19 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Slet valgte"
+
+#: editor/settings_config_dialog.cpp
+msgid "Restore Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Change Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr ""
@@ -8694,6 +9031,10 @@ msgid "GridMap Duplicate Selection"
msgstr "GridMap Duplikér Markerede"
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -9002,10 +9343,6 @@ msgid "Change Expression"
msgstr "Skift udtryk"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Tilføj Node"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Fjern VisualScript Nodes"
@@ -9088,6 +9425,10 @@ msgid "Change Input Value"
msgstr "Ændre Input Værdi"
#: 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 ""
@@ -10074,9 +10415,6 @@ msgstr ""
#~ msgid "Change Anim Len"
#~ msgstr "Ændre Anim Længde"
-#~ msgid "Change Anim Loop"
-#~ msgstr "Ændre Anim Løkke"
-
#~ msgid "Anim Create Typed Value Key"
#~ msgstr "Anim Opret Indtastet Værdi Nøgle"
diff --git a/editor/translations/de.po b/editor/translations/de.po
index 5ee82b5d7a..9cf2dc4a85 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -37,12 +37,13 @@
# ssantos <ssantos@web.de>, 2018.
# Rémi Verschelde <akien@godotengine.org>, 2019.
# Martin <martinreininger@gmx.net>, 2019.
+# Andreas During <anduring@web.de>, 2019.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-02-13 23:10+0000\n"
-"Last-Translator: Martin <martinreininger@gmx.net>\n"
+"PO-Revision-Date: 2019-03-01 11:59+0000\n"
+"Last-Translator: Andreas During <anduring@web.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
"Language: de\n"
@@ -67,7 +68,7 @@ msgstr ""
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "Ungültige Eingabe %i (nicht bestanden) in Ausdruck"
+msgstr "Ungültige Eingabe %i (nicht übergeben) im Ausdruck"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
@@ -118,6 +119,16 @@ msgstr "Ausgewählte Schlüssel duplizieren"
msgid "Delete Selected Key(s)"
msgstr "Ausgewählte Schlüssel löschen"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Punkt hinzufügen"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Punkte Verschieben"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Schlüsselbild duplizieren"
@@ -147,6 +158,16 @@ msgid "Anim Change Call"
msgstr "Aufruf ändern"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Bearbeite Animationsschleife"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "Bearbeite Animationsschleife"
+
+#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr "Eigenschaftenspur"
@@ -196,6 +217,11 @@ msgid "Anim Clips:"
msgstr "Animationsschnipsel:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Array-Wert ändern"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Diese Spur an-/abschalten."
@@ -220,6 +246,11 @@ msgid "Time (s): "
msgstr "Zeit (s): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Dopplereffekt aktivieren"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Fortlaufend"
@@ -270,6 +301,21 @@ msgid "Delete Key(s)"
msgstr "Schlüsselbilder entfernen"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Animationsname ändern:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Interpolationsmodus"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Bearbeite Animationsschleife"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Spur entfernen"
@@ -311,6 +357,16 @@ msgid "Anim Insert Key"
msgstr "Schlüsselbild einfügen"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Ändere FPS-Wert der Animation"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Autoloads neu anordnen"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "Transformationsspuren gelten nur für Nodes die auf Spatial basieren."
@@ -340,6 +396,11 @@ msgid "Not possible to add a new track without a root"
msgstr "Ohne eine Wurzel kann keine neue Spur hinzugefügt werden"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Spur hinzufügen"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "Spurpfad ist ungültig, Schlüssel kann nicht hinzugefügt werden."
@@ -349,11 +410,26 @@ msgstr ""
"Spur ist nicht vom Typ Spatial, Schlüssel kann nicht hinzugefügt werden"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "3D-Transformspur"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Spur hinzufügen"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
"Spurpfad ist ungültig, Methoden-Schlüssel kann nicht hinzugefügt werden."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Methodenaufrufsspur"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Methode nicht im Objekt gefunden: "
@@ -366,6 +442,10 @@ msgid "Clipboard is empty"
msgstr "Zwischenablage ist leer"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Spuren einfügen"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Schlüsselbilder skalieren"
@@ -410,10 +490,6 @@ msgid "Copy Tracks"
msgstr "Spuren kopieren"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Spuren einfügen"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Auswahl skalieren"
@@ -513,6 +589,19 @@ msgstr "Zu kopierende Spuren auswählen:"
msgid "Copy"
msgstr "Kopieren"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Audioschnipsel:"
+
+#: 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 "Größe des Arrays ändern"
@@ -582,9 +671,8 @@ msgid "Warnings"
msgstr "Warnungen"
#: editor/code_editor.cpp
-#, fuzzy
msgid "Line and column numbers."
-msgstr "Zeilen- und Spaltennummern"
+msgstr "Zeilen- und Spaltennummern."
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
@@ -1147,9 +1235,8 @@ msgid "Add Bus"
msgstr "Audiobus hinzufügen"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "Audiobus-Layout speichern als..."
+msgstr "Neuen Audio-Bus diesem Layout hinzufügen."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1330,6 +1417,12 @@ msgstr "Keine Exportvorlagen am erwarteten Pfad gefunden:"
msgid "Packing"
msgstr "Packe"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1652,7 +1745,7 @@ msgstr "Setze"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
-msgstr "Setze mehrere:"
+msgstr "Mehrfach einstellen:"
#: editor/editor_log.cpp
msgid "Output:"
@@ -1909,6 +2002,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "Änderungen in ‚%s‘ vor dem Schließen speichern?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Laden der Ressource gescheitert."
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "Es ist nur eine Datei für eine große Textur erforderlich."
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Szene speichern als..."
@@ -2188,7 +2291,7 @@ msgstr "Mesh-Bibliothek..."
#: editor/editor_node.cpp
msgid "TileSet..."
-msgstr "Tile Set…"
+msgstr "TileSet…"
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
@@ -2439,9 +2542,8 @@ msgid "Save & Restart"
msgstr "Speichern & Neu starten"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Spins when the editor window redraws."
-msgstr "Dreht sich, wenn das Editorfenster neu gezeichnet wird!"
+msgstr "Dreht sich, wenn das Editorfenster neu gezeichnet wird."
#: editor/editor_node.cpp
msgid "Update Always"
@@ -3559,6 +3661,22 @@ msgstr "Lade..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Punkte Verschieben"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Überblendungszeit ändern"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Überblendungszeit ändern"
+
+#: 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 ""
@@ -3566,6 +3684,27 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Node hinzufügen"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Animation hinzufügen"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Pfadpunkt entfernen"
+
+#: 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 ""
@@ -3608,6 +3747,31 @@ msgid "Triangle already exists"
msgstr "Dreieck existiert bereits"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Variable hinzufügen"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Überblendungszeit ändern"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Überblendungszeit ändern"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Pfadpunkt entfernen"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Variable entfernen"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D gehört nicht zu einem AnimationTree-Node."
@@ -3616,6 +3780,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "Es existieren keine Dreiecke, Vermischen nicht möglich."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Autoload-Globals umschalten"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Dreiecke durch Punkteverbinden herstellen."
@@ -3633,6 +3802,11 @@ msgid "Blend:"
msgstr "Blende:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Materialänderungen"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Filter bearbeiten"
@@ -3642,6 +3816,17 @@ msgid "Output node can't be added to the blend tree."
msgstr "Ausgabe-Node kann nicht zum Mischungsbaum hinzugefügt werden."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Node(s) aus Szenenbaum hinzufügen"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Bewegungsmodus"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
@@ -3649,6 +3834,39 @@ msgstr ""
"Verbindung ist ungültig."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Verbunden"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Getrennt"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Neue Animation"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Node(s) löschen"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Diese Spur an-/abschalten."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Sprachfilter geändert"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"Kein Animationsspieler festgelegt, Spurnamen können nicht abgerufen werden."
@@ -3668,6 +3886,12 @@ msgstr ""
"nicht abgerufen werden."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Node-Name"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "Knoten hinzufügen....."
@@ -3893,6 +4117,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Ãœbergangszeiten kreuzender Animationen"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Bewegungsmodus"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Übersetzung hinzufügen"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Node hinzufügen"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr "Ende"
@@ -3921,6 +4160,20 @@ msgid "No playback resource set at path: %s."
msgstr "Keine Abspiel-Ressource festgelegt im Pfad: %s."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Entfernt:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Ãœbergangs-Node"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Set Start Node (Autoplay)"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid ""
"Select and move nodes.\n"
"RMB to add new nodes.\n"
@@ -4744,6 +4997,10 @@ msgstr "Umsch halten um Tangenten einzeln zu bearbeiten"
msgid "Bake GI Probe"
msgstr "GI Sonde vorrendern"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Element %d"
@@ -5273,6 +5530,8 @@ msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
msgstr ""
+"Dieses Polygon2D enthält interne Vertices, es kann nicht mehr im Viewport "
+"bearbeitet werden."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon & UV"
@@ -5895,6 +6154,16 @@ msgstr ""
"hinzugefügt werden."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Ruhe-Pose erstellen (aus Knochen)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Set Rest Pose to Bones"
+msgstr "Ruhe-Pose erstellen (aus Knochen)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "Skeleton2D"
@@ -6003,10 +6272,6 @@ msgid "Vertices"
msgstr "Vertices"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Sicht von oben."
@@ -6051,7 +6316,8 @@ msgid "Rear"
msgstr "Hinten"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Auf Sicht ausrichten"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6143,6 +6409,12 @@ msgid "Freelook Speed Modifier"
msgstr "Freisicht Geschwindigkeitsregler"
#: 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 "View Rotation Locked"
msgstr "Sichtrotation gesperrt"
@@ -6151,6 +6423,11 @@ msgid "XForm Dialog"
msgstr "Transformationsdialog"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Am Boden einrasten"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Auswahlmodus (Q)"
@@ -6432,10 +6709,6 @@ msgid "Add Empty"
msgstr "Empty einfügen"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Bearbeite Animationsschleife"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Ändere FPS-Wert der Animation"
@@ -6761,6 +7034,11 @@ msgid "Erase bitmask."
msgstr "Bitmaske löschen."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Neue Nodes erstellen."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "Neues Polygon erstellen."
@@ -6941,6 +7219,29 @@ msgid "TileSet"
msgstr "TileSet"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Als Standard für ‚%s‘ setzen"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "VisualShader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Dupliziere Node(s)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vertex"
@@ -6956,6 +7257,16 @@ msgstr "Licht"
msgid "VisualShader"
msgstr "VisualShader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Kachelpriorität bearbeiten"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Shader-Änderungen"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "ausführbar"
@@ -6969,8 +7280,17 @@ msgid "Delete preset '%s'?"
msgstr "Vorlage ‚%s‘ löschen?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "Export-Vorlagen für dieses Systeme fehlen / sind fehlerhaft:"
+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"
@@ -6981,6 +7301,10 @@ msgid "Exporting All"
msgstr "Exportiere alles"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "Export-Vorlagen für dieses Systeme fehlen / sind fehlerhaft:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Vorlagen"
@@ -7537,7 +7861,7 @@ msgstr "Ereignis hinzufügen"
#: editor/project_settings_editor.cpp
msgid "Button"
-msgstr "Button"
+msgstr "Taste"
#: editor/project_settings_editor.cpp
msgid "Left Button."
@@ -8021,6 +8345,11 @@ msgid "Instantiated scenes can't become root"
msgstr "Instantiierte Szenen können keine Wurzel werden"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Szenen-Wurzel erstellen"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Node(s) wirklich löschen?"
@@ -8057,6 +8386,11 @@ msgid "Make Local"
msgstr "Lokal machen"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "Szenen-Wurzel erstellen"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "Erzeuge Wurzel-Node:"
@@ -8486,6 +8820,21 @@ msgid "Set From Tree"
msgstr "Nach Szenenbaum einstellen"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Ausspannen"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Tastenkürzel"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Ankerpunkte ändern"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Tastenkürzel"
@@ -8692,6 +9041,10 @@ msgid "GridMap Duplicate Selection"
msgstr "GridMap-Auswahl duplizieren"
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr "GridMap zeichnen"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Gitterkarte"
@@ -8994,10 +9347,6 @@ msgid "Change Expression"
msgstr "Ausdruck ändern"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Node hinzufügen"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "VisualScript-Nodes entfernen"
@@ -9082,6 +9431,11 @@ msgid "Change Input Value"
msgstr "Eingabewert ändern"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "CanvasItem in Größe anpassen"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "Das Function-Node kann nicht kopiert werden."
@@ -9878,9 +10232,8 @@ msgid "Switch between hexadecimal and code values."
msgstr "Wechselt zwischen Hexadezimal- und Zahlenwerten."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Add current color as a preset."
-msgstr "Füge aktuelle Farbe als Vorlage hinzu"
+msgstr "Aktuelle Farbe als Vorlage hinzufügen."
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -9978,6 +10331,9 @@ msgstr "Zuweisung an Uniform."
msgid "Varyings can only be assigned in vertex function."
msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden."
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#~ msgid "Warnings:"
#~ msgstr "Warnungen:"
@@ -10151,9 +10507,6 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden."
#~ msgid "Convert To Lowercase"
#~ msgstr "In Kleinbuchstaben konvertieren"
-#~ msgid "Snap To Floor"
-#~ msgstr "Am Boden einrasten"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "Drehe auf 0 Grad"
@@ -10691,9 +11044,6 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden."
#~ msgid "Added:"
#~ msgstr "Hinzugefügt:"
-#~ msgid "Removed:"
-#~ msgstr "Entfernt:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "Atlas Untertextur konnte nicht gespeichert werden:"
@@ -10962,9 +11312,6 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden."
#~ msgid "Error importing:"
#~ msgstr "Fehler beim importieren:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "Es ist nur eine Datei für eine große Textur erforderlich."
-
#~ msgid "Max Texture Size:"
#~ msgstr "Maximale Texturgröße:"
@@ -11191,9 +11538,6 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden."
#~ msgid "Resource Tools"
#~ msgstr "Ressourcenwerkzeuge"
-#~ msgid "GridMap Paint"
-#~ msgstr "GridMap zeichnen"
-
#~ msgid "Tiles"
#~ msgstr "Kacheln"
diff --git a/editor/translations/de_CH.po b/editor/translations/de_CH.po
index e324a988d5..74fd313a4a 100644
--- a/editor/translations/de_CH.po
+++ b/editor/translations/de_CH.po
@@ -87,6 +87,16 @@ msgstr "Node(s) duplizieren"
msgid "Delete Selected Key(s)"
msgstr "Node(s) löschen"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Script hinzufügen"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Ungültige Bilder löschen"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Anim Bilder duplizieren"
@@ -116,6 +126,16 @@ msgid "Anim Change Call"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Typ ändern"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr ""
@@ -168,6 +188,10 @@ 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 ""
@@ -194,6 +218,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -246,6 +274,21 @@ msgid "Delete Key(s)"
msgstr "Node(s) löschen"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Typ ändern"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Animations-Node"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Animations-Node"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr ""
@@ -287,6 +330,16 @@ msgid "Anim Insert Key"
msgstr "Anim Bild einfügen"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Bild einfügen"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Node erstellen"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -311,6 +364,10 @@ msgid "Not possible to add a new track without a root"
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 ""
@@ -319,10 +376,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Transformationstyp"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Anim Ebene und Bild einfügen"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Anim Ebene und Bild einfügen"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -335,6 +407,11 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "Node erstellen"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Anim verlängern"
@@ -380,11 +457,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Node erstellen"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -485,6 +557,18 @@ msgstr ""
msgid "Copy"
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 ""
@@ -1292,6 +1376,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1850,6 +1940,14 @@ 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 ""
@@ -3486,12 +3584,47 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Ungültige Bilder löschen"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Node"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Animations-Node"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Ungültige Bilder löschen"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Move BlendSpace1D Node Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid ""
@@ -3532,6 +3665,29 @@ msgid "Triangle already exists"
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Script hinzufügen"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Ungültige Bilder löschen"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Ungültige Bilder löschen"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
@@ -3540,6 +3696,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Autoplay Umschalten"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3557,6 +3718,11 @@ msgid "Blend:"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Typ ändern"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#, fuzzy
msgid "Edit Filters"
@@ -3567,11 +3733,53 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Node von Szene"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Bild bewegen/einfügen"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Verbindung zu Node:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Nodes Disconnected"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Bild einfügen"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Node(s) löschen"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Toggle Filter On/Off"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Typ ändern"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3587,6 +3795,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Node"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -3825,6 +4039,22 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Bild bewegen/einfügen"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Transition-Node"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Add Node"
+msgstr "Node"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr ""
@@ -3853,6 +4083,20 @@ msgid "No playback resource set at path: %s."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Node"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Transition-Node"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Set Start Node (Autoplay)"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid ""
"Select and move nodes.\n"
"RMB to add new nodes.\n"
@@ -4676,6 +4920,10 @@ msgstr ""
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 ""
@@ -5851,6 +6099,15 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Spiele angepasste Szene"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr ""
@@ -5963,10 +6220,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -6011,7 +6264,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6104,6 +6357,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6112,6 +6371,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Select Mode (Q)"
msgstr "Selektiere Node(s) zum Importieren aus"
@@ -6394,10 +6657,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6739,6 +6998,11 @@ msgstr "Oberfläche %d"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Node erstellen"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Node erstellen"
@@ -6922,6 +7186,27 @@ msgid "TileSet"
msgstr "Datei(en) öffnen"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Input Default Port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Node(s) duplizieren"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6937,6 +7222,16 @@ msgstr ""
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Node Filter editieren"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Typ ändern"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -6950,7 +7245,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6962,6 +7266,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7973,6 +8281,10 @@ 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 Node(s)?"
msgstr "Node(s) löschen?"
@@ -8007,6 +8319,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Create Root Node:"
msgstr "Node erstellen"
@@ -8436,6 +8752,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8642,6 +8970,11 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "Projekteinstellungen"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8948,11 +9281,6 @@ msgstr "Typ ändern"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
-msgid "Add Node"
-msgstr "Node"
-
-#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove VisualScript Nodes"
msgstr "Ungültige Bilder löschen"
@@ -9043,6 +9371,10 @@ msgid "Change Input Value"
msgstr "Typ ändern"
#: modules/visual_script/visual_script_editor.cpp
+msgid "Resize Comment"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index 1565bb3f12..efb591227c 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -76,6 +76,14 @@ msgstr ""
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 ""
@@ -105,6 +113,15 @@ msgid "Anim 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 ""
@@ -154,6 +171,10 @@ 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 ""
@@ -178,6 +199,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -228,6 +253,18 @@ 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 ""
@@ -269,6 +306,14 @@ 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 ""
@@ -293,6 +338,10 @@ msgid "Not possible to add a new track without a root"
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 ""
@@ -301,10 +350,22 @@ 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 ""
@@ -317,6 +378,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -359,10 +424,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -462,6 +523,18 @@ msgstr ""
msgid "Copy"
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 ""
@@ -1254,6 +1327,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1794,6 +1873,14 @@ 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 ""
@@ -3369,12 +3456,43 @@ 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 ""
@@ -3414,6 +3532,26 @@ 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 ""
@@ -3422,6 +3560,10 @@ 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 ""
@@ -3439,6 +3581,10 @@ 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 ""
@@ -3448,11 +3594,47 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+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 ""
@@ -3468,6 +3650,11 @@ msgid ""
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 ""
@@ -3693,6 +3880,19 @@ 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 "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 ""
@@ -3721,6 +3921,18 @@ 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"
@@ -4519,6 +4731,10 @@ msgstr ""
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 ""
@@ -5656,6 +5872,14 @@ 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 ""
@@ -5764,10 +5988,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5812,7 +6032,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -5904,6 +6124,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5912,6 +6138,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6188,10 +6418,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6517,6 +6743,10 @@ 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 ""
@@ -6679,6 +6909,26 @@ msgid "TileSet"
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 "Duplicate Nodes"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6694,6 +6944,14 @@ msgstr ""
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 ""
@@ -6707,7 +6965,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6719,6 +6986,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7695,6 +7966,10 @@ 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 Node(s)?"
msgstr ""
@@ -7729,6 +8004,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr ""
@@ -8141,6 +8420,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8345,6 +8636,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8639,10 +8934,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8723,6 +9014,10 @@ 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 ""
diff --git a/editor/translations/el.po b/editor/translations/el.po
index 4895fc6b98..e5e0a8a5a3 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -85,6 +85,16 @@ msgstr "Διπλασιασμός επιλογής"
msgid "Delete Selected Key(s)"
msgstr "ΔιαγÏαφή επιλογής"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "ΠÏοσθήκη σημείου"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Μετακίνηση σημείου"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Anim Διπλασιασμός κλειδιών"
@@ -114,6 +124,16 @@ msgid "Anim Change Call"
msgstr "Anim Αλλαγή κλήσης"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 "Κομμάτι Ιδιότητας"
@@ -163,6 +183,11 @@ msgid "Anim Clips:"
msgstr "Αποσπάσματα κίνησης:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Αλλαγή τιμής πίνακα"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Εναλλαγή ÎºÎ¿Î¼Î¼Î±Ï„Î¹Î¿Ï on/off."
@@ -187,6 +212,11 @@ msgid "Time (s): "
msgstr "ΧÏόνος (s): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Φαινόμενο ÎτόπλεÏ"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Συνεχόμενη"
@@ -237,6 +267,21 @@ msgid "Delete Key(s)"
msgstr "ΔιαγÏαφή κλειδιών"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Αλλαγή ονόματος κίνησης:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Μέθοδος παÏεμβολής"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Αλλαγή βÏόχου κίνησης"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Anim ΑφαίÏεση κομματιοÏ"
@@ -278,6 +323,16 @@ msgid "Anim Insert Key"
msgstr "Anim εισαγωγή κλειδιοÏ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Αλλαγή FPS κίνησης"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Αναδιάταξη των AutoLoad"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
"Τα κομμάτια Î¼ÎµÏ„Î±ÏƒÏ‡Î·Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÎµÏ†Î±Ïμόζονται μόνο σε κόμβους βασισμένους σε "
@@ -309,6 +364,11 @@ msgid "Not possible to add a new track without a root"
msgstr "ΑδÏνατη η Ï€Ïοσθήκη ÎºÎ¿Î¼Î¼Î±Ï„Î¹Î¿Ï Ï‡Ï‰Ïίς Ïίζα"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "ΠÏοσθήκη κομματιοÏ"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "ΑδÏνατη η Ï€Ïοσθήκη κλειδιοÏ, λόγω άκυÏης διαδÏομής κομματιοÏ."
@@ -317,10 +377,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "ΑδÏνατη η Ï€Ïοσθήκη κλειδιοÏ, το κομμάτι δεν είναι Ï„Ïπου Spatial"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Κομμάτι 3D μετασχηματισμοÏ"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Κομμάτι κλήσης μεθόδου"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Δεν βÏέθηκε η μέθοδος στο αντικείμενο: "
@@ -333,6 +408,10 @@ msgid "Clipboard is empty"
msgstr "Το Ï€ÏόχειÏο είναι άδειο"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Επικόλληση κομματιών"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Anim Μεγέθυνση κλειδιών"
@@ -377,10 +456,6 @@ msgid "Copy Tracks"
msgstr "ΑντιγÏαφή κομματιών"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Επικόλληση κομματιών"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Μεγέθυνση επιλογής"
@@ -482,6 +557,19 @@ msgstr "Επιλογή κομματιών για αντιγÏαφή:"
msgid "Copy"
msgstr "ΑντιγÏαφή"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "Αλλαγή μεγέθους πίνακα"
@@ -1298,6 +1386,12 @@ msgstr ""
msgid "Packing"
msgstr "ΠακετάÏισμα"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1899,6 +1993,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "Αποθήκευση αλλαγών στο '%s' Ï€Ïιν το κλείσιμο;"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Απέτυχε η φόÏτωση πόÏου."
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "Μόνο ένα αÏχείο είναι απαÏαίτητη για μεγάλη υφή."
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Αποθήκευση σκηνή ως..."
@@ -3566,12 +3670,49 @@ msgstr "ΦόÏτωσε.."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Μετακίνηση σημείου"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Αλλαγή χÏόνου ανάμειξης"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Αλλαγή χÏόνου ανάμειξης"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr "ΆκυÏος Ï„Ïπος κόμβου. ΕπιτÏέπονται μόνο Ïιζικοί κόμβοι."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "ΠÏοσθήκη κόμβου"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "ΠÏοσθήκη κίνησης"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3614,6 +3755,31 @@ msgid "Triangle already exists"
msgstr "Το Ï„Ïίγωνο υπάÏχει ήδη"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "ΠÏοσθήκη μεταβλητής"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Αλλαγή χÏόνου ανάμειξης"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Αλλαγή χÏόνου ανάμειξης"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "ΑφαίÏεση σημείου διαδÏομής"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "ΑφαίÏεση μεταβλητής"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "Το BlendSpace2D δεν ανήκει σε κόμβο AnimationTree."
@@ -3622,6 +3788,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "Δεν υπάÏχουν Ï„Ïίγωνα, οπότε είναι αδÏνατη η μίξη."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Εναλλαγή καθολικών υπογÏαφών AutoLoad"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "ΔημιουÏγία Ï„Ïιγώνων με την ένωση σημείων."
@@ -3639,6 +3810,11 @@ msgid "Blend:"
msgstr "Ανάμειξη:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Αλλαγές υλικοÏ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "ΕπεξεÏγασία φίλτÏων"
@@ -3648,6 +3824,17 @@ msgid "Output node can't be added to the blend tree."
msgstr "Ο κόμβος εξόδου δεν μποÏεί να Ï€Ïοστεθεί στο δέντÏο μίξης."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "ΠÏοσθέστε κόμβο/-ους από δέντÏο"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "ΛειτουÏγία μετακίνησης"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
@@ -3655,6 +3842,39 @@ msgstr ""
"άκυÏη."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Συνδέθηκε"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Αποσυνδέθηκε"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Κίνηση"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "ΔιαγÏαφή Κόμβων"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Εναλλαγή ÎºÎ¿Î¼Î¼Î±Ï„Î¹Î¿Ï on/off."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Αλλαγή φίλτÏου τοπικών Ïυθμίσεων"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"Δεν οÏίστηκε AnimationPlayer, άÏα αδÏνατη η ανάκτηση των ονομάτων των "
@@ -3676,6 +3896,12 @@ msgstr ""
"ανάκτηση των ονομάτων των κομματιών."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Όνομα κόμβου:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -3902,6 +4128,21 @@ msgid "Cross-Animation Blend Times"
msgstr "ΧÏόνοι ανάμειξης κινήσεων"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "ΛειτουÏγία μετακίνησης"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "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 "Τέλος"
@@ -3930,6 +4171,20 @@ msgid "No playback resource set at path: %s."
msgstr "Κανένας πόÏος αναπαÏαγωγής στη διαδÏομή: %s."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "ΑφαιÏέθηκαν:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Κόμβος μετάβασης"
+
+#: 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"
@@ -4754,6 +5009,10 @@ msgstr "Πατήστε το Shift για να επεξεÏγαστείτε εφÎ
msgid "Bake GI Probe"
msgstr "ΠÏοετοιμασία διεÏεÏνησης GI"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Στοιχείο %d"
@@ -5948,6 +6207,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+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
+#, fuzzy
msgid "Skeleton2D"
msgstr "Σκελετός..."
@@ -6061,10 +6329,6 @@ msgid "Vertices"
msgstr "ΚοÏυφές"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Πάνω όψη."
@@ -6109,7 +6373,8 @@ msgid "Rear"
msgstr "Πίσω"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Στοίχηση με την Ï€Ïοβολή"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6204,6 +6469,12 @@ msgid "Freelook Speed Modifier"
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
#, fuzzy
msgid "View Rotation Locked"
msgstr "Εμφάνιση πληÏοφοÏιών"
@@ -6213,6 +6484,11 @@ msgid "XForm Dialog"
msgstr "Διάλογος XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "κουμπώματος στο πλέγμα"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Επιλογή λειτουÏγίας (Q)"
@@ -6500,10 +6776,6 @@ msgid "Add Empty"
msgstr "ΠÏοσθήκη άδειου"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Αλλαγή βÏόχου κίνησης"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Αλλαγή FPS κίνησης"
@@ -6847,6 +7119,11 @@ msgstr "ΔιαγÏαφή σημείων."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "ΔημιουÏγία νέων κόμβων."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "ΔημιουÏγία νέου πολυγώνου από την αÏχή."
@@ -7038,6 +7315,29 @@ msgid "TileSet"
msgstr "ΣÏνολο πλακιδίων"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "ΟÏισμός ως Ï€Ïοεπιλογής για '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "ΠÏόγÏαμμα σκίασης"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Διπλασιασμός κόμβων"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vertex"
msgstr "ΚοÏυφές"
@@ -7057,6 +7357,16 @@ msgstr "Δεξιά"
msgid "VisualShader"
msgstr "ΠÏόγÏαμμα σκίασης"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "ΕπεξεÏγασία φίλτÏων"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Αλλαγές Ï€ÏογÏάμματος σκίασης"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Εκτελέσιμο"
@@ -7070,9 +7380,17 @@ msgid "Delete preset '%s'?"
msgstr "ΔιαγÏαφή διαμόÏφωσης '%s';"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
#, fuzzy
@@ -7085,6 +7403,11 @@ msgid "Exporting All"
msgstr "Εξαγωγή για %s"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+"Τα Ï€Ïότυπα εξαγωγής για αυτή την πλατφόÏτμα λείπουν ή είναι κατεστÏαμμένα:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "ΔιαμοÏφώσεις"
@@ -8121,6 +8444,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Βγάζει νόημα!"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "ΔιαγÏαφή κόμβων;"
@@ -8158,6 +8486,11 @@ msgstr "Κάνε τοπικό"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Βγάζει νόημα!"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "ΔημιουÏγία κόμβου"
@@ -8604,6 +8937,21 @@ msgid "Set From Tree"
msgstr "ΟÏισμός από το δέντÏο"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Ομαλά έξω"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "ΣυντομεÏσεις"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Αλλαγή αγκυÏών"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "ΣυντομεÏσεις"
@@ -8819,6 +9167,10 @@ msgid "GridMap Duplicate Selection"
msgstr "GridMap Διπλασιασμός επιλογής"
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr "GridMap ΖωγÏαφική"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "ΧάÏτης δικτÏου"
@@ -9122,10 +9474,6 @@ msgid "Change Expression"
msgstr "Αλλαγή έκφÏασης"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "ΠÏοσθήκη κόμβου"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "ΑφαίÏεση κόμβων VisualScript"
@@ -9214,6 +9562,11 @@ msgid "Change Input Value"
msgstr "Αλλαγή τιμής εισόδου"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Αλλαγή μεγέθους CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "ΑδÏνατη η αντιγÏαφή του κόμβου συνάÏτησης."
@@ -10085,6 +10438,9 @@ msgstr ""
msgid "Varyings can only be assigned in vertex function."
msgstr ""
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#~ msgid "Warnings:"
#~ msgstr "ΠÏοειδοποιήσεις:"
@@ -10259,10 +10615,6 @@ msgstr ""
#~ msgid "Convert To Lowercase"
#~ msgstr "ΜετατÏοπή σε πεζά"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "κουμπώματος στο πλέγμα"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "ΠεÏιστÏοφή 0 μοίÏες"
@@ -10792,9 +11144,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "ΠÏοστέθηκαν:"
-#~ msgid "Removed:"
-#~ msgstr "ΑφαιÏέθηκαν:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "ΑδÏνατη η αποθήκευση υπό-εικόνας άτλαντα:"
@@ -11066,9 +11415,6 @@ msgstr ""
#~ msgid "Error importing:"
#~ msgstr "Σφάλμα κατά την εισαγωγή:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "Μόνο ένα αÏχείο είναι απαÏαίτητη για μεγάλη υφή."
-
#~ msgid "Max Texture Size:"
#~ msgstr "Μέγιστο μέγεθος υφής:"
@@ -11291,9 +11637,6 @@ msgstr ""
#~ msgid "Resource Tools"
#~ msgstr "ΕÏγαλεία πόÏων"
-#~ msgid "GridMap Paint"
-#~ msgstr "GridMap ΖωγÏαφική"
-
#~ msgid "Tiles"
#~ msgstr "Πλακίδια"
diff --git a/editor/translations/es.po b/editor/translations/es.po
index fd7e0c46e5..b6bed3ee52 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -42,7 +42,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-02-13 07:10+0000\n"
+"PO-Revision-Date: 2019-02-21 21:18+0000\n"
"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/"
"godot/es/>\n"
@@ -119,6 +119,16 @@ msgstr "Duplicar Clave(s) Seleccionada(s)"
msgid "Delete Selected Key(s)"
msgstr "Eliminar Clave(s) Seleccionada(s)"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Añadir punto"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Mover Puntos"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Duplicar claves de animación"
@@ -148,6 +158,16 @@ msgid "Anim Change Call"
msgstr "Cambiar llamada de animación"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Cambiar repetición de animación"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "Cambiar repetición de animación"
+
+#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr "Pista de Propiedades"
@@ -197,6 +217,11 @@ msgid "Anim Clips:"
msgstr "Clips de Anim:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Cambiar valor del array"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Act./Desact. esta pista."
@@ -221,6 +246,11 @@ msgid "Time (s): "
msgstr "Tiempo (s): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Activar Doppler"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Continuo"
@@ -271,6 +301,21 @@ msgid "Delete Key(s)"
msgstr "Eliminar Clave(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Cambiar nombre de animación:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Modo de Interpolación"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Cambiar repetición de animación"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Quitar pista de animación"
@@ -312,6 +357,16 @@ msgid "Anim Insert Key"
msgstr "Insertar clave de animación"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Cambiar FPS de animación"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Reordenar Autoloads"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "Las pistas Transform solo aplican a nodos de tipo Spatial."
@@ -342,6 +397,11 @@ msgid "Not possible to add a new track without a root"
msgstr "No es posible agregar una nueva pista sin una raíz"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Agregar Pista"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
"La ruta de la pista es inválida, por lo tanto no se pueden agregar claves."
@@ -351,12 +411,27 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "La pista no es de tipo Spatial, no se puede insertar la clave"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Pista de Transformación 3D"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Agregar Pista"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
"La ruta de la pista es inválida, por ende no se pueden agregar claves de "
"métodos."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Pista de Llamada a Métodos"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Método no encontrado en el objeto: "
@@ -369,6 +444,10 @@ msgid "Clipboard is empty"
msgstr "El portapapeles está vacío"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Pegar Pistas"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Escalar claves de animación"
@@ -413,10 +492,6 @@ msgid "Copy Tracks"
msgstr "Copiar Pistas"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Pegar Pistas"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Escalar selección"
@@ -516,6 +591,19 @@ msgstr "Elegir pistas a copiar:"
msgid "Copy"
msgstr "Copiar"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Clips de Audio:"
+
+#: 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 "Redimensionar array"
@@ -585,9 +673,8 @@ msgid "Warnings"
msgstr "Advertencias"
#: editor/code_editor.cpp
-#, fuzzy
msgid "Line and column numbers."
-msgstr "Números de línea y columna"
+msgstr "Números de línea y columna."
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
@@ -1124,7 +1211,7 @@ msgstr "Mover bus de audio"
#: editor/editor_audio_buses.cpp
msgid "Save Audio Bus Layout As..."
-msgstr "Guardar configuración de bus de audio como..."
+msgstr "Guardar configuración de Bus de Audio como..."
#: editor/editor_audio_buses.cpp
msgid "Location for New Layout..."
@@ -1147,9 +1234,8 @@ msgid "Add Bus"
msgstr "Añadir bus"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "Guardar configuración de bus de audio como..."
+msgstr "Añade un nuevo Bus de Audio a esta configuración."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1331,6 +1417,12 @@ msgstr ""
msgid "Packing"
msgstr "Empaquetando"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1910,6 +2002,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "¿Guardar cambios de '%s' antes de cerrar?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Error al cargar el recurso."
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "Solo se requiere un archivo para textura grande."
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Guardar escena como..."
@@ -2438,9 +2540,8 @@ msgid "Save & Restart"
msgstr "Guardar y Reiniciar"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Spins when the editor window redraws."
-msgstr "¡Gira cuando la ventana del editor redibuja!"
+msgstr "Gira cuando la ventana del editor se redibuja."
#: editor/editor_node.cpp
msgid "Update Always"
@@ -3559,6 +3660,22 @@ msgstr "Cargar..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Mover Puntos"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Cambiar tiempo de mezcla"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Cambiar tiempo de mezcla"
+
+#: 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 ""
@@ -3566,6 +3683,27 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Añadir nodo"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Añadir animación"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Quitar punto de ruta"
+
+#: 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 ""
@@ -3608,6 +3746,31 @@ msgid "Triangle already exists"
msgstr "El triángulo ya existe"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Añadir variable"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Cambiar tiempo de mezcla"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Cambiar tiempo de mezcla"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Quitar punto de ruta"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Quitar variable"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D no pertenece a un nodo AnimationTree."
@@ -3616,6 +3779,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "No hay ningún triángulo, así que no se puede hacer blending."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Act/desact. globales de Autoload"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Crear triángulos conectando puntos."
@@ -3633,6 +3801,11 @@ msgid "Blend:"
msgstr "Mezcla:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Cambios del material"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Editar filtros"
@@ -3642,6 +3815,17 @@ msgid "Output node can't be added to the blend tree."
msgstr "El nodo de salida no puede ser agregado al blend tree."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Añadir nodo(s) desde árbol"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Modo movimiento"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
@@ -3649,6 +3833,39 @@ msgstr ""
"inválida."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Conectado"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Desconectado"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Nueva Animación"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Eliminar nodo(s)"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Act./Desact. esta pista."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Cambiar filtro de localización"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"No se asigno ningún reproductor de animación, así que no se pudieron obtener "
@@ -3670,6 +3887,12 @@ msgstr ""
"no se pudieron obtener los nombres de las pistas."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Nombre del nodo"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "Agregar Nodo..."
@@ -3897,6 +4120,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Cross-Animation Blend Times"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Modo movimiento"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Añadir traducción"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Añadir nodo"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr "Fin"
@@ -3925,6 +4163,20 @@ msgid "No playback resource set at path: %s."
msgstr "Ningún recurso de reproducción asignado en la ruta: %s."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Eliminado:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Nodo Transition"
+
+#: 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"
@@ -4746,6 +4998,10 @@ msgstr "Mantén Mayús para editar las tangentes individualmente"
msgid "Bake GI Probe"
msgstr "Precalcular GI Probe"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Elemento %d"
@@ -5277,6 +5533,8 @@ msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
msgstr ""
+"El polígono 2D tiene vértices internos, por lo que ya no se puede editar en "
+"el viewport."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon & UV"
@@ -5898,6 +6156,16 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr "Este esqueleto no tiene huesos, crea algunos nodos Bone2D hijos."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Crear Pose de Descanso (De los Huesos)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Set Rest Pose to Bones"
+msgstr "Crear Pose de Descanso (De los Huesos)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "Skeleton2D"
@@ -6006,10 +6274,6 @@ msgid "Vertices"
msgstr "Vértices"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Vista superior."
@@ -6054,7 +6318,8 @@ msgid "Rear"
msgstr "Detrás"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Alinear con vista"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6146,6 +6411,12 @@ msgid "Freelook Speed Modifier"
msgstr "Modificador de velocidad de vista libre"
#: 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 "View Rotation Locked"
msgstr "Bloquear Rotación de Vista"
@@ -6154,6 +6425,11 @@ msgid "XForm Dialog"
msgstr "Diálogo XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Ajustar al suelo"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Modo de selección (Q)"
@@ -6433,10 +6709,6 @@ msgid "Add Empty"
msgstr "Añadir elemento vacío"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Cambiar repetición de animación"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Cambiar FPS de animación"
@@ -6762,6 +7034,11 @@ msgid "Erase bitmask."
msgstr "Borrar bitmask."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Crear nuevos nodos."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "Crear un nuevo polígono."
@@ -6940,6 +7217,29 @@ msgid "TileSet"
msgstr "TileSet"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Configurar por defecto para '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "VisualShader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Duplicar nodo(s)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vértice"
@@ -6955,6 +7255,16 @@ msgstr "Luz"
msgid "VisualShader"
msgstr "VisualShader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Editar Prioridad del Tile"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Cambios del shader"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Ejecutable"
@@ -6968,9 +7278,17 @@ msgid "Delete preset '%s'?"
msgstr "¿Eliminar preajuste '%s'?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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 ""
-"Las plantillas de exportación para esta plataforma faltan/están corruptas:"
#: editor/project_export.cpp
msgid "Release"
@@ -6981,6 +7299,11 @@ msgid "Exporting All"
msgstr "Exportar Todo"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+"Las plantillas de exportación para esta plataforma faltan/están corruptas:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Ajustes preestablecidos"
@@ -8021,6 +8344,11 @@ msgid "Instantiated scenes can't become root"
msgstr "Las escenas instanciadas no pueden ser raíz"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Convertir en raíz de escena"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "¿Eliminar nodo(s)?"
@@ -8057,6 +8385,11 @@ msgid "Make Local"
msgstr "Crear local"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "Convertir en raíz de escena"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "Crear Nodo Raíz:"
@@ -8486,6 +8819,21 @@ msgid "Set From Tree"
msgstr "Establecer desde árbol"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Transición de salida"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Atajos"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Cambiar anclas"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Atajos"
@@ -8694,6 +9042,11 @@ msgid "GridMap Duplicate Selection"
msgstr "GridMap Duplicar selección"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "Coloreado de GridMap"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Mapa de cuadrícula"
@@ -8996,10 +9349,6 @@ msgid "Change Expression"
msgstr "Cambiar expresión"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Añadir nodo"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Quitar nodos de VisualScript"
@@ -9084,6 +9433,11 @@ msgid "Change Input Value"
msgstr "Cambiar valor de entrada"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Redimensionar CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "No se puede copiar el nodo de función."
@@ -9880,9 +10234,8 @@ msgid "Switch between hexadecimal and code values."
msgstr "Cambiar entre valores hexadecimales y de código."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Add current color as a preset."
-msgstr "Añadir el color actual como predeterminado"
+msgstr "Añadir el color actual como preset."
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -9976,6 +10329,9 @@ msgstr "Asignación a uniform."
msgid "Varyings can only be assigned in vertex function."
msgstr "Solo se pueden asignar variaciones en funciones de vértice."
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#~ msgid "Warnings:"
#~ msgstr "Advertencias:"
@@ -10149,9 +10505,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
#~ msgid "Convert To Lowercase"
#~ msgstr "Convertir a minúsculas"
-#~ msgid "Snap To Floor"
-#~ msgstr "Ajustar al suelo"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "Rotar 0 grados"
@@ -10698,9 +11051,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
#~ msgid "Added:"
#~ msgstr "Añadido:"
-#~ msgid "Removed:"
-#~ msgstr "Eliminado:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "No se pudo guardar la subtextura del altas:"
@@ -10972,9 +11322,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
#~ msgid "Error importing:"
#~ msgstr "Hubo un error al importar:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "Solo se requiere un archivo para textura grande."
-
#~ msgid "Max Texture Size:"
#~ msgstr "Tamaño máximo de textura:"
@@ -11210,10 +11557,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
#~ msgstr "Editar grupos"
#, fuzzy
-#~ msgid "GridMap Paint"
-#~ msgstr "Coloreado de GridMap"
-
-#, fuzzy
#~ msgid "Tiles"
#~ msgstr "Archivo"
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index cd6f0166ac..94950398af 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -90,6 +90,16 @@ msgstr "Duplicar Clave(s) Seleccionada(s)"
msgid "Delete Selected Key(s)"
msgstr "Eliminar Clave(s) Seleccionada(s)"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Agregar punto"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Mover Puntos"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Duplicar Claves de Anim"
@@ -119,6 +129,16 @@ msgid "Anim Change Call"
msgstr "Cambiar Call de Anim"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Cambiar Loop de Animación"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "Cambiar Loop de Animación"
+
+#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr "Pista de Propiedades"
@@ -168,6 +188,11 @@ msgid "Anim Clips:"
msgstr "Clips de Anim:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Cambiar Valor del Array"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Act./Desact. esta pista."
@@ -192,6 +217,11 @@ msgid "Time (s): "
msgstr "Tiempo (s): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Activar Doppler"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Contínuo"
@@ -242,6 +272,21 @@ msgid "Delete Key(s)"
msgstr "Eliminar Clave(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Cambiar Nombre de Animación:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Modo de Interpolación"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Cambiar Loop de Animación"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Quitar pista de animación"
@@ -283,6 +328,16 @@ msgid "Anim Insert Key"
msgstr "Insertar Clave de Animación"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Cambiar FPS de Animación"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Reordenar Autoloads"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "Las pistas Transform solo aplican a nodos de tipo Spatial."
@@ -313,6 +368,11 @@ msgid "Not possible to add a new track without a root"
msgstr "No es posible agregar una nueva pista sin una raíz"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Agregar Pista"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "La ruta de la pista es inválida, por ende no se pueden agregar claves."
@@ -321,12 +381,27 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "La pista no es de tipo Spatial, no se puede insertar la clave"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Pista de Transformación 3D"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Agregar Pista"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
"La ruta de la pista es inválida, por ende no se pueden agregar claves de "
"métodos."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Pista de Llamada a Métodos"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Método no encontrado en el objeto: "
@@ -339,6 +414,10 @@ msgid "Clipboard is empty"
msgstr "El portapapeles está vacío"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Pegar Pistas"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Escalar Keys de Anim"
@@ -383,10 +462,6 @@ msgid "Copy Tracks"
msgstr "Copiar Pistas"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Pegar Pistas"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Escalar Selección"
@@ -486,6 +561,19 @@ msgstr "Elegir pistas a copiar:"
msgid "Copy"
msgstr "Copiar"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Clips de Audio:"
+
+#: 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 "Redimencionar Array"
@@ -1298,6 +1386,12 @@ msgstr "No se encontraron plantillas de exportación en la ruta esperada:"
msgid "Packing"
msgstr "Empaquetando"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1878,6 +1972,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "Guardar cambios a '%s' antes de cerrar?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Fallo al cargar recurso."
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "Solo se requiere un archivo para textura grande."
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Guardar Escena Como..."
@@ -3525,6 +3629,22 @@ msgstr "Cargar..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Mover Puntos"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Cambiar Tiempo de Blend"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Cambiar Tiempo de Blend"
+
+#: 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 ""
@@ -3532,6 +3652,27 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Agregar Nodo"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Agregar Animación"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Quitar Punto del Path"
+
+#: 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 ""
@@ -3574,6 +3715,31 @@ msgid "Triangle already exists"
msgstr "El triángulo ya existe"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Agregar Variable"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Cambiar Tiempo de Blend"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Cambiar Tiempo de Blend"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Quitar Punto del Path"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Quitar Variable"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D no pertenece a un nodo AnimationTree."
@@ -3582,6 +3748,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "No hay ningún triángulo, así que no se puede hacer blending."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Act/Desact. AutoLoad Globals"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Crear triángulos conectando puntos."
@@ -3599,6 +3770,11 @@ msgid "Blend:"
msgstr "Blend:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Cambios de Material"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Editar Filtros"
@@ -3608,6 +3784,17 @@ msgid "Output node can't be added to the blend tree."
msgstr "El nodo de salida no puede ser agregado al blend tree."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Agregar Nodo(s) Desde Arbol"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Modo Mover"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
@@ -3615,6 +3802,39 @@ msgstr ""
"inválida."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Conectado"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Desconectado"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Nueva Animación"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Eliminar Nodo(s)"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Act./Desact. esta pista."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Cambiar Filtro de Locale"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"No se asigno ningún reproductor de animación, así que no se pudieron obtener "
@@ -3636,6 +3856,12 @@ msgstr ""
"no se pudieron obtener los nombres de las pistas."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Nombre del Nodo"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "Agregar Nodo..."
@@ -3863,6 +4089,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Cross-Animation Blend Times"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Modo Mover"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Agregar Traducción"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Agregar Nodo"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr "Fin"
@@ -3891,6 +4132,20 @@ msgid "No playback resource set at path: %s."
msgstr "Ningún recurso de reproducción asignado en la ruta: %s."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Removido:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Nodo Transición"
+
+#: 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"
@@ -4711,6 +4966,10 @@ msgstr "Mantené Shift para editar tangentes individualmente"
msgid "Bake GI Probe"
msgstr "Hacer Bake de GI Probe"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Item %d"
@@ -5858,6 +6117,16 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr "Este esqueleto no tiene huesos, crea algunos nodos Bone2D hijos."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Crear Pose de Descanso"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Set Rest Pose to Bones"
+msgstr "Crear Pose de Descanso"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "Skeleton2D"
@@ -5966,10 +6235,6 @@ msgid "Vertices"
msgstr "Vértices"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Vista Superior."
@@ -6014,7 +6279,8 @@ msgid "Rear"
msgstr "Detrás"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Alinear con vista"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6106,6 +6372,12 @@ msgid "Freelook Speed Modifier"
msgstr "Modificador de Velocidad de Vista Libre"
#: 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 "View Rotation Locked"
msgstr "Rotación de Vista Trabada"
@@ -6114,6 +6386,11 @@ msgid "XForm Dialog"
msgstr "Dialogo XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Ajustar al suelo"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Modo Seleccionar (Q)"
@@ -6393,10 +6670,6 @@ msgid "Add Empty"
msgstr "Agregar Vacío"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Cambiar Loop de Animación"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Cambiar FPS de Animación"
@@ -6722,6 +6995,11 @@ msgid "Erase bitmask."
msgstr "Borrar bitmask."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Crear nuevos nodos."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "Crear un nuevo polígono."
@@ -6899,6 +7177,29 @@ msgid "TileSet"
msgstr "TileSet"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Asignar como Predeterminado para '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "VisualShader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Duplicar Nodo(s)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vértice"
@@ -6914,6 +7215,16 @@ msgstr "Luz"
msgid "VisualShader"
msgstr "VisualShader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Editar Prioridad de Tile"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Cambios de Shader"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Ejecutable"
@@ -6927,10 +7238,17 @@ msgid "Delete preset '%s'?"
msgstr "Eliminar preset '%s'?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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 ""
-"Las plantillas de exportación para esta plataforma están faltando o "
-"corruptas:"
#: editor/project_export.cpp
msgid "Release"
@@ -6941,6 +7259,12 @@ msgid "Exporting All"
msgstr "Exportar Todo"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+"Las plantillas de exportación para esta plataforma están faltando o "
+"corruptas:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Presets"
@@ -7981,6 +8305,11 @@ msgid "Instantiated scenes can't become root"
msgstr "Las escenas instanciadas no pueden convertirse en raíz"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Convertir en Raíz de Escena"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Eliminar Nodo(s)?"
@@ -8017,6 +8346,11 @@ msgid "Make Local"
msgstr "Crear Local"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "Convertir en Raíz de Escena"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "Crear Nodo Raíz:"
@@ -8447,6 +8781,21 @@ msgid "Set From Tree"
msgstr "Setear Desde Arbol"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Ease out"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Atajos"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Cambiar Anclas"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Atajos"
@@ -8654,6 +9003,10 @@ msgid "GridMap Duplicate Selection"
msgstr "Duplicar Selección en GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr "Pintar GridMap"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Mapa de Grilla"
@@ -8955,10 +9308,6 @@ msgid "Change Expression"
msgstr "Cambiar Expresión"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Agregar Nodo"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Quitar Nodos VisualScript"
@@ -9043,6 +9392,11 @@ msgid "Change Input Value"
msgstr "Cambiar Valor de Entrada"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Redimensionar CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "No se puede copiar el nodo de función."
@@ -9928,6 +10282,9 @@ msgstr "Asignación a uniform."
msgid "Varyings can only be assigned in vertex function."
msgstr "Solo se pueden asignar variaciones en funciones de vértice."
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#~ msgid "Warnings:"
#~ msgstr "Advertencias:"
@@ -10101,9 +10458,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
#~ msgid "Convert To Lowercase"
#~ msgstr "Convertir A Minúscula"
-#~ msgid "Snap To Floor"
-#~ msgstr "Ajustar al suelo"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "Rotar 0 grados"
@@ -10642,9 +10996,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
#~ msgid "Added:"
#~ msgstr "Agregado:"
-#~ msgid "Removed:"
-#~ msgstr "Removido:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "No se pudo guardar la subtextura de altas:"
@@ -10913,9 +11264,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
#~ msgid "Error importing:"
#~ msgstr "Error al importar:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "Solo se requiere un archivo para textura grande."
-
#~ msgid "Max Texture Size:"
#~ msgstr "Tamaño Max. de Textura:"
@@ -11147,9 +11495,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
#~ msgid "Edit Groups"
#~ msgstr "Editar Grupos"
-#~ msgid "GridMap Paint"
-#~ msgstr "Pintar GridMap"
-
#~ msgid "Tiles"
#~ msgstr "Tiles"
diff --git a/editor/translations/et.po b/editor/translations/et.po
index 0b1cef1a31..f5edac889e 100644
--- a/editor/translations/et.po
+++ b/editor/translations/et.po
@@ -76,6 +76,14 @@ msgstr ""
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 ""
@@ -105,6 +113,15 @@ msgid "Anim 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 ""
@@ -154,6 +171,10 @@ 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 ""
@@ -178,6 +199,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -228,6 +253,18 @@ 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 ""
@@ -269,6 +306,14 @@ 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 ""
@@ -293,6 +338,10 @@ msgid "Not possible to add a new track without a root"
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 ""
@@ -301,10 +350,22 @@ 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 ""
@@ -317,6 +378,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -359,10 +424,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -462,6 +523,18 @@ msgstr ""
msgid "Copy"
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 ""
@@ -1254,6 +1327,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1794,6 +1873,14 @@ 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 ""
@@ -3369,12 +3456,43 @@ 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 ""
@@ -3414,6 +3532,26 @@ 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 ""
@@ -3422,6 +3560,10 @@ 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 ""
@@ -3439,6 +3581,10 @@ 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 ""
@@ -3448,11 +3594,47 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+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 ""
@@ -3468,6 +3650,11 @@ msgid ""
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 ""
@@ -3693,6 +3880,19 @@ 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 "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 ""
@@ -3721,6 +3921,18 @@ 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"
@@ -4519,6 +4731,10 @@ msgstr ""
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 ""
@@ -5656,6 +5872,14 @@ 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 ""
@@ -5764,10 +5988,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5812,7 +6032,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -5904,6 +6124,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5912,6 +6138,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6188,10 +6418,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6517,6 +6743,10 @@ 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 ""
@@ -6679,6 +6909,26 @@ msgid "TileSet"
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 "Duplicate Nodes"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6694,6 +6944,14 @@ msgstr ""
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 ""
@@ -6707,7 +6965,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6719,6 +6986,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7695,6 +7966,10 @@ 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 Node(s)?"
msgstr ""
@@ -7729,6 +8004,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr ""
@@ -8141,6 +8420,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8345,6 +8636,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8639,10 +8934,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8723,6 +9014,10 @@ 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 ""
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index a0a64fe6d8..3b5cce13db 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -96,6 +96,16 @@ msgstr "کلید تکراری درست کن"
msgid "Delete Selected Key(s)"
msgstr "کلید‌ها را پاک کن"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "اÙزودن نقطه"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "برداشتن نقطه"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "تکرار کلید‌های انیمیشن"
@@ -126,6 +136,16 @@ msgstr "Ùراخوانی را در انیمیشن تغییر بده"
#: editor/animation_track_editor.cpp
#, fuzzy
+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
+#, fuzzy
msgid "Property Track"
msgstr "ویژگی:"
@@ -175,6 +195,11 @@ msgid "Anim Clips:"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "مقدار آرایه را تغییر بده"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr ""
@@ -201,6 +226,10 @@ msgid "Time (s): "
msgstr "زمان:"
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "مستمر"
@@ -253,6 +282,21 @@ msgid "Delete Key(s)"
msgstr "حذ٠گره(ها)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "تغییر مقدار دیکشنری"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "گره انیمیشن"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "حلقه انیمیشن را تغییر بده"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "حذ٠ترک انیمشین"
@@ -294,6 +338,16 @@ msgid "Anim Insert Key"
msgstr "کلید را در انیمیشن درج کن"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "طول انیمیشن را تغییر بده"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "مسیر به سمت گره:"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -318,6 +372,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "ترک را اضاÙÙ‡ Ú©Ù†"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -326,11 +385,26 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "درج ترک و کلید در انیمیشن"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
#, fuzzy
+msgid "Add Method Track Key"
+msgstr "درج ترک و کلید در انیمیشن"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Method not found in object: "
msgstr "VariableGet در اسکریپت پیدا نشد: "
@@ -344,6 +418,11 @@ msgid "Clipboard is empty"
msgstr "حاÙظه پنهان خالی است!"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "مسیر به سمت گره:"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "کلیدها را در انیمیشن تغییر مقیاس بده"
@@ -389,11 +468,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "مسیر به سمت گره:"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "انتخاب شده را تغییر مقیاس بده"
@@ -496,6 +570,19 @@ msgstr ""
msgid "Copy"
msgstr "کپی کردن"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "آرایه را تغییر اندازه بده"
@@ -1312,6 +1399,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1876,6 +1969,14 @@ 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 "ذخیره صحنه در ..."
@@ -3514,12 +3615,47 @@ msgstr "بارگیری"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Node Point"
+msgstr "اÙزودن گره"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "تکرار انیمیشن"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3561,6 +3697,29 @@ msgid "Triangle already exists"
msgstr "بارگذاری خودکار 's%' هم اکنون موجود است!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "برداشتن نقش"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "حذ٠متغیر"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
@@ -3569,6 +3728,10 @@ 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 ""
@@ -3586,6 +3749,11 @@ msgid "Blend:"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "تغییر بده"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "ویرایش صاÙÛŒ ها"
@@ -3595,11 +3763,54 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "گره(ها) را از درخت اضاÙÙ‡ Ú©Ù†"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "نام گره:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "وصل شده"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "اتصال قطع شده"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "تغییر نام انیمیشن"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "حذ٠گره(ها)"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Toggle Filter On/Off"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "صاÙÛŒ بومی‌سازی تغییر کرد"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3615,6 +3826,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "نام گره:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -3853,6 +4070,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "حرکت دادن گره(ها)"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "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 ""
@@ -3882,6 +4114,20 @@ msgid "No playback resource set at path: %s."
msgstr "در مسیر٠منبع نیست."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "برداشته شده:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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"
@@ -4703,6 +4949,10 @@ msgstr ""
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 ""
@@ -5891,6 +6141,15 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "پخش سÙارشی صحنه"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr ""
@@ -6004,10 +6263,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -6052,7 +6307,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6149,6 +6404,12 @@ msgid "Freelook Speed Modifier"
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
#, fuzzy
msgid "View Rotation Locked"
msgstr "بومی‌سازی"
@@ -6158,6 +6419,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Select Mode (Q)"
msgstr "انتخاب حالت"
@@ -6442,10 +6707,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6790,6 +7051,11 @@ msgstr "Ú©Ùندی در آغاز"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "ساختن %s جدید"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "انتخاب شده را تغییر مقیاس بده"
@@ -6973,6 +7239,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "تکرار کلید‌های انیمیشن"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6989,6 +7276,16 @@ msgstr ""
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "ویرایش صاÙÛŒ ها"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "تغییر بده"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -7004,7 +7301,16 @@ msgid "Delete preset '%s'?"
msgstr "آیا پرونده‌های انتخاب شده حذ٠شود؟"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -7017,6 +7323,10 @@ msgid "Exporting All"
msgstr "صدور"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -8030,6 +8340,10 @@ 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 Node(s)?"
msgstr "حذ٠گره(ها)؟"
@@ -8066,6 +8380,11 @@ msgstr "محلی"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "صحنه جدید"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "ساختن گره"
@@ -8501,6 +8820,19 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+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 "Shortcuts"
msgstr ""
@@ -8720,6 +9052,11 @@ msgid "GridMap Duplicate Selection"
msgstr "انتخاب شده را به دو تا تکثیر کن"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "ترجیحات"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -9036,10 +9373,6 @@ msgid "Change Expression"
msgstr "انتقال را در انیمیشن تغییر بده"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "اÙزودن گره"
-
-#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Remove VisualScript Nodes"
msgstr "کلیدهای نامعتبر را حذ٠کن"
@@ -9124,6 +9457,10 @@ 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 ""
@@ -10093,12 +10430,6 @@ msgstr ""
#~ msgid "Out-In"
#~ msgstr "خارج-داخل"
-#~ msgid "Change Anim Len"
-#~ msgstr "طول انیمیشن را تغییر بده"
-
-#~ msgid "Change Anim Loop"
-#~ msgstr "حلقه انیمیشن را تغییر بده"
-
#~ msgid "Anim Create Typed Value Key"
#~ msgstr "کلید مقدار دارای نوع را در انیمیشن ایجاد کن"
@@ -10248,9 +10579,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "اÙزوده شده:"
-#~ msgid "Removed:"
-#~ msgstr "برداشته شده:"
-
#~ msgid "Re-Importing"
#~ msgstr "در حال وارد کردن دوباره..."
diff --git a/editor/translations/fi.po b/editor/translations/fi.po
index 392fd0e2ad..531b9fb95c 100644
--- a/editor/translations/fi.po
+++ b/editor/translations/fi.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-02-13 07:10+0000\n"
+"PO-Revision-Date: 2019-02-21 21:18+0000\n"
"Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/"
"godot/fi/>\n"
@@ -89,6 +89,16 @@ msgstr "Kahdenna valitut avaimet"
msgid "Delete Selected Key(s)"
msgstr "Poista valitut avaimet"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Lisää piste"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Siirrä pisteitä"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Animaatio: Monista avaimet"
@@ -118,6 +128,16 @@ msgid "Anim Change Call"
msgstr "Animaatio: muuta kutsua"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Vaihda animaation luuppia"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "Vaihda animaation luuppia"
+
+#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr "Ominaisuusraita"
@@ -167,6 +187,11 @@ msgid "Anim Clips:"
msgstr "Animaatioleikkeet:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Vaihda taulukon arvoa"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Käytä tämä raita päälle/pois."
@@ -191,6 +216,11 @@ msgid "Time (s): "
msgstr "Aika (s): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Doppler käytössä"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Jatkuva"
@@ -241,6 +271,21 @@ msgid "Delete Key(s)"
msgstr "Poista avainruudut"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Vaihda animaation nimi:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Interpolaatiotila"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Vaihda animaation luuppia"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Poista animaatioraita"
@@ -282,6 +327,16 @@ msgid "Anim Insert Key"
msgstr "Animaatio: Lisää avain"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Vaihda animaation nopeutta"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Järjestele uudelleen automaattiset lataukset"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "Raitojen muunnos toimii vain Spatial-pohjaisille solmuille."
@@ -310,6 +365,11 @@ msgid "Not possible to add a new track without a root"
msgstr "Uutta raitaa ei voida lisätä ilman juurta"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Lisää raita"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "Raidan polku on virheellinen, joten ei voida lisätä avainruutua."
@@ -318,10 +378,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "Raita ei ole Spatial-tyyppinen, joten ei voida lisätä avainruutua"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "3D-muunnosraita"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Lisää raita"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr "Raidan polku on virheellinen, joten ei voida lisätä metodin avainta."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Metodikutsuraita"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Metodia ei löydy objektista: "
@@ -334,6 +409,10 @@ msgid "Clipboard is empty"
msgstr "Leikepöytä on tyhjä"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Liitä raidat"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Animaatio: Skaalaa avaimia"
@@ -376,10 +455,6 @@ msgid "Copy Tracks"
msgstr "Kopioi raidat"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Liitä raidat"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Skaalaa valintaa"
@@ -479,6 +554,19 @@ msgstr "Valitse kopioitavat raidat:"
msgid "Copy"
msgstr "Kopioi"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Äänileikkeet:"
+
+#: 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 "Muuta taulukon kokoa"
@@ -548,9 +636,8 @@ msgid "Warnings"
msgstr "Varoitukset"
#: editor/code_editor.cpp
-#, fuzzy
msgid "Line and column numbers."
-msgstr "Rivi- ja sarakenumerot"
+msgstr "Rivi- ja sarakenumerot."
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
@@ -1109,9 +1196,8 @@ msgid "Add Bus"
msgstr "Lisää väylä"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "Tallenna ääniväylän asettelu nimellä..."
+msgstr "Lisää tähän asetteluun uusi ääniväylä."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1292,6 +1378,12 @@ msgstr "Vientimallia ei löytynyt odotetusta polusta:"
msgid "Packing"
msgstr "Pakataan"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1865,6 +1957,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "Tallennetaanko muutokset tiedostoon '%s' ennen sulkemista?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Resurssin lataaminen epäonnistui."
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "Vain yksi tiedosto vaaditaan suurikokoiselle tekstuurille."
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Tallenna skene nimellä..."
@@ -2381,9 +2483,8 @@ msgid "Save & Restart"
msgstr "Tallenna & käynnistä uudelleen"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Spins when the editor window redraws."
-msgstr "Pyörii kun editorin ikkuna päivittyy!"
+msgstr "Pyörii kun editorin ikkuna päivittyy."
#: editor/editor_node.cpp
msgid "Update Always"
@@ -3500,6 +3601,22 @@ msgstr "Lataa..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Siirrä pisteitä"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Muuta sulautusaikaa"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Muuta sulautusaikaa"
+
+#: 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 ""
@@ -3507,6 +3624,27 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Lisää solmu"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Lisää animaatio"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Poista polun piste"
+
+#: 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 ""
@@ -3549,6 +3687,31 @@ msgid "Triangle already exists"
msgstr "Kolmio on jo olemassa"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Lisää muuttuja"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Muuta sulautusaikaa"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Muuta sulautusaikaa"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Poista polun piste"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Poista muuttuja"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D ei kuulu AnimationTree solmuun."
@@ -3557,6 +3720,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "Kolmioita ei ole olemassa, joten mitään sulautusta ei tapahdu."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Aseta globaalien automaattilataus"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Luo kolmiot yhdistämällä pisteet."
@@ -3574,6 +3742,11 @@ msgid "Blend:"
msgstr "Sulautus:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Materiaalimuutokset"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Muokkaa suodattimia"
@@ -3583,12 +3756,56 @@ msgid "Output node can't be added to the blend tree."
msgstr "Lähtösolmua ei voida lisätä sulautuspuuhun."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Lisää solmut puusta"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Siirtotila"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
"Ei voida yhdistää, portti voi olla käytössä tai yhteys voi olla virheellinen."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Yhdistetty"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Yhteys katkaistu"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Uusi animaatio"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Poista solmu(t)"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Käytä tämä raita päälle/pois."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Vaihdettu kielisuodatin"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"Animaatiotoistinta ei ole asetettu, joten raitojen nimien haku ei onnistu."
@@ -3608,6 +3825,12 @@ msgstr ""
"nimien haku ei onnistu."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Solmun nimi"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "Lisää solmu..."
@@ -3833,6 +4056,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Lomittautuvien animaatioiden sulautusajat"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Siirtotila"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Lisää käännös"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Lisää solmu"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr "End"
@@ -3861,6 +4099,20 @@ msgid "No playback resource set at path: %s."
msgstr "Polulle ei ole asetettu toistoresurssia: %s."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Poistettu:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Siirtymäsolmu"
+
+#: 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"
@@ -4682,6 +4934,10 @@ msgstr "Pidä shift pohjassa muokataksesi tangentteja yksitellen"
msgid "Bake GI Probe"
msgstr "Kehitä GI Probe"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Kohde %d"
@@ -5209,6 +5465,8 @@ msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
msgstr ""
+"2D-polygonilla on sisäisiä kärkipisteitä, joten sitä ei voi enää muokata "
+"näyttöruudussa."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon & UV"
@@ -5829,6 +6087,16 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr "Tällä luurangolla ei ole luita, luo joitakin Bone2D alisolmuja."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Tee lepoasento (luista)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Set Rest Pose to Bones"
+msgstr "Tee lepoasento (luista)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "Skeleton2D"
@@ -5937,10 +6205,6 @@ msgid "Vertices"
msgstr "Kärkipisteet"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Pintanäkymä."
@@ -5985,7 +6249,8 @@ msgid "Rear"
msgstr "Taka"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Kohdista näkymään"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6077,6 +6342,12 @@ msgid "Freelook Speed Modifier"
msgstr "Liikkumisen nopeussäädin"
#: 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 "View Rotation Locked"
msgstr "Näkymän kierto lukittu"
@@ -6085,6 +6356,11 @@ msgid "XForm Dialog"
msgstr "XForm-ikkuna"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Tartu lattiaan"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Valintatila (Q)"
@@ -6364,10 +6640,6 @@ msgid "Add Empty"
msgstr "Lisää tyhjä"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Vaihda animaation luuppia"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Vaihda animaation nopeutta"
@@ -6693,6 +6965,11 @@ msgid "Erase bitmask."
msgstr "Pyyhi bittimaski."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Luo uusia solmuja."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "Luo uusi polygoni."
@@ -6870,6 +7147,29 @@ msgid "TileSet"
msgstr "Ruutuvalikoima"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Aseta oletus valinnalle '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "VisualShader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Kahdenna solmu(t)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vertex"
@@ -6885,6 +7185,16 @@ msgstr "Valo"
msgid "VisualShader"
msgstr "VisualShader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Muokkaa ruudun prioriteettia"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Sävytinmuutokset"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Suoritettava"
@@ -6898,8 +7208,17 @@ msgid "Delete preset '%s'?"
msgstr "Poista esiasetus '%s'?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "Vientimallit tälle alustalle puuttuvat tai ovat viallisia:"
+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"
@@ -6910,6 +7229,10 @@ msgid "Exporting All"
msgstr "Viedään kaikki"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "Vientimallit tälle alustalle puuttuvat tai ovat viallisia:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Esiasetukset"
@@ -7944,6 +8267,11 @@ msgid "Instantiated scenes can't become root"
msgstr "Skenejen ilmentymiä ei voi asettaa juureksi"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Tee skenen juuri"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Poista solmu(t)?"
@@ -7980,6 +8308,11 @@ msgid "Make Local"
msgstr "Tee paikallinen"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "Tee skenen juuri"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "Luo juurisolmu:"
@@ -8408,6 +8741,21 @@ msgid "Set From Tree"
msgstr "Aseta puusta"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Hidasta lopussa"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Pikanäppäimet"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Muuta ankkureita"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Pikanäppäimet"
@@ -8616,6 +8964,11 @@ msgid "GridMap Duplicate Selection"
msgstr "Kahdenna valinta"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "Ruudukon asetukset"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Ruudukko"
@@ -8916,10 +9269,6 @@ msgid "Change Expression"
msgstr "Vaihda lauseketta"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Lisää solmu"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Poista VisualScript solmut"
@@ -9005,6 +9354,11 @@ msgid "Change Input Value"
msgstr "Vaihda syötteen arvo"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Muokkaa CanvasItemin kokoa"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "Ei voida kopioida funktiosolmua."
@@ -9775,9 +10129,8 @@ msgid "Switch between hexadecimal and code values."
msgstr "Vaihda heksadesimaali- ja koodiarvojen välillä."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Add current color as a preset."
-msgstr "Lisää nykyinen väri esiasetukseksi"
+msgstr "Lisää nykyinen väri esiasetukseksi."
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -9871,6 +10224,9 @@ msgstr "Sijoitus uniformille."
msgid "Varyings can only be assigned in vertex function."
msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa."
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#~ msgid "Warnings:"
#~ msgstr "Varoitukset:"
@@ -10041,9 +10397,6 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa."
#~ msgid "Convert To Lowercase"
#~ msgstr "Muunna pieniksi kirjaimiksi"
-#~ msgid "Snap To Floor"
-#~ msgstr "Tartu lattiaan"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "Käännä 0 astetta"
@@ -10536,9 +10889,6 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa."
#~ msgid "Added:"
#~ msgstr "Lisätty:"
-#~ msgid "Removed:"
-#~ msgstr "Poistettu:"
-
#~ msgid "Error loading scene."
#~ msgstr "Virhe ladatessa Sceneä."
@@ -10705,9 +11055,6 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa."
#~ msgid "Error importing:"
#~ msgstr "Virhe tuotaessa:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "Vain yksi tiedosto vaaditaan suurikokoiselle tekstuurille."
-
#~ msgid "Max Texture Size:"
#~ msgstr "Tekstuurin enimmäiskoko:"
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index 4fe762d13b..08837ca582 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -53,12 +53,13 @@
# Rémi Bintein <reminus5@hotmail.fr>, 2018, 2019.
# Sylvain Corsini <sylvain.corsini@gmail.com>, 2018.
# Caye Pierre <pierrecaye@laposte.net>, 2019.
+# Peter Kent <0.peter.kent@gmail.com>, 2019.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-02-18 08:54+0000\n"
-"Last-Translator: Caye Pierre <pierrecaye@laposte.net>\n"
+"PO-Revision-Date: 2019-02-21 21:18+0000\n"
+"Last-Translator: Peter Kent <0.peter.kent@gmail.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
"godot/fr/>\n"
"Language: fr\n"
@@ -133,6 +134,16 @@ msgstr "Dupliquer les clé(s) sélectionnée(s)"
msgid "Delete Selected Key(s)"
msgstr "Supprimer les clé(s) sélectionnée(s)"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Ajouter un point"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Déplacer de points"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Dupliquer les clés d'animation"
@@ -147,7 +158,7 @@ msgstr "Modifier le temps d'image-clé"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
-msgstr "Modifier la transition"
+msgstr "Changement du transition de l'animation"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
@@ -162,6 +173,16 @@ msgid "Anim Change Call"
msgstr "Anim: Change l'Appel"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Modifier la boucle d'animation"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "Modifier la boucle d'animation"
+
+#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr "Piste de propriété"
@@ -211,6 +232,11 @@ msgid "Anim Clips:"
msgstr "Clips d'animation :"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Modifier la valeur du tableau"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Activer/désactiver cette piste."
@@ -235,6 +261,11 @@ msgid "Time (s): "
msgstr "Temps (s) : "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Activer Doppler"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Continu"
@@ -285,6 +316,21 @@ msgid "Delete Key(s)"
msgstr "Supprimer clé(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Modifier le nom de l'animation :"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Mode d'interpolation"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Modifier la boucle d'animation"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Supprimer la piste d'animation"
@@ -327,6 +373,16 @@ msgid "Anim Insert Key"
msgstr "Insérer une clé d'animation"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Modifier le taux d'IPS de l'animation"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Ré-organiser les AutoLoads"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
"Les pistes de transformation ne s'appliquent qu'aux nœuds basés sur Spatial."
@@ -359,6 +415,11 @@ msgid "Not possible to add a new track without a root"
msgstr "Impossible d'ajouter une nouvelle piste sans racine"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Ajouter une piste"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "Le chemin de la piste est invalide, impossible d'ajouter une clé."
@@ -367,12 +428,27 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "La piste n'est pas de type Spatial, impossible d'insérer une clé"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Piste de transformation 3D"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Ajouter une piste"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
"Le chemin de la piste est invalide, impossible d'ajouter une clé d'appel de "
"méthode."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Piste d'appel de méthode"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Méthode introuvable dans l'objet : "
@@ -385,6 +461,10 @@ msgid "Clipboard is empty"
msgstr "Le presse-papiers est vide"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Coller pistes"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Mettre à l'échelle les clés d'animation"
@@ -431,10 +511,6 @@ msgid "Copy Tracks"
msgstr "Copier pistes"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Coller pistes"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Mettre à l'échelle la sélection"
@@ -480,7 +556,7 @@ msgstr "Utiliser les courbes de Bézier"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
-msgstr "Optimiser l'animation"
+msgstr "Optimiser de l'animation"
#: editor/animation_track_editor.cpp
msgid "Max. Linear Error:"
@@ -534,6 +610,19 @@ msgstr "Sélectionner les pistes à copier :"
msgid "Copy"
msgstr "Copier"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Clips audio :"
+
+#: 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 "Redimensionner le tableau"
@@ -603,9 +692,8 @@ msgid "Warnings"
msgstr "Avertissements"
#: editor/code_editor.cpp
-#, fuzzy
msgid "Line and column numbers."
-msgstr "Numéros de ligne et de colonne"
+msgstr "Numéros de ligne et de colonne."
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
@@ -1165,9 +1253,8 @@ msgid "Add Bus"
msgstr "Ajouter un bus"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "Enregistrer la disposition des bus audio sous…"
+msgstr "Ajoutez un nouveau bus audio à cette disposition."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1348,6 +1435,12 @@ msgstr "Aucun modèle d'exportation n'a été trouvé au chemin prévu :"
msgid "Packing"
msgstr "Empaquetage"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1928,6 +2021,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Sauvegarder modifications de '%s' avant de quitter ?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Impossible de charger la ressource."
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Enregistrer la scène sous…"
@@ -2461,9 +2563,8 @@ msgid "Save & Restart"
msgstr "Enregistrer et Redémarrer"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Spins when the editor window redraws."
-msgstr "Tourne lorsque la fenêtre de l'éditeur est repainte !"
+msgstr "Tourne lorsque la fenêtre de l'éditeur est redessinée."
#: editor/editor_node.cpp
msgid "Update Always"
@@ -3585,6 +3686,22 @@ msgstr "Charger..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Déplacer de points"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Changer le temps de mélange"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Changer le temps de mélange"
+
+#: 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 ""
@@ -3593,6 +3710,27 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Ajouter un nœud"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Ajouter une animation"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Supprimer le point du chemin"
+
+#: 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 ""
@@ -3636,6 +3774,31 @@ msgid "Triangle already exists"
msgstr "Le triangle existe déjà"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Ajouter une variable"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Changer le temps de mélange"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Changer le temps de mélange"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Supprimer le point du chemin"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Supprimer la variable"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D n'appartient pas à un nœud AnimationTree."
@@ -3644,6 +3807,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "Il n'existe pas de triangles, donc aucun mélange ne peut avoir lieu."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Activer les variables globales AutoLoad"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Créer des triangles en reliant les points."
@@ -3662,6 +3830,11 @@ msgid "Blend:"
msgstr "Mélange :"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Modifications de materiau"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Editer les filtres"
@@ -3671,6 +3844,17 @@ msgid "Output node can't be added to the blend tree."
msgstr "Un nœud de sortie ne peut être ajouté à l'arborescence du mélange."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Ajouter un nœud à partir de l'arbre"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Mode déplacement"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
@@ -3678,6 +3862,39 @@ msgstr ""
"connexion peut être invalide."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Connecté"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Déconnecté"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Nouvelle animation"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Supprimer nœud(s)"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Activer/désactiver cette piste."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Filtre de langue modifié"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"Aucun lecteur d'animation défini, dès lors impossible de retrouver les noms "
@@ -3699,6 +3916,12 @@ msgstr ""
"impossible de récupérer les noms des pistes."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Nom de nœud"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "Ajouter un nœud..."
@@ -3925,6 +4148,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Temps de mélange des entre animations"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Mode déplacement"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Ajouter une traduction"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Ajouter un nœud"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr "Fin"
@@ -3954,6 +4192,20 @@ msgid "No playback resource set at path: %s."
msgstr "Aucune ressource de lecture définie sur le chemin : %s."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Supprimer"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "NÅ“ud Transition"
+
+#: 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"
@@ -4775,6 +5027,10 @@ msgstr "Maintenez l'appui sur Maj pour éditer les tangentes individuellement"
msgid "Bake GI Probe"
msgstr "Créer sonde IG (Illumination Globale)"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Objet %d"
@@ -5307,6 +5563,8 @@ msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
msgstr ""
+"Polygon 2D a des sommets internes, donc il ne peut plus être édité dans la "
+"fenêtre d'affichage."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon & UV"
@@ -5927,6 +6185,16 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr "Ce squelette n'a pas d'os, créez des nœuds Bone2D enfants."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Créer la position de repos (d'après les os)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Set Rest Pose to Bones"
+msgstr "Créer la position de repos (d'après les os)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "Squelette 2D"
@@ -6035,10 +6303,6 @@ msgid "Vertices"
msgstr "Vertex"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "IPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Vue de dessus."
@@ -6083,7 +6347,8 @@ msgid "Rear"
msgstr "Arrière"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Aligner avec la vue"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6177,6 +6442,12 @@ msgid "Freelook Speed Modifier"
msgstr "Modificateur de vitesse de la vue libre"
#: 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 "View Rotation Locked"
msgstr "Verrouiller la rotation de la vue"
@@ -6185,6 +6456,11 @@ msgid "XForm Dialog"
msgstr "Dialogue XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Aligner l'objet sur le sol"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Sélectionner le mode (Q)"
@@ -6466,10 +6742,6 @@ msgid "Add Empty"
msgstr "Ajouter vide"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Modifier la boucle d'animation"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Modifier le taux d'IPS de l'animation"
@@ -6795,6 +7067,11 @@ msgid "Erase bitmask."
msgstr "Effacer le masque de bit."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Créer de nouveaux nœuds."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "Créer un nouveau polygone."
@@ -6974,6 +7251,29 @@ msgid "TileSet"
msgstr "TileSet"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Définir comme défaut pour '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "VisualShader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Dupliquer le(s) nœud(s)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vertex"
@@ -6989,6 +7289,16 @@ msgstr "Lumière"
msgid "VisualShader"
msgstr "VisualShader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Modifier la priorité de la tuile"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Modification de shader"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Exécutable"
@@ -7002,8 +7312,17 @@ msgid "Delete preset '%s'?"
msgstr "Supprimer pré-réglage '%s' ?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "Modèles d'exportation manquants ou corrompus pour cette plateforme :"
+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"
@@ -7014,6 +7333,10 @@ msgid "Exporting All"
msgstr "Tout exporter"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "Modèles d'exportation manquants ou corrompus pour cette plateforme :"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Pré-réglages"
@@ -7252,7 +7575,7 @@ msgstr "Parcourir"
#: editor/project_manager.cpp
msgid "Renderer:"
-msgstr "Moteur de rendu :"
+msgstr "Moteur de rendre :"
#: editor/project_manager.cpp
msgid "OpenGL ES 3.0"
@@ -8056,6 +8379,11 @@ msgid "Instantiated scenes can't become root"
msgstr "Les scènes instanciées ne peuvent pas devenir la racine"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Choisir comme racine de scène"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Supprimer le(s) nœud(s) ?"
@@ -8092,6 +8420,11 @@ msgid "Make Local"
msgstr "Rendre local"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "Choisir comme racine de scène"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "Créer un nœud racine :"
@@ -8522,6 +8855,21 @@ msgid "Set From Tree"
msgstr "Définir depuis l'arbre"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Lent sur la fin"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Raccourcis"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Modifier les ancres"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Raccourcis"
@@ -8730,6 +9078,11 @@ msgid "GridMap Duplicate Selection"
msgstr "Sélection de la duplication de GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "Paramètres GridMap"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Grille"
@@ -9032,10 +9385,6 @@ msgid "Change Expression"
msgstr "Changer l'expression"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Ajouter un nœud"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Supprimer nœuds VisualScript"
@@ -9120,6 +9469,11 @@ msgid "Change Input Value"
msgstr "Changer nom de l'entrée"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Redimensionner l'élément de canevas"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "Impossible de copier le nœud de fonction."
@@ -9925,9 +10279,8 @@ msgid "Switch between hexadecimal and code values."
msgstr "Alterner entre les valeurs hexadécimales ou brutes."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Add current color as a preset."
-msgstr "Ajouter la couleur courante comme pré-réglage"
+msgstr "Ajouter la couleur courante comme pré-réglage."
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -10023,6 +10376,9 @@ msgstr "Affectation à l'uniforme."
msgid "Varyings can only be assigned in vertex function."
msgstr "Les variations ne peuvent être affectées que dans la fonction vertex."
+#~ msgid "FPS"
+#~ msgstr "IPS"
+
#~ msgid "Warnings:"
#~ msgstr "Avertissements :"
diff --git a/editor/translations/he.po b/editor/translations/he.po
index 7257d9c753..ce4aa15431 100644
--- a/editor/translations/he.po
+++ b/editor/translations/he.po
@@ -91,6 +91,15 @@ msgstr "למחוק ×ת ×”×§×‘×¦×™× ×”× ×‘×—×¨×™×?"
msgid "Delete Selected Key(s)"
msgstr "למחוק ×ת ×”×§×‘×¦×™× ×”× ×‘×—×¨×™×?"
+#: editor/animation_bezier_editor.cpp
+msgid "Add Bezier Point"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "הזזת נקודה"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr ""
@@ -120,6 +129,16 @@ msgid "Anim Change Call"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 ""
@@ -175,6 +194,11 @@ msgid "Anim Clips:"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "החלפת ערך המערך"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr ""
@@ -201,6 +225,10 @@ msgid "Time (s): "
msgstr "זמן:"
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "מתמשך"
@@ -253,6 +281,21 @@ msgid "Delete Key(s)"
msgstr "מחיקת שורה"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "החלפת ערך מילון"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "החלפת ערך מילון"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "×©× ×”× ×¤×©×” חדשה:"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr ""
@@ -294,6 +337,16 @@ msgid "Anim Insert Key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "ניקוי ההנפשה"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "סידור טעינות ×וטומטית מחדש"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -318,6 +371,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "הוספת רצועות חדשות."
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -326,11 +384,26 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "התמרה"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
#, fuzzy
+msgid "Add Method Track Key"
+msgstr "הוספת רצועות חדשות."
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Method not found in object: "
msgstr "×œ× × ×ž×¦× VariableGet בסקריפט: "
@@ -344,6 +417,11 @@ msgid "Clipboard is empty"
msgstr "לוח גזירי המש××‘×™× ×¨×™×§!"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "הדבקת משתני×"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -390,11 +468,6 @@ msgid "Copy Tracks"
msgstr "העתקת משתני×"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "הדבקת משתני×"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -497,6 +570,19 @@ msgstr ""
msgid "Copy"
msgstr "העתקה"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "שינוי גודל המערך"
@@ -1297,6 +1383,12 @@ msgstr ""
msgid "Packing"
msgstr "×ריזה"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1863,6 +1955,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "לשמור ×ת ×”×©×™× ×•×™×™× ×œÖ¾â€š%s’ לפני הסגירה?"
#: editor/editor_node.cpp
+#, fuzzy
+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 "שמירת סצנה בש×…"
@@ -3499,12 +3600,47 @@ msgstr "טעינה"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Node Point"
+msgstr "הזזת נקודה"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "תקריב הנפשה."
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3547,6 +3683,28 @@ msgid "Triangle already exists"
msgstr "הפעולה ‚%s’ כבר קיימת!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+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 ""
@@ -3555,6 +3713,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "החלפת מצב מועדפי×"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3572,6 +3735,11 @@ msgid "Blend:"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "שינויי חומרי×"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr ""
@@ -3581,11 +3749,54 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "×©× ×”×ž×¤×¨×§:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "מחובר"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "מנותק"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "×©× ×”× ×¤×©×” חדשה:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "מחיקת שורה"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "החלפת מצב מועדפי×"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "שינוי"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3601,6 +3812,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "×©× ×”×ž×¤×¨×§:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr ""
@@ -3834,6 +4051,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "מצב הזזה (W)"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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 ""
@@ -3863,6 +4095,20 @@ msgid "No playback resource set at path: %s."
msgstr "×œ× ×‘× ×ª×™×‘ המש×ב."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "הסרה"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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"
@@ -4678,6 +4924,10 @@ msgstr ""
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 ""
@@ -5858,6 +6108,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+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
+#, fuzzy
msgid "Skeleton2D"
msgstr "יחידני"
@@ -5969,10 +6228,6 @@ msgid "Vertices"
msgstr "קודקודי×"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "מבט על."
@@ -6017,7 +6272,8 @@ msgid "Rear"
msgstr "×חורי"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "יישור ×¢× ×”×ª×¦×•×’×”"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6110,6 +6366,12 @@ msgid "Freelook Speed Modifier"
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
#, fuzzy
msgid "View Rotation Locked"
msgstr "הצגת מידע"
@@ -6119,6 +6381,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "בחירת מצב (Q)"
@@ -6402,10 +6668,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6745,6 +7007,11 @@ msgstr "מחיקת נקודות"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "יצירת %s חדש"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "יצירת מצולע"
@@ -6923,6 +7190,28 @@ msgid "TileSet"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "הגדרה כבררת מחדל עבור ‚%s’"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "שכפול"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vertex"
msgstr "קודקודי×"
@@ -6940,6 +7229,15 @@ msgstr "ימין"
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+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 ""
@@ -6953,7 +7251,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6966,6 +7273,10 @@ msgid "Exporting All"
msgstr "ייצו×"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7967,6 +8278,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "שמירת סצנה"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8002,6 +8318,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "שמירת סצנה"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "יצירת תיקייה"
@@ -8424,6 +8745,19 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+msgid "Erase Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Restore Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "שינוי הערה"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr ""
@@ -8629,6 +8963,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8924,10 +9262,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -9010,6 +9344,11 @@ msgid "Change Input Value"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "החלפת מצב הערה"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
@@ -9897,9 +10236,6 @@ msgstr ""
#~ msgid "Change Default Value"
#~ msgstr "שינוי ערך בררת המחדל"
-#~ msgid "Change Comment"
-#~ msgstr "שינוי הערה"
-
#~ msgid "Change Input Name"
#~ msgstr "שינוי ×©× ×§×œ×˜"
diff --git a/editor/translations/hi.po b/editor/translations/hi.po
index 5aee390cc5..21993c701c 100644
--- a/editor/translations/hi.po
+++ b/editor/translations/hi.po
@@ -85,6 +85,14 @@ msgstr "चयनित चाबी (फ़ाइलें) डà¥à¤ªà¥à¤²à¤¿à
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 "Anim डà¥à¤ªà¥à¤²à¤¿à¤•à¥‡à¤Ÿ चाबी"
@@ -118,6 +126,16 @@ msgid "Anim Change Call"
msgstr "à¤à¤¨à¥€à¤®à¥‡à¤¶à¤¨ परिवरà¥à¤¤à¤¨ बà¥à¤²à¤¾à¤µà¤¾"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 "गà¥à¤£(Property) टà¥à¤°à¥ˆà¤•"
@@ -168,6 +186,10 @@ 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 ""
@@ -192,6 +214,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -244,6 +270,21 @@ msgid "Delete Key(s)"
msgstr "à¤à¤¨à¥€à¤®à¥‡à¤¶à¤¨ को हटाने के लिठकà¥à¤‚जी"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "शबà¥à¤¦ बदलें मूलà¥à¤¯"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "शबà¥à¤¦ बदलें मूलà¥à¤¯"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "à¤à¤¨à¤¿à¤®à¥‡à¤¶à¤¨ लूप"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr ""
@@ -285,6 +326,15 @@ msgid "Anim Insert Key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 ""
@@ -309,6 +359,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "टà¥à¤°à¥ˆà¤• जोड़ें"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -317,10 +372,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "3 डी टà¥à¤°à¥ˆà¤• रूपांतरण"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "कॉल मेथड टà¥à¤°à¥ˆà¤•"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -333,6 +403,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -375,10 +449,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -480,6 +550,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 ""
@@ -1311,6 +1394,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1859,6 +1948,14 @@ 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 ""
@@ -3456,12 +3553,45 @@ 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
+#, fuzzy
+msgid "Add Node Point"
+msgstr "पसंदीदा:"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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 ""
@@ -3501,6 +3631,27 @@ msgid "Triangle already exists"
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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 ""
@@ -3509,6 +3660,10 @@ 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 ""
@@ -3526,6 +3681,10 @@ 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 ""
@@ -3535,11 +3694,51 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "जà¥à¤¡à¤¿à¤¯à¥‡"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "डिसà¥à¤•à¤¨à¥‡à¤•à¥à¤Ÿ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "à¤à¤¨à¤¿à¤®à¥‡à¤¶à¤¨ लूप"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+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 ""
@@ -3555,6 +3754,11 @@ msgid ""
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 ""
@@ -3782,6 +3986,20 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Move Node"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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 ""
@@ -3810,6 +4028,20 @@ msgid "No playback resource set at path: %s."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "मिटाना"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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"
@@ -4614,6 +4846,10 @@ msgstr ""
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 ""
@@ -5767,6 +6003,14 @@ 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 ""
@@ -5876,10 +6120,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5924,7 +6164,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6016,6 +6256,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6024,6 +6270,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6301,10 +6551,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6637,6 +6883,11 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "à¤à¤• नया बनाà¤à¤‚"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚"
@@ -6810,6 +7061,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6825,6 +7097,14 @@ msgstr ""
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 ""
@@ -6838,7 +7118,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6850,6 +7139,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7832,6 +8125,10 @@ 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 Node(s)?"
msgstr ""
@@ -7866,6 +8163,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Create Root Node:"
msgstr "à¤à¤• नया बनाà¤à¤‚"
@@ -8280,6 +8581,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8485,6 +8798,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8781,10 +9098,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8865,6 +9178,10 @@ 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 ""
diff --git a/editor/translations/hr.po b/editor/translations/hr.po
index ba06a478bb..bb303f6e71 100644
--- a/editor/translations/hr.po
+++ b/editor/translations/hr.po
@@ -81,6 +81,14 @@ msgstr ""
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 ""
@@ -110,6 +118,15 @@ msgid "Anim 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 ""
@@ -159,6 +176,10 @@ 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 ""
@@ -183,6 +204,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -233,6 +258,18 @@ 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 ""
@@ -274,6 +311,14 @@ 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 ""
@@ -298,6 +343,10 @@ msgid "Not possible to add a new track without a root"
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 ""
@@ -306,10 +355,22 @@ 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 ""
@@ -322,6 +383,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -364,10 +429,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -467,6 +528,18 @@ msgstr ""
msgid "Copy"
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 ""
@@ -1259,6 +1332,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1799,6 +1878,14 @@ 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 ""
@@ -3374,12 +3461,43 @@ 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 ""
@@ -3419,6 +3537,26 @@ 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 ""
@@ -3427,6 +3565,10 @@ 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 ""
@@ -3444,6 +3586,10 @@ 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 ""
@@ -3453,11 +3599,47 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+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 ""
@@ -3473,6 +3655,11 @@ msgid ""
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 ""
@@ -3698,6 +3885,19 @@ 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 "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 ""
@@ -3726,6 +3926,18 @@ 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"
@@ -4524,6 +4736,10 @@ msgstr ""
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 ""
@@ -5661,6 +5877,14 @@ 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 ""
@@ -5769,10 +5993,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5817,7 +6037,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -5909,6 +6129,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5917,6 +6143,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6193,10 +6423,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6522,6 +6748,10 @@ 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 ""
@@ -6684,6 +6914,26 @@ msgid "TileSet"
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 "Duplicate Nodes"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6699,6 +6949,14 @@ msgstr ""
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 ""
@@ -6712,7 +6970,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6724,6 +6991,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7700,6 +7971,10 @@ 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 Node(s)?"
msgstr ""
@@ -7734,6 +8009,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr ""
@@ -8146,6 +8425,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8350,6 +8641,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8644,10 +8939,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8728,6 +9019,10 @@ 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 ""
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index def006f056..273ad21282 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -94,6 +94,16 @@ msgstr "Kiválasztás megkettőzés"
msgid "Delete Selected Key(s)"
msgstr "Törli a kiválasztott fájlokat?"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Pont hozzáadása"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Pont Mozgatása"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Animáció kulcsok megkettőzése"
@@ -123,6 +133,16 @@ msgid "Anim Change Call"
msgstr "Animáció hívás változtatás"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Animáció Nevének Megváltoztatása:"
+
+#: 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 ""
@@ -178,6 +198,11 @@ msgstr ""
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Track Path"
+msgstr "Tömb Értékének Megváltoztatása"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Toggle this track on/off."
msgstr "Zavarmentes mód váltása."
@@ -205,6 +230,11 @@ msgid "Time (s): "
msgstr "Ãttűnési IdÅ‘ (mp):"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Doppler engedélyezése"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Folyamatos"
@@ -258,6 +288,21 @@ msgid "Delete Key(s)"
msgstr "Animáció kulcs törlés"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Animáció Nevének Megváltoztatása:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Animáció Node"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Animáció hurok változtatás"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Animáció nyomvonal eltávolítás"
@@ -299,6 +344,16 @@ msgid "Anim Insert Key"
msgstr "Animáció kulcs beillesztés"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Animáció Nevének Megváltoztatása:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "AutoLoad-ok Ãtrendezése"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -323,6 +378,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Animáció nyomvonal hozzáadás"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -331,10 +391,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "UV Térkép Transzformálása"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Animáció nyomvonal hozzáadás"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Animáció nyomvonal és kulcs beillesztés"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -348,6 +423,11 @@ msgid "Clipboard is empty"
msgstr "Az erőforrás vágólap üres!"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "Paraméterek Beillesztése"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Animáció kulcsok nyújtás"
@@ -394,11 +474,6 @@ msgid "Copy Tracks"
msgstr "Paraméterek Másolása"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Paraméterek Beillesztése"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Kiválasztás átméretezés"
@@ -501,6 +576,19 @@ msgstr ""
msgid "Copy"
msgstr "Másolás"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Animáció nyomvonal hozzáadás"
+
+#: 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 "Tömb Ãtméretezése"
@@ -1315,6 +1403,12 @@ msgstr ""
msgid "Packing"
msgstr "Csomagolás"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1916,6 +2010,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Bezárás előtt menti a '%s'-n végzett módosításokat?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Nem sikerült betölteni az erőforrást."
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Scene mentés másként..."
@@ -3606,12 +3709,49 @@ msgstr "Betöltés"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Pont Mozgatása"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Keverési Idő Módosítása"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Keverési Idő Módosítása"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Pont hozzáadása"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Animáció Hozzáadása"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Útvonal Pont Eltávolítása"
+
+#: 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 ""
@@ -3654,6 +3794,30 @@ msgid "Triangle already exists"
msgstr "HIBA: Animáció név már létezik!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Animáció nyomvonal hozzáadás"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Keverési Idő Módosítása"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Keverési Idő Módosítása"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Útvonal Pont Eltávolítása"
+
+#: 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 ""
@@ -3662,6 +3826,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "AutoLoad Globálisok Kapcsolása"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3679,6 +3848,11 @@ msgid "Blend:"
msgstr "Keverés:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Változások Frissítése"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Szűrők Szerkesztése"
@@ -3688,11 +3862,54 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Mozgás Mód"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Csatlakozva"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Kapcsolat bontva"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animáció"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Node létrehozás"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Zavarmentes mód váltása."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Animáció hossz változtatás"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3708,6 +3925,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Node neve:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr ""
@@ -3943,6 +4166,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Animációk Közötti Keverési Idők"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Mozgás Mód"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Ãtmenet"
+
+#: 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 ""
@@ -3972,6 +4210,20 @@ msgid "No playback resource set at path: %s."
msgstr "Nincs az erőforrás elérési útban."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Eltávolít"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Ãtmenet Node"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Set Start Node (Autoplay)"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid ""
"Select and move nodes.\n"
"RMB to add new nodes.\n"
@@ -4811,6 +5063,10 @@ msgstr "Tartsa lenyomva a Shift gombot az érintők egyenkénti szerkesztéséhe
msgid "Bake GI Probe"
msgstr "GI Szonda Besütése"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "%d elem"
@@ -6004,6 +6260,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Kibocsátási Pontok Létrehozása A Mesh Alapján"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "Egyke"
@@ -6115,10 +6380,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -6163,7 +6424,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6256,6 +6517,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6264,6 +6531,11 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Rácshoz illesztés"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6545,10 +6817,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6889,6 +7157,11 @@ msgstr "Jobb Egérgomb: Pont Törlése."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Új %s Létrehozása"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Új sokszög létrehozása a semmiből."
@@ -7070,6 +7343,29 @@ msgid "TileSet"
msgstr "TileSet-re..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Beállítás Alapértelmezettként '%s'-hez"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "Ãrnyaló"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Animáció kulcsok megkettőzése"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -7086,6 +7382,16 @@ msgstr ""
msgid "VisualShader"
msgstr "Ãrnyaló"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Szűrők Szerkesztése"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Ãrnyaló"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -7099,7 +7405,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -7112,6 +7427,10 @@ msgid "Exporting All"
msgstr "Exportálás"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -8106,6 +8425,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Scene mentés"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8142,6 +8466,11 @@ msgstr "Csontok Létrehozása"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Scene mentés"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Node létrehozás"
@@ -8564,6 +8893,20 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Lassan Ki"
+
+#: editor/settings_config_dialog.cpp
+msgid "Restore Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Horgonyok Módosítása"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr ""
@@ -8772,6 +9115,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -9074,10 +9421,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -9160,6 +9503,11 @@ msgid "Change Input Value"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "CanvasItem Szerkesztése"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
@@ -10071,10 +10419,6 @@ msgstr ""
#~ msgid "Convert To Lowercase"
#~ msgstr "Konvertálás Kisbetűsre"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "Rácshoz illesztés"
-
#~ msgid "Bake!"
#~ msgstr "Besütés!"
@@ -10171,12 +10515,6 @@ msgstr ""
#~ msgid "Out-In"
#~ msgstr "Ki-Be"
-#~ msgid "Change Anim Len"
-#~ msgstr "Animáció hossz változtatás"
-
-#~ msgid "Change Anim Loop"
-#~ msgstr "Animáció hurok változtatás"
-
#~ msgid "Anim Create Typed Value Key"
#~ msgstr "Animáció típusos érték kulcs létrehozás"
diff --git a/editor/translations/id.po b/editor/translations/id.po
index b850071957..08c16c0a34 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -17,12 +17,13 @@
# yursan9 <rizal.sagi@gmail.com>, 2016.
# Evan Hyacinth <muhammad.ivan669@gmail.com>, 2018, 2019.
# Guntur Sarwohadi <gsarwohadi@gmail.com>, 2019.
+# Alphin Albukhari <alphinalbukhari5@gmail.com>, 2019.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-01-13 15:07+0000\n"
-"Last-Translator: Guntur Sarwohadi <gsarwohadi@gmail.com>\n"
+"PO-Revision-Date: 2019-03-01 11:59+0000\n"
+"Last-Translator: Alphin Albukhari <alphinalbukhari5@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/"
"godot/id/>\n"
"Language: id\n"
@@ -30,7 +31,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.4-dev\n"
+"X-Generator: Weblate 3.5-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -98,6 +99,16 @@ msgstr "Duplikat Key Terpilih"
msgid "Delete Selected Key(s)"
msgstr "Hapus Key Terpilih"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Tambahkan Sinyal"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Hapus Sinyal"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Tombol Duplikat Anim"
@@ -127,6 +138,16 @@ msgid "Anim Change Call"
msgstr "Ubah Panggilan Anim"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Ubah Nama Animasi:"
+
+#: 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 "Track Properti"
@@ -176,6 +197,11 @@ msgid "Anim Clips:"
msgstr "Klip-klip Animasi:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Ubah Nilai Array"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Alihkan track ini ke nyala/mati."
@@ -200,6 +226,11 @@ msgid "Time (s): "
msgstr "Waktu (d): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Aktifkan"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Lanjut"
@@ -250,6 +281,21 @@ msgid "Delete Key(s)"
msgstr "Hapus Key"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Ubah Nama Animasi:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Mode Interpolasi"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Ubah Perulangan Animasi"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Hapus Trek Anim"
@@ -292,6 +338,16 @@ msgid "Anim Insert Key"
msgstr "Sisipkan Key Anim"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Ubah Nama Animasi:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Mengatur kembali Autoload-autoload"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "Track transformasi hanya berlaku untuk node berbasis ruangan."
@@ -321,6 +377,11 @@ msgid "Not possible to add a new track without a root"
msgstr "Tidak memungkinkan untuk menambah track baru tanpa akar"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Tambah Track"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "Tidak bisa menambahkan key karena path pada track tidak sah."
@@ -329,11 +390,26 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "Track bukan tipe Spatial, tidak bisa menambahkan key"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Track Transformasi 3D"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Tambah Track"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
"Tidak bisa menambahkan key untuk metode karena path pada track tidak sah."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Track Pemanggil Metode"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Metode tidak ditemukan dalam objek: "
@@ -346,6 +422,11 @@ msgid "Clipboard is empty"
msgstr "Papan klip kosong"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "Tempel Parameter"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Skala Kunci Anim"
@@ -390,11 +471,6 @@ msgid "Copy Tracks"
msgstr "Salin Parameter"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Tempel Parameter"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Seleksi Skala"
@@ -443,15 +519,15 @@ msgstr "Gunakan Lengkungan Bezier"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
-msgstr "Anim. Optimisasi"
+msgstr "Pengoptimal Animasi"
#: editor/animation_track_editor.cpp
msgid "Max. Linear Error:"
-msgstr "Maks. Linier Error:"
+msgstr "Error Linier Maksimum:"
#: editor/animation_track_editor.cpp
msgid "Max. Angular Error:"
-msgstr "Maks. Angular Error:"
+msgstr "Error Angular Maksimum:"
#: editor/animation_track_editor.cpp
msgid "Max Optimizable Angle:"
@@ -459,7 +535,7 @@ msgstr "Maksimal Angle yang dapat Dioptimalkan:"
#: editor/animation_track_editor.cpp
msgid "Optimize"
-msgstr "Optimasi"
+msgstr "Optimalkan"
#: editor/animation_track_editor.cpp
msgid "Remove invalid keys"
@@ -483,7 +559,7 @@ msgstr "Bersihkan"
#: editor/animation_track_editor.cpp
msgid "Scale Ratio:"
-msgstr "Skala Rasio:"
+msgstr "Rasio Skala:"
#: editor/animation_track_editor.cpp
msgid "Select tracks to copy:"
@@ -497,6 +573,19 @@ msgstr "Pilih track untuk disalin:"
msgid "Copy"
msgstr "Kopy"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Klip-klip Suara:"
+
+#: 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 "Ubah ukuran Array"
@@ -523,7 +612,7 @@ msgstr "Tidak ada yang cocok"
#: editor/code_editor.cpp
msgid "Replaced %d occurrence(s)."
-msgstr "%d kejadian diganti."
+msgstr "kejadian %d diganti."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
@@ -563,11 +652,11 @@ msgstr "Kebalikan Semula Pandangan"
#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp
msgid "Warnings"
-msgstr ""
+msgstr "Peringatan"
#: editor/code_editor.cpp
msgid "Line and column numbers."
-msgstr ""
+msgstr "Nomor Baris dan Kolom"
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
@@ -651,18 +740,17 @@ msgid "Disconnect '%s' from '%s'"
msgstr "Memutuskan '%s' dari '%s'"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Disconnect all from signal: '%s'"
-msgstr "Memutuskan '%s' dari '%s'"
+msgstr "Memutuskan semua dari sinyal '%s'"
#: editor/connections_dialog.cpp
msgid "Connect..."
-msgstr "Menyambungkan..."
+msgstr "Sambungkan..."
#: editor/connections_dialog.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Disconnect"
-msgstr "Tidak tersambung"
+msgstr "Putuskan"
#: editor/connections_dialog.cpp
msgid "Connect Signal: "
@@ -1310,6 +1398,12 @@ msgstr ""
msgid "Packing"
msgstr "Mengemas"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1904,6 +1998,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Simpan perubahan '%s' sebelum tutup?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Gagal memuat resource."
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Simpan Scene Sebagai..."
@@ -3604,12 +3707,49 @@ msgstr "Muat"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Hapus Sinyal"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Ubah Waktu Blend"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Ubah Waktu Blend"
+
+#: 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 "Node tipe ini tidak dapat digunakan. Hanya node utama yang diijinkan."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Tambahkan Node"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Tambah Animasi"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Hapus Bidang dan Titik"
+
+#: 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 ""
@@ -3654,6 +3794,31 @@ msgid "Triangle already exists"
msgstr "KESALAHAN: Nama animasi sudah ada!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Tambahkan Variabel"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Ubah Waktu Blend"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Ubah Waktu Blend"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Hapus Bidang dan Titik"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Hapus Variabel"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D tidak dimiliki oleh sebuah node AnimationTree."
@@ -3662,6 +3827,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "Tidak ada segi tiga, pembauran tidak di terapkan."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Beralih AutoLoad Globals"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Buat segi tiga dengan menghubungkan titik-titik."
@@ -3679,6 +3849,11 @@ msgid "Blend:"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Menyimpan perubahan-perubahan lokal..."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#, fuzzy
msgid "Edit Filters"
@@ -3689,12 +3864,56 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Tambahkan Node (Node-node) dari Tree"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Nama Node:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
"Tidak dapat terhubung, port mungkin sedang digunakan atau hubungan tidak sah."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Terhubung"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Terputus"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animasi"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Metode Publik:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Alihkan track ini ke nyala/mati."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Ganti Ukuran Kamera"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"Tidak ada pemutar animasi disetel, jadi tidak bisa mendapatkan nama track."
@@ -3714,6 +3933,12 @@ msgstr ""
"nama track."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Nama Node:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -3958,6 +4183,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Waktu Berbaur Animasi-silang"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Salin Resource"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Transisi"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Tambahkan Node"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr "Akhir"
@@ -3987,6 +4227,20 @@ msgid "No playback resource set at path: %s."
msgstr "Tidak didalam path resource."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Dihapus:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Node Transisi"
+
+#: 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"
@@ -4830,6 +5084,10 @@ msgstr "Tahan Shift untuk menyunting tangen kurva satu-persatu"
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 ""
@@ -6027,6 +6285,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Mainkan Custom Scene"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "Singleton"
@@ -6141,10 +6408,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Tampilan Atas."
@@ -6189,8 +6452,9 @@ msgid "Rear"
msgstr "Belakang"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
-msgstr ""
+#, fuzzy
+msgid "Align with View"
+msgstr "Tampilan Kanan."
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "No parent to instance a child at."
@@ -6288,6 +6552,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6296,6 +6566,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Select Mode (Q)"
msgstr "Metode Publik:"
@@ -6580,10 +6854,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6930,6 +7200,11 @@ msgstr "Beri Skala Seleksi"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Buat Baru %s"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Buat Bidang"
@@ -7115,6 +7390,28 @@ msgid "TileSet"
msgstr "TileSet..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Jadikan Baku untuk '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Duplikat Key"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -7132,6 +7429,16 @@ msgstr "Kanan"
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Sunting Filter"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Ubah"
+
#: editor/project_export.cpp
#, fuzzy
msgid "Runnable"
@@ -7148,7 +7455,16 @@ msgid "Delete preset '%s'?"
msgstr "Hapus file yang dipilih?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -7161,6 +7477,10 @@ msgid "Exporting All"
msgstr "Mengekspor untuk %s"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -8191,6 +8511,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Simpan Scene"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8226,6 +8551,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Simpan Scene"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Buat Folder"
@@ -8665,6 +8995,19 @@ msgid "Set From Tree"
msgstr "Menyetel Dari Keturunan"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Beri Skala Seleksi"
+
+#: editor/settings_config_dialog.cpp
+msgid "Restore Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Change Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr ""
@@ -8888,6 +9231,10 @@ msgid "GridMap Duplicate Selection"
msgstr "Duplikat Pilihan"
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -9205,10 +9552,6 @@ msgid "Change Expression"
msgstr "Ubah Pernyataan"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Tambahkan Node"
-
-#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Remove VisualScript Nodes"
msgstr "Hapus Tombol-tombol yang tidak sah"
@@ -9301,6 +9644,11 @@ msgid "Change Input Value"
msgstr "Ubah Nilai Array"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Sunting CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
@@ -10329,9 +10677,6 @@ msgstr ""
#~ msgid "Change Anim Len"
#~ msgstr "Ubah Panjang Animasi"
-#~ msgid "Change Anim Loop"
-#~ msgstr "Ubah Perulangan Animasi"
-
#~ msgid "Anim Create Typed Value Key"
#~ msgstr "Buat Nilai Kunci Animasi Tertulis"
@@ -10539,9 +10884,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "Ditambahkan:"
-#~ msgid "Removed:"
-#~ msgstr "Dihapus:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "Tidak dapat menyimpan sub tekstur atlas:"
diff --git a/editor/translations/is.po b/editor/translations/is.po
index 6b2588ca26..01875778cf 100644
--- a/editor/translations/is.po
+++ b/editor/translations/is.po
@@ -84,6 +84,14 @@ msgstr "Afrita val"
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 "Anim Tvíteknir lyklar"
@@ -118,6 +126,15 @@ msgid "Anim Change Call"
msgstr "Útkall breyting símtal"
#: 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 ""
@@ -168,6 +185,10 @@ 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 ""
@@ -193,6 +214,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Continuous"
msgstr "Samfellt"
@@ -248,6 +273,19 @@ msgid "Delete Key(s)"
msgstr "Anim DELETE-lyklar"
#: editor/animation_track_editor.cpp
+msgid "Change Animation Update Mode"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Breytingar á Anim track"
+
+#: editor/animation_track_editor.cpp
+msgid "Change Animation Loop Mode"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Remove Anim Track"
msgstr "Fjarlægja Anim track"
@@ -290,6 +328,15 @@ msgid "Anim Insert Key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Anim breyting umskipti"
+
+#: editor/animation_track_editor.cpp
+msgid "Rearrange Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -314,6 +361,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Anim bæta við lag"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -322,10 +374,24 @@ 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
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Anim bæta við lag"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Anim bæta við lag"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -339,6 +405,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -381,10 +451,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Scale Selection"
msgstr "Val á kvarða"
@@ -488,6 +554,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Anim bæta við lag"
+
+#: 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 ""
@@ -1280,6 +1359,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1821,6 +1906,14 @@ 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 ""
@@ -3399,12 +3492,44 @@ 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
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Stillið breyting á:"
+
+#: 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 ""
@@ -3444,6 +3569,27 @@ msgid "Triangle already exists"
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Anim bæta við lag"
+
+#: 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 ""
@@ -3452,6 +3598,10 @@ 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 ""
@@ -3469,6 +3619,10 @@ 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 ""
@@ -3478,11 +3632,49 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+#, fuzzy
+msgid "Set Animation"
+msgstr "Stillið breyting á:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Anim DELETE-lyklar"
+
+#: 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 ""
@@ -3498,6 +3690,11 @@ msgid ""
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 ""
@@ -3724,6 +3921,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Hreyfa Viðbótar Lykil"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Stillið breyting á:"
+
+#: 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 ""
@@ -3752,6 +3964,19 @@ 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
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Stillið breyting á:"
+
+#: 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"
@@ -4552,6 +4777,10 @@ msgstr ""
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 ""
@@ -5692,6 +5921,14 @@ 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 ""
@@ -5800,10 +6037,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5848,7 +6081,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -5940,6 +6173,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5948,6 +6187,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6224,10 +6467,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6558,6 +6797,10 @@ 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 ""
@@ -6728,6 +6971,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Tvíteknir lyklar"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6743,6 +7007,14 @@ msgstr ""
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 ""
@@ -6756,7 +7028,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6768,6 +7049,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7748,6 +8033,10 @@ 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 Node(s)?"
msgstr ""
@@ -7782,6 +8071,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr ""
@@ -8194,6 +8487,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8399,6 +8704,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8694,10 +9003,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8778,6 +9083,10 @@ 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 ""
@@ -9551,10 +9860,6 @@ msgstr ""
#~ msgstr "Færa Anim track niður"
#, fuzzy
-#~ msgid "Anim Track Change Interpolation"
-#~ msgstr "Breytingar á Anim track"
-
-#, fuzzy
#~ msgid "Anim Track Change Value Mode"
#~ msgstr "Breyta gildisstilling í Anim track"
@@ -9565,6 +9870,3 @@ msgstr ""
#, fuzzy
#~ msgid "Anim Add Key"
#~ msgstr "Anim bæta við lykli"
-
-#~ msgid "Move Add Key"
-#~ msgstr "Hreyfa Viðbótar Lykil"
diff --git a/editor/translations/it.po b/editor/translations/it.po
index 97f764a309..a859a8b3be 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -111,6 +111,16 @@ msgstr "Duplicare la(e) chiave selezionata(e)"
msgid "Delete Selected Key(s)"
msgstr "Eliminare la(e) Chiave(i) Selezionata(e)"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Aggiungi punto"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Sposta Punto"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Duplica Key Animazione"
@@ -141,6 +151,16 @@ msgstr "Anim Cambia Chiamata"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Animation Length"
+msgstr "Cambia Loop Animazione"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "Cambia Loop Animazione"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Property Track"
msgstr "Proprietà:"
@@ -195,6 +215,11 @@ msgid "Anim Clips:"
msgstr "Clips"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Cambia Valore Array"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Attiva/Disattiva la traccia."
@@ -221,6 +246,11 @@ msgid "Time (s): "
msgstr "Tempo (s): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Abilita Doppler"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Continuo"
@@ -275,6 +305,21 @@ msgid "Delete Key(s)"
msgstr "Elimina Nodo(i)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Cambia Nome Animazione:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Nodo Animazione"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Cambia Loop Animazione"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Rimuovi Traccia Animazione"
@@ -316,6 +361,16 @@ msgid "Anim Insert Key"
msgstr "Anim Inserisci Key"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Cambia FPS ANimazione"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Riordina gli Autoload"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -345,6 +400,11 @@ msgstr ""
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Aggiungi Traccia"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Track path is invalid, so can't add a key."
msgstr "Il tracciato non è valido, non è possibile aggiungere una chiave."
@@ -354,11 +414,26 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "La traccia non è di tipo Spatial, impossibile aggiungere la chiave."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Trasformazione 3D"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Aggiungi Traccia"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Anim Inserisci Traccia e Key"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Method not found in object: "
msgstr "Metodo non trovato nell'oggetto: "
@@ -372,6 +447,11 @@ msgid "Clipboard is empty"
msgstr "Gli appunti sono vuoti"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "Incolla Parametri"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Anim Scala Key"
@@ -417,11 +497,6 @@ msgid "Copy Tracks"
msgstr "Copia parametri"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Incolla Parametri"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Scala Selezione"
@@ -521,6 +596,19 @@ msgstr ""
msgid "Copy"
msgstr "Copia"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Audio Listener"
+
+#: 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 "Ridimensiona Array"
@@ -1342,6 +1430,12 @@ msgstr ""
msgid "Packing"
msgstr "Impacchettando"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1924,6 +2018,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "Salvare le modifiche a '%s' prima di chiudere?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Caricamento della risorsa fallito."
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "Solo un file è richiesto per una texture grande."
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Salva Scena Come..."
@@ -3617,12 +3721,49 @@ msgstr "Carica"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Sposta Punto"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Cambia tempo di Blend"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Cambia tempo di Blend"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Aggiungi Nodo"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Aggiungi Animazione"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Rimuovi Punto Percorso"
+
+#: 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 ""
@@ -3665,6 +3806,31 @@ msgid "Triangle already exists"
msgstr "L'Azione '%s' esiste già!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Aggiungi Variabile"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Cambia tempo di Blend"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Cambia tempo di Blend"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Rimuovi Punto Percorso"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Rimuovi Variabile"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
@@ -3673,6 +3839,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Abilita AutoLoad Globals"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3691,6 +3862,11 @@ msgid "Blend:"
msgstr "Blend:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Cambiamenti dei Materiali"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Modifica Filtri"
@@ -3700,11 +3876,55 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Aggiungi Nodo(i) Da Albero"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Modalità Movimento"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Connesso"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Disconnesso"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animazione"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Elimina Nodo(i)"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Attiva/Disattiva la traccia."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Cambia tempo di Blend"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3720,6 +3940,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Nome Nodo:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -3958,6 +4184,21 @@ msgstr "Tempi di Blend Cross-Animation"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
+msgid "Move Node"
+msgstr "Modalità Movimento"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Aggiungi Traduzione"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Aggiungi Nodo"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "End"
msgstr "Fine(i)"
@@ -3987,6 +4228,20 @@ msgid "No playback resource set at path: %s."
msgstr "Non è nel percorso risorse."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Rimosso:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Nodo Transizione"
+
+#: 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"
@@ -4829,6 +5084,10 @@ msgstr "Tenere Premuto Shift per modificare le tangenti singolarmente"
msgid "Bake GI Probe"
msgstr "Cuoci GI Probe"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Elemento %d"
@@ -6031,6 +6290,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Crea Punti Emissione Da Mesh"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "Scheletro..."
@@ -6144,10 +6412,6 @@ msgid "Vertices"
msgstr "Vertici"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Vista dall'Alto."
@@ -6192,7 +6456,8 @@ msgid "Rear"
msgstr "Retro"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Allinea a vista"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6286,6 +6551,12 @@ msgid "Freelook Speed Modifier"
msgstr "Modificatore Velocità Vista Libera"
#: 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
#, fuzzy
msgid "View Rotation Locked"
msgstr "Visualizza Informazioni"
@@ -6295,6 +6566,11 @@ msgid "XForm Dialog"
msgstr "Finestra di XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Allinea alla griglia"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Modalità di Selezione (Q)"
@@ -6582,10 +6858,6 @@ msgid "Add Empty"
msgstr "Aggiungi vuoto"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Cambia Loop Animazione"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Cambia FPS ANimazione"
@@ -6932,6 +7204,11 @@ msgstr "RMB: Elimina Punto."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Crea Nuovo %s"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Crea un nuovo poligono dal nulla."
@@ -7117,6 +7394,29 @@ msgid "TileSet"
msgstr "TileSet"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Imposta come Default per '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "Shader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Duplica Nodo(i)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vertex"
msgstr "Vertici"
@@ -7135,6 +7435,16 @@ msgstr "Destra"
msgid "VisualShader"
msgstr "Shader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Modifica Filtri"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Cambiamenti delle Shader"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Eseguibile"
@@ -7149,9 +7459,17 @@ msgid "Delete preset '%s'?"
msgstr "Eliminare preset '%s'?"
#: editor/project_export.cpp
-#, fuzzy
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "Le export templates per questa piattaforma sono mancanti:"
+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
#, fuzzy
@@ -7164,6 +7482,11 @@ msgid "Exporting All"
msgstr "Esportando per %s"
#: editor/project_export.cpp
+#, fuzzy
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "Le export templates per questa piattaforma sono mancanti:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Presets"
@@ -8214,6 +8537,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Nuova Scena di Root"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Elimina Nodo(i)?"
@@ -8249,6 +8577,11 @@ msgstr "Rendi Locale"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Nuova Scena di Root"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Crea Nodo"
@@ -8699,6 +9032,21 @@ msgid "Set From Tree"
msgstr "Imposta da Tree"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Ease Out"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Scorciatoie"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Cambia Ancore"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Scorciatoie"
@@ -8925,6 +9273,11 @@ msgstr "Duplica Selezione"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
+msgid "GridMap Paint"
+msgstr "Impostazioni Snap"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Grid Map"
msgstr "Snap Griglia"
@@ -9259,10 +9612,6 @@ msgid "Change Expression"
msgstr "Cambia Espressione"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Aggiungi Nodo"
-
-#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Remove VisualScript Nodes"
msgstr "Rimuovi key invalidi"
@@ -9360,6 +9709,11 @@ msgstr "Cambia Nome Input"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
+msgid "Resize Comment"
+msgstr "Modifica CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Can't copy the function node."
msgstr "Non posso operare su '..'"
@@ -10251,6 +10605,9 @@ msgstr ""
msgid "Varyings can only be assigned in vertex function."
msgstr ""
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#, fuzzy
#~ msgid "Warnings:"
#~ msgstr "Avvertimento"
@@ -10425,10 +10782,6 @@ msgstr ""
#~ msgid "Convert To Lowercase"
#~ msgstr "Converti In Minuscolo"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "Allinea alla griglia"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "Ruota a 0 gradi"
@@ -10969,9 +11322,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "Agginto:"
-#~ msgid "Removed:"
-#~ msgstr "Rimosso:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "Impossibile salvare la substruttura dell'atlas:"
@@ -11243,9 +11593,6 @@ msgstr ""
#~ msgid "Error importing:"
#~ msgstr "Errore di importazione:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "Solo un file è richiesto per una texture grande."
-
#~ msgid "Max Texture Size:"
#~ msgstr "Dimensione Texture Massima:"
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index 863ed46ae1..93e7d244a4 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -25,7 +25,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-02-18 08:54+0000\n"
+"PO-Revision-Date: 2019-03-01 11:59+0000\n"
"Last-Translator: nitenook <admin@alterbaum.net>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/"
"godot/ja/>\n"
@@ -39,7 +39,7 @@ msgstr ""
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Convert()ã«å¯¾ã—ã¦ç„¡åŠ¹ãªåž‹ã®å¼•æ•°ã§ã™ã€‚TYPE_ 定数を使ã£ã¦ãã ã•ã„。"
+msgstr "convert() ã®å¼•æ•°ã®åž‹ãŒç„¡åŠ¹ã§ã™ã€‚TYPE_* 定数を使ã£ã¦ãã ã•ã„。"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -100,6 +100,16 @@ msgstr "é¸æŠžä¸­ã®ã‚­ãƒ¼ã‚’複製"
msgid "Delete Selected Key(s)"
msgstr "é¸æŠžä¸­ã®ã‚­ãƒ¼ã‚’削除"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "点を追加"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "ãƒã‚¤ãƒ³ãƒˆã‚’移動"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "アニメーションã®ã‚­ãƒ¼ã‚’複製"
@@ -129,6 +139,16 @@ msgid "Anim Change Call"
msgstr "アニメーション呼出ã—ã®å¤‰æ›´"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 "プロパティトラック"
@@ -178,6 +198,11 @@ msgid "Anim Clips:"
msgstr "アニメーションクリップ:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "é…列ã®å€¤ã‚’変更"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "ã“ã®ãƒˆãƒ©ãƒƒã‚¯ã® オン/オフ を切り替ãˆã€‚"
@@ -202,6 +227,11 @@ msgid "Time (s): "
msgstr "時間 (秒): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "有効ã«ã™ã‚‹"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "継続的"
@@ -252,6 +282,21 @@ msgid "Delete Key(s)"
msgstr "キーを削除"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "アニメーションåを変更:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "補間モード"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "アニメーションã®ãƒ«ãƒ¼ãƒ—を変更"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "アニメーショントラックを除去"
@@ -295,6 +340,16 @@ msgid "Anim Insert Key"
msgstr "アニメーションキーを挿入"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "アニメーションã®FPSを変更"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "自動読込ã¿ã®ä¸¦ã¹æ›¿ãˆ"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "トランスフォームトラックã¯ç©ºé–“ベースã®ãƒŽãƒ¼ãƒ‰ã«ã®ã¿é©ç”¨ã•ã‚Œã¾ã™ã€‚"
@@ -326,6 +381,11 @@ msgid "Not possible to add a new track without a root"
msgstr "root ãŒç„¡ã‘ã‚Œã°æ–°è¦ãƒˆãƒ©ãƒƒã‚¯ã¯è¿½åŠ ã§ãã¾ã›ã‚“"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "トラックを追加"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "トラックã®ãƒ‘スãŒç„¡åŠ¹ãªãŸã‚ã€ã‚­ãƒ¼ã‚’追加ã§ãã¾ã›ã‚“。"
@@ -334,10 +394,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "トラック㌠spatial åž‹ã§ã¯ãªã„ãŸã‚ã€ã‚­ãƒ¼ã‚’挿入ã§ãã¾ã›ã‚“"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "3Dトランスフォームトラック"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "メソッド呼出ã—トラック"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "オブジェクトã«ãƒ¡ã‚½ãƒƒãƒ‰ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“: "
@@ -350,6 +425,10 @@ msgid "Clipboard is empty"
msgstr "クリップボードãŒç©ºã§ã™"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "トラックを貼り付ã‘"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "アニメーションキーã®æ‹¡ç¸®"
@@ -393,10 +472,6 @@ msgid "Copy Tracks"
msgstr "トラックをコピー"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "トラックを貼り付ã‘"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "スケールã®é¸æŠž"
@@ -496,6 +571,19 @@ msgstr "コピーã™ã‚‹ãƒˆãƒ©ãƒƒã‚¯ã‚’é¸æŠž:"
msgid "Copy"
msgstr "コピー"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "é…列ã®ã‚µã‚¤ã‚ºã‚’変更"
@@ -565,9 +653,8 @@ msgid "Warnings"
msgstr "警告"
#: editor/code_editor.cpp
-#, fuzzy
msgid "Line and column numbers."
-msgstr "è¡ŒåŠã³åˆ—番å·"
+msgstr "行番å·ã¨åˆ—番å·ã€‚"
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
@@ -1124,9 +1211,8 @@ msgid "Add Bus"
msgstr "ãƒã‚¹ã‚’追加"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "オーディオãƒã‚¹ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’別åã§ä¿å­˜..."
+msgstr "æ–°è¦ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªãƒã‚¹ã‚’ã“ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã«è¿½åŠ ã™ã‚‹ã€‚"
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1301,6 +1387,12 @@ msgstr "エクスãƒãƒ¼ãƒˆ テンプレートãŒäºˆæƒ³ã•ã‚ŒãŸãƒ‘スã«è¦‹ã¤ã
msgid "Packing"
msgstr "パックã™ã‚‹"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1536,7 +1628,7 @@ msgid ""
"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
"url][/color]."
msgstr ""
-"ç¾åœ¨ã€ã“ã®ã‚¯ãƒ©ã‚¹ã®ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«ã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€[color=$color][url=$url]寄付"
+"ç¾åœ¨ã€ã“ã®ã‚¯ãƒ©ã‚¹ã®ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«ã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€[color=$color][url=$url]貢献"
"[/url][/color]ã€ã¾ãŸã¯[color=$color][url=$url2]リクエスト[/url][/color]ã¯å¯èƒ½"
"ã§ã™ã€‚"
@@ -1553,8 +1645,8 @@ msgid ""
"There is currently no description for this property. Please help us by "
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"ç¾åœ¨ã€ã“ã®ãƒ—ロパティã®èª¬æ˜Žã¯ã‚ã‚Šã¾ã›ã‚“。[color=$color][url=$url]寄付[/url][/"
-"color]ã—ã¦ç§ãŸã¡ã‚’助ã‘ã¦ãã ã•ã„ï¼"
+"ç¾åœ¨ã€ã“ã®ãƒ—ロパティã®èª¬æ˜Žã¯ã‚ã‚Šã¾ã›ã‚“。[color=$color][url=$url]貢献[/url][/"
+"color]ã—ã¦ç§ãŸã¡ã‚’助ã‘ã¦ãã ã•ã„!"
#: editor/editor_help.cpp
msgid "Method Descriptions"
@@ -1569,8 +1661,8 @@ msgid ""
"There is currently no description for this method. Please help us by [color="
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"ç¾åœ¨ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®èª¬æ˜Žã¯ã‚ã‚Šã¾ã›ã‚“。[color=$color][url=$url]寄付[/url][/"
-"color]ã—ã¦ç§ãŸã¡ã‚’助ã‘ã¦ãã ã•ã„ï¼"
+"ç¾åœ¨ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®èª¬æ˜Žã¯ã‚ã‚Šã¾ã›ã‚“。[color=$color][url=$url]貢献[/url][/"
+"color]ã—ã¦ç§ãŸã¡ã‚’助ã‘ã¦ãã ã•ã„!"
#: editor/editor_help_search.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -1873,6 +1965,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "é–‰ã˜ã‚‹å‰ã«ã€'%s' ã¸ã®å¤‰æ›´ã‚’ä¿å­˜ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "リソースã®èª­è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "大ããªãƒ†ã‚¯ã‚¹ãƒãƒ£ã®ãŸã‚ã«ä¸€ã¤ãƒ•ã‚¡ã‚¤ãƒ«ãŒå¿…è¦ã§ã™"
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "åå‰ã‚’付ã‘ã¦ã‚·ãƒ¼ãƒ³ã‚’ä¿å­˜..."
@@ -2394,9 +2496,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 Always"
@@ -3129,7 +3230,7 @@ msgstr "スクリプト作æˆ"
#: editor/find_in_files.cpp
msgid "Find in Files"
-msgstr "ファイル内検索"
+msgstr "複数ファイル内を検索"
#: editor/find_in_files.cpp
msgid "Find:"
@@ -3314,8 +3415,9 @@ msgid "Reimport"
msgstr "å†ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
#: editor/import_dock.cpp
+#, fuzzy
msgid "Save scenes, re-import and restart"
-msgstr ""
+msgstr "シーンをä¿å­˜ã—ã€å†ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¦å†èµ·å‹•"
#: editor/import_dock.cpp
msgid "Changing the type of an imported file requires editor restart."
@@ -3502,12 +3604,49 @@ msgstr "読ã¿è¾¼ã‚€.."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "ãƒã‚¤ãƒ³ãƒˆã‚’移動"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "ブレンド時間ã®å¤‰æ›´"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "ブレンド時間ã®å¤‰æ›´"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr "ã“ã®ã‚¿ã‚¤ãƒ—ã®ãƒŽãƒ¼ãƒ‰ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。ルートノードã®ã¿ãŒè¨±å¯ã•ã‚Œã¾ã™ã€‚"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "ノードを追加"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "アニメーションを追加"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3550,6 +3689,31 @@ msgid "Triangle already exists"
msgstr "三角形ãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "変数を追加"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "ブレンド時間ã®å¤‰æ›´"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "ブレンド時間ã®å¤‰æ›´"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "パスã®ãƒã‚¤ãƒ³ãƒˆã‚’除去"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "無効ãªã‚­ãƒ¼ã‚’削除"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "ブレンドシェイプ2Dã¯ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ãƒ„リー ノードã«å±žã—ã¾ã›ã‚“。"
@@ -3558,6 +3722,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "三角形ãŒå­˜åœ¨ã—ãªã„ãŸã‚ã€ãƒ–レンドã§ãã¾ã›ã‚“。"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "グローãƒãƒ«ã®è‡ªå‹•èª­è¾¼ã¿ã‚’切り替ãˆ"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "点を繋ã„ã§ä¸‰è§’形を作æˆã™ã‚‹ã€‚"
@@ -3575,6 +3744,11 @@ msgid "Blend:"
msgstr "ブレンド:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "マテリアルã®å¤‰æ›´"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "フィルタã®ç·¨é›†"
@@ -3584,11 +3758,55 @@ msgid "Output node can't be added to the blend tree."
msgstr "出力ノードをブレンドツリーã«è¿½åŠ ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "シーンã‹ã‚‰ã®ãƒŽãƒ¼ãƒ‰"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "追加ã—ãŸã‚­ãƒ¼ã‚’移動"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr "接続ã§ãã¾ã›ã‚“。ãƒãƒ¼ãƒˆãŒä½¿ç”¨ä¸­ã‹ã€æŽ¥ç¶šãŒç„¡åŠ¹ã§ã‚ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "接続ã—ã¾ã—ãŸ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "切断ã•ã‚Œã¾ã—ãŸ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "æ–°è¦ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "ノードを削除"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "ã“ã®ãƒˆãƒ©ãƒƒã‚¯ã® オン/オフ を切り替ãˆã€‚"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "ブレンドã™ã‚‹æ™‚間を変更"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"アニメーションプレイヤーãŒè¨­å®šã•ã‚Œã¦ã„ãªã„ãŸã‚ã€ãƒˆãƒ©ãƒƒã‚¯åã‚’å–å¾—ã§ãã¾ã›ã‚“。"
@@ -3607,6 +3825,12 @@ msgstr ""
"å¾—ã§ãã¾ã›ã‚“。"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "ノードå"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "ノードを追加..."
@@ -3832,6 +4056,21 @@ msgid "Cross-Animation Blend Times"
msgstr "アニメーション間ã®ãƒ–レンド時間"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "追加ã—ãŸã‚­ãƒ¼ã‚’移動"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "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 "終り"
@@ -3860,6 +4099,20 @@ msgid "No playback resource set at path: %s."
msgstr "パス( %s )ã«å†ç”Ÿãƒªã‚½ãƒ¼ã‚¹ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "å–り除ã„ãŸã®ã¯:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "トランジション ノード"
+
+#: 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"
@@ -4194,6 +4447,8 @@ msgid ""
"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
"Light' flag is on."
msgstr ""
+"ベイクã™ã‚‹ãƒ¡ãƒƒã‚·ãƒ¥ãŒã‚ã‚Šã¾ã›ã‚“。メッシュ㫠UV2ãƒãƒ£ãƒ³ãƒãƒ«ãŒå«ã¾ã‚Œã¦ãŠ"
+"ã‚Šã€'Bake Light' フラグãŒã‚ªãƒ³ã«ãªã£ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Failed creating lightmap images, make sure path is writable."
@@ -4355,7 +4610,7 @@ msgstr "回転モード"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale Mode"
-msgstr "スケール(拡大縮å°ï¼‰ãƒ¢ãƒ¼ãƒ‰"
+msgstr "スケールモード"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -4691,6 +4946,10 @@ msgstr "接線を個別ã«ç·¨é›†ã™ã‚‹ã«ã¯ã‚·ãƒ•ãƒˆã‚’押ã™"
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 "アイテム%d"
@@ -5309,19 +5568,16 @@ msgid "UV"
msgstr "UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Points"
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
@@ -5337,9 +5593,8 @@ msgid "Shift: Move All"
msgstr "Shift: ã™ã¹ã¦ç§»å‹•"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Shift+Ctrl: Scale"
-msgstr "Shift+Ctrl: 縮尺(Scale)"
+msgstr "Shift+Ctrl: スケール"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Polygon"
@@ -5356,13 +5611,15 @@ msgstr "ãƒãƒªã‚´ãƒ³ã®ç¸®å°ºã‚’変更"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create a custom polygon. Enables custom polygon rendering."
-msgstr ""
+msgstr "カスタムãƒãƒªã‚´ãƒ³ã‚’生æˆã—ã€ã‚«ã‚¹ã‚¿ãƒ ãƒãƒªã‚´ãƒ³ã®æ画を有効ã«ã™ã‚‹ã€‚"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid ""
"Remove a custom polygon. If none remain, custom polygon rendering is "
"disabled."
msgstr ""
+"カスタムãƒãƒªã‚´ãƒ³ã‚’削除ã™ã‚‹ã€‚ä»–ã«æ®‹ã£ã¦ã„ãªã„å ´åˆã€ã‚«ã‚¹ã‚¿ãƒ ãƒãƒªã‚´ãƒ³ã®æç”»ã¯ç„¡"
+"効ã«ãªã‚Šã¾ã™ã€‚"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Paint weights with specified intensity."
@@ -5494,9 +5751,8 @@ msgid "Path to AnimationPlayer is invalid"
msgstr "AnimationPlayer ã¸ã®ãƒ‘スãŒç„¡åŠ¹ã§ã™"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Clear Recent Files"
-msgstr "最近開ã„ãŸãƒ•ã‚¡ã‚¤ãƒ«ã®è¨˜éŒ²ã‚’クリア"
+msgstr "最近開ã„ãŸãƒ•ã‚¡ã‚¤ãƒ«ã®å±¥æ­´ã‚’クリア"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close and save changes?"
@@ -5763,9 +6019,8 @@ msgid "Only resources from filesystem can be dropped."
msgstr "ファイルシステムã®ãƒªã‚½ãƒ¼ã‚¹ã®ã¿ãƒ‰ãƒ­ãƒƒãƒ—ã§ãã¾ã™."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Lookup Symbol"
-msgstr "記å·ã™ã¹ã¦"
+msgstr "シンボルを検索"
#: editor/plugins/script_text_editor.cpp
msgid "Pick Color"
@@ -5834,9 +6089,8 @@ msgid "Clone Down"
msgstr "下ã«è¤‡å†™"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Complete Symbol"
-msgstr "記å·ã™ã¹ã¦"
+msgstr "シンボルを補完"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
@@ -5876,9 +6130,8 @@ msgid "Find Previous"
msgstr "å‰ã‚’検索"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Find in Files..."
-msgstr "ファイルを絞り込む..."
+msgstr "複数ファイル内を検索..."
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function..."
@@ -5903,6 +6156,15 @@ msgstr "ã“ã®skeletonã«ã¯ãƒœãƒ¼ãƒ³ãŒã‚ã‚Šã¾ã›ã‚“。å­Bone2Dノードをè
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+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
+#, fuzzy
msgid "Skeleton2D"
msgstr "スケルトン..."
@@ -6019,10 +6281,6 @@ msgid "Vertices"
msgstr "頂点"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "フレームレート"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "上é¢å›³."
@@ -6067,7 +6325,8 @@ msgid "Rear"
msgstr "後é¢"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "シーンビューã«ã‚«ãƒ¡ãƒ©ã‚’åˆã‚ã›ã‚‹ï¼ˆAlign With View)"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6118,7 +6377,6 @@ msgid "View FPS"
msgstr "フレームレートを表示"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Half Resolution"
msgstr "åŠè§£åƒåº¦"
@@ -6166,6 +6424,12 @@ msgid "Freelook Speed Modifier"
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
#, fuzzy
msgid "View Rotation Locked"
msgstr "情報を表示"
@@ -6175,6 +6439,11 @@ msgid "XForm Dialog"
msgstr "Xformダイアログ"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Snapモード:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "é¸æŠžãƒ¢ãƒ¼ãƒ‰ (Q)"
@@ -6196,7 +6465,7 @@ msgstr "回転モード (E)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Mode (R)"
-msgstr "スケール(拡大縮å°ï¼‰ãƒ¢ãƒ¼ãƒ‰(R)"
+msgstr "スケールモード (R)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Local Coords"
@@ -6259,24 +6528,20 @@ msgid "Tool Select"
msgstr "é¸æŠžãƒ„ール"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Tool Move"
msgstr "移動ツール"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Tool Rotate"
msgstr "回転ツール"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Tool Scale"
-msgstr "拡大縮å°ãƒ„ール"
+msgstr "スケールツール"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Freelook"
-msgstr "フルスクリーンã®åˆ‡ã‚Šæ›¿ãˆ"
+msgstr "フリールックã®åˆ‡ã‚Šæ›¿ãˆ"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
@@ -6466,10 +6731,6 @@ msgid "Add Empty"
msgstr "空を追加"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "アニメーションã®ãƒ«ãƒ¼ãƒ—を変更"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "アニメーションã®FPSを変更"
@@ -6822,6 +7083,11 @@ msgid "Erase bitmask."
msgstr "点を消ã™ã€‚"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "æ–°è¦ãƒŽãƒ¼ãƒ‰ã‚’作æˆã€‚"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "æ–°è¦ãƒãƒªã‚´ãƒ³ã‚’生æˆã€‚"
@@ -6996,6 +7262,29 @@ msgid "TileSet"
msgstr "タイルセット..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "'%s' ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¨ã—ã¦è¨­å®š"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "シェーダー"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "ノードを複製"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "頂点"
@@ -7014,6 +7303,16 @@ msgstr "å³å´é¢"
msgid "VisualShader"
msgstr "シェーダー"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "タイル プロパティを編集"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "シェーダーã®å¤‰æ›´"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "実行å¯èƒ½"
@@ -7027,10 +7326,17 @@ msgid "Delete preset '%s'?"
msgstr "プリセット '%s' を削除ã—ã¾ã™ã‹?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
#, fuzzy
@@ -7043,6 +7349,12 @@ msgid "Exporting All"
msgstr "%sã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆä¸­"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+"ã“ã®ãƒ—ラットフォームã«å¯¾ã™ã‚‹ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ テンプレートãŒè¦‹ã¤ã‹ã‚‰ãªã„ã‹ã€ç ´æã—"
+"ã¦ã„ã¾ã™:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "åˆæœŸè¨­å®šå€¤"
@@ -8098,6 +8410,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "シーンをルートã«ã™ã‚‹"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "ノードを削除ã—ã¾ã™ã‹?"
@@ -8135,6 +8452,11 @@ msgid "Make Local"
msgstr "ロケール"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "シーンをルートã«ã™ã‚‹"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "ルートノードを生æˆ:"
@@ -8580,6 +8902,21 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "イージング(Ease Out)"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "ショートカット"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "アンカーを変更"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "ショートカット"
@@ -8806,6 +9143,11 @@ msgid "GridMap Duplicate Selection"
msgstr "é¸æŠžç¯„囲を複製"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "グリッドマップã®è¨­å®š"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "グリッドマップ"
@@ -9130,10 +9472,6 @@ msgid "Change Expression"
msgstr "å¼ã‚’変更"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "ノードを追加"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "VisualScriptノードを除去"
@@ -9231,6 +9569,11 @@ msgstr "入力ã®åå‰ã‚’変更"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
+msgid "Resize Comment"
+msgstr "CanvasItemをリサイズ"
+
+#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Can't copy the function node."
msgstr "'..'を処ç†ã§ãã¾ã›ã‚“"
@@ -9395,7 +9738,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "Package name is missing."
-msgstr ""
+msgstr "パッケージåãŒã‚ã‚Šã¾ã›ã‚“。"
#: platform/android/export/export.cpp
msgid "Package segments must be of non-zero length."
@@ -9403,7 +9746,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "The character '%s' is not allowed in Android application package names."
-msgstr ""
+msgstr "文字 '%s' ã¯Androidアプリケーション パッケージåã«ä½¿ç”¨ã§ãã¾ã›ã‚“。"
#: platform/android/export/export.cpp
msgid "A digit cannot be the first character in a package segment."
@@ -9411,11 +9754,11 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "The character '%s' cannot be the first character in a package segment."
-msgstr ""
+msgstr "文字 '%s' ã¯ãƒ‘ッケージ セグメントã®å…ˆé ­ã«ä½¿ç”¨ã§ãã¾ã›ã‚“。"
#: platform/android/export/export.cpp
msgid "The package must have at least one '.' separator."
-msgstr ""
+msgstr "パッケージã«ã¯ä¸€ã¤ä»¥ä¸Šã®åŒºåˆ‡ã‚Šæ–‡å­— '.' ãŒå¿…è¦ã§ã™ã€‚"
#: platform/android/export/export.cpp
msgid "ADB executable not configured in the Editor Settings."
@@ -9423,7 +9766,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "OpenJDK jarsigner not configured in the Editor Settings."
-msgstr ""
+msgstr "OpenJDK jarsignerãŒã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼è¨­å®šã§è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。"
#: platform/android/export/export.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
@@ -9431,7 +9774,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "Invalid public key for APK expansion."
-msgstr ""
+msgstr "APK expansion ã®å…¬é–‹éµãŒç„¡åŠ¹ã§ã™ã€‚"
#: platform/android/export/export.cpp
msgid "Invalid package name:"
@@ -9439,7 +9782,7 @@ msgstr "無効ãªãƒ‘ッケージå:"
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
-msgstr ""
+msgstr "識別å­ãŒã‚ã‚Šã¾ã›ã‚“。"
#: platform/iphone/export/export.cpp
msgid "Identifier segments must be of non-zero length."
@@ -9456,15 +9799,15 @@ msgstr ""
#: platform/iphone/export/export.cpp
msgid ""
"The character '%s' cannot be the first character in a Identifier segment."
-msgstr ""
+msgstr "文字 '%s' ã¯è­˜åˆ¥å­ セグメントã®å…ˆé ­ã«ä½¿ç”¨ã§ãã¾ã›ã‚“。"
#: platform/iphone/export/export.cpp
msgid "The Identifier must have at least one '.' separator."
-msgstr ""
+msgstr "識別å­ã«ã¯ä¸€ã¤ä»¥ä¸Šã®åŒºåˆ‡ã‚Šæ–‡å­— '.' ãŒå¿…è¦ã§ã™ã€‚"
#: platform/iphone/export/export.cpp
msgid "App Store Team ID not specified - cannot configure the project."
-msgstr ""
+msgstr "App Store ãƒãƒ¼ãƒ ID ãŒæœªæŒ‡å®š - プロジェクトを構æˆã§ãã¾ã›ã‚“。"
#: platform/iphone/export/export.cpp
msgid "Invalid Identifier:"
@@ -9951,7 +10294,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'."
@@ -9987,7 +10330,7 @@ msgstr ""
#: scene/gui/color_picker.cpp
msgid "Pick a color from the screen."
-msgstr ""
+msgstr "スクリーンã‹ã‚‰è‰²ã‚’é¸æŠžã—ã¦ãã ã•ã„。"
#: scene/gui/color_picker.cpp
#, fuzzy
@@ -10090,11 +10433,15 @@ msgstr ""
#: servers/visual/shader_language.cpp
msgid "Assignment to uniform."
-msgstr ""
+msgstr "uniform ã¸ã®å‰²ã‚Šå½“ã¦ã€‚"
#: servers/visual/shader_language.cpp
+#, fuzzy
msgid "Varyings can only be assigned in vertex function."
-msgstr ""
+msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
+
+#~ msgid "FPS"
+#~ msgstr "フレームレート"
#~ msgid "Warnings:"
#~ msgstr "警告:"
@@ -10267,10 +10614,6 @@ msgstr ""
#~ msgid "Convert To Lowercase"
#~ msgstr "å°æ–‡å­—ã«å¤‰æ›"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "Snapモード:"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "0度回転"
@@ -10842,9 +11185,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "加ãˆãŸã®ã¯:"
-#~ msgid "Removed:"
-#~ msgstr "å–り除ã„ãŸã®ã¯:"
-
#, fuzzy
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "アトラスã®è¦ç´ ã§ã‚るテクスãƒãƒ£ã®ä¿å­˜ãŒã§ãã¾ã›ã‚“:"
@@ -11174,10 +11514,6 @@ msgstr ""
#~ msgstr "エラーをインãƒãƒ¼ãƒˆä¸­:"
#, fuzzy
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "大ããªãƒ†ã‚¯ã‚¹ãƒãƒ£ã®ãŸã‚ã«ä¸€ã¤ãƒ•ã‚¡ã‚¤ãƒ«ãŒå¿…è¦ã§ã™"
-
-#, fuzzy
#~ msgid "Max Texture Size:"
#~ msgstr "最大テクスãƒãƒ£ã‚µã‚¤ã‚º:"
diff --git a/editor/translations/ka.po b/editor/translations/ka.po
index 37f7f2f2e9..0ef5840a20 100644
--- a/editor/translations/ka.po
+++ b/editor/translations/ka.po
@@ -87,6 +87,14 @@ msgstr "მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ გáƒáƒ¡áƒáƒ¦áƒ”ბ(ებ)ის áƒáƒ¡áƒ
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 "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ¡áƒáƒ¦áƒ”ბების áƒáƒ¡áƒšáƒ˜áƒ¡ შექმნáƒ"
@@ -117,6 +125,16 @@ msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ძáƒáƒ®áƒ˜áƒšáƒ˜áƒ¡ ცვლილებá
#: editor/animation_track_editor.cpp
#, fuzzy
+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
+#, fuzzy
msgid "Property Track"
msgstr "áƒáƒ‘იექტზე დáƒáƒ™áƒ•áƒ˜áƒ áƒ•áƒ”ბáƒ"
@@ -171,6 +189,11 @@ msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ მáƒáƒœáƒáƒ™áƒ•áƒ”თები:"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Track Path"
+msgstr "მáƒáƒ¡áƒ˜áƒ•áƒ˜áƒ¡ მნიშვნელáƒáƒ‘ის ცვლილებáƒ"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Toggle this track on/off."
msgstr "ჩáƒáƒœáƒáƒ¬áƒ”რის ჩáƒáƒ áƒ—ვრ/ გáƒáƒ›áƒáƒ áƒ—ვáƒ"
@@ -199,6 +222,10 @@ msgid "Time (s): "
msgstr "დრრ(წáƒáƒ›áƒ˜): "
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "უწყვეტი"
@@ -251,6 +278,21 @@ msgid "Delete Key(s)"
msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ¡áƒáƒ¦áƒ”ბების წáƒáƒ¨áƒšáƒ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "ლექსიკáƒáƒœáƒ˜áƒ¡ მნიშვნელáƒáƒ‘ის შეცვლáƒ"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "ინტერპáƒáƒšáƒáƒªáƒ˜áƒ˜áƒ¡ რეჟიმი"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "áƒáƒœáƒ˜áƒ› ლუპის შეცვლáƒ"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის წáƒáƒ¨áƒšáƒ"
@@ -296,6 +338,15 @@ msgid "Anim Insert Key"
msgstr "áƒáƒœáƒ˜áƒ› გáƒáƒ¡áƒáƒ¦áƒ”ბის ჩáƒáƒ§áƒ”ნებáƒ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 ""
@@ -321,6 +372,11 @@ msgstr "შეუძლებელირდáƒáƒáƒ›áƒáƒ¢áƒ áƒáƒ®áƒáƒšáƒ˜
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Add Bezier Track"
+msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Track path is invalid, so can't add a key."
msgstr "ჩáƒáƒœáƒáƒ¬áƒ”რის მისáƒáƒ›áƒáƒ áƒ—ი áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ, áƒáƒ¡áƒ” რáƒáƒ› შეუძლებელირგáƒáƒ¡áƒáƒ¦áƒ”ბის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ"
@@ -329,12 +385,27 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "ჩáƒáƒœáƒáƒ¬áƒ”რი áƒáƒ  áƒáƒ áƒ˜áƒ¡ სივრცის სáƒáƒ®áƒ˜áƒ¡, ვერ ჩáƒáƒ¡áƒ•áƒáƒ›áƒ— გáƒáƒ¡áƒáƒ¦áƒ”ბს"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "3D გáƒáƒ áƒ“áƒáƒ¥áƒ›áƒœáƒ˜áƒ¡ დáƒáƒ™áƒ•áƒ˜áƒ áƒ•áƒ”ბáƒ"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "მეთáƒáƒ“ის გáƒáƒ›áƒáƒ«áƒáƒ®áƒ”ბის დáƒáƒ™áƒ•áƒ˜áƒ áƒ•áƒ”ბáƒ"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "მეთáƒáƒ“ი ვერ მáƒáƒ˜áƒ«áƒ”ბნრáƒáƒ‘იექტში: "
@@ -348,6 +419,10 @@ msgid "Clipboard is empty"
msgstr "ბუფერი ცáƒáƒ áƒ˜áƒ”ლიáƒ"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "áƒáƒœáƒ˜áƒ› გáƒáƒ¡áƒáƒ¦áƒ”ბების ზáƒáƒ›áƒ˜áƒ¡ შეცვლáƒ"
@@ -390,10 +465,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ˜áƒ¡ მáƒáƒ¡áƒ¨áƒ¢áƒáƒ‘ის ცვლილებáƒ"
@@ -496,6 +567,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "მáƒáƒ¡áƒ˜áƒ•áƒ˜áƒ¡ ზáƒáƒ›áƒ˜áƒ¡ ცვლილებáƒ"
@@ -1306,6 +1390,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1857,6 +1947,14 @@ 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 ""
@@ -3448,12 +3546,45 @@ 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
+#, fuzzy
+msgid "Add Node Point"
+msgstr "სáƒáƒ§áƒ•áƒáƒ áƒšáƒ”ბი:"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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 ""
@@ -3494,6 +3625,27 @@ msgid "Triangle already exists"
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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 ""
@@ -3502,6 +3654,10 @@ 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 ""
@@ -3519,6 +3675,10 @@ 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 ""
@@ -3528,11 +3688,53 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "დáƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ áƒ”ბáƒ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "კáƒáƒ•áƒ¨áƒ˜áƒ áƒ˜áƒ¡ გáƒáƒ¬áƒ§áƒ•áƒ”ტáƒ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ áƒáƒžáƒ¢áƒ˜áƒ›áƒ˜áƒ–áƒáƒªáƒ˜áƒ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "წáƒáƒ¨áƒšáƒ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "ჩáƒáƒœáƒáƒ¬áƒ”რის ჩáƒáƒ áƒ—ვრ/ გáƒáƒ›áƒáƒ áƒ—ვáƒ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "áƒáƒœáƒ˜áƒ› სიგრძის შეცვლáƒ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3548,6 +3750,11 @@ msgid ""
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 ""
@@ -3775,6 +3982,20 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Move Node"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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 ""
@@ -3803,6 +4024,20 @@ msgid "No playback resource set at path: %s."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "მáƒáƒ¨áƒáƒ áƒ”ბáƒ"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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"
@@ -4610,6 +4845,10 @@ msgstr ""
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 ""
@@ -5766,6 +6005,14 @@ 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 ""
@@ -5874,10 +6121,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5922,7 +6165,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6014,6 +6257,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6022,6 +6271,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6299,10 +6552,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6636,6 +6885,11 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "áƒáƒ®áƒáƒšáƒ˜ %s შექმნáƒ"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "შექმნáƒ"
@@ -6809,6 +7063,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ¡áƒáƒ¦áƒ”ბების áƒáƒ¡áƒšáƒ˜áƒ¡ შექმნáƒ"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6824,6 +7099,14 @@ msgstr ""
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 ""
@@ -6837,7 +7120,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6849,6 +7141,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7830,6 +8126,10 @@ 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 Node(s)?"
msgstr ""
@@ -7864,6 +8164,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Create Root Node:"
msgstr "კვáƒáƒœáƒ«áƒ—áƒáƒœ დáƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ áƒ”ბáƒ:"
@@ -8277,6 +8581,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8482,6 +8798,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8777,10 +9097,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8863,6 +9179,10 @@ 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 ""
@@ -9698,12 +10018,6 @@ msgstr ""
#~ msgid "Out-In"
#~ msgstr "გáƒáƒ áƒ”დáƒáƒœ-შიგნით"
-#~ msgid "Change Anim Len"
-#~ msgstr "áƒáƒœáƒ˜áƒ› სიგრძის შეცვლáƒ"
-
-#~ msgid "Change Anim Loop"
-#~ msgstr "áƒáƒœáƒ˜áƒ› ლუპის შეცვლáƒ"
-
#~ msgid "Anim Create Typed Value Key"
#~ msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ტიპირებული გáƒáƒ¡áƒáƒ¦áƒ”ბის შექმნáƒ"
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index ebf31640fc..817407e30a 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -16,7 +16,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-02-18 08:54+0000\n"
+"PO-Revision-Date: 2019-03-01 11:59+0000\n"
"Last-Translator: 송태섭 <xotjq237@gmail.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/"
"godot/ko/>\n"
@@ -92,6 +92,16 @@ msgstr "ì„ íƒí•œ 키를 복제"
msgid "Delete Selected Key(s)"
msgstr "ì„ íƒí•œ 키를 ì‚­ì œ"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "í¬ì¸íŠ¸ 추가"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "í¬ì¸íŠ¸ ì´ë™"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "애니메ì´ì…˜ 키 복제"
@@ -121,6 +131,16 @@ msgid "Anim Change Call"
msgstr "애니메ì´ì…˜ 호출 변경"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 "ì†ì„± 트랙"
@@ -170,6 +190,11 @@ msgid "Anim Clips:"
msgstr "애니메ì´ì…˜ í´ë¦½:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "배열 값 변경"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "ì´ íŠ¸ëž™ì„ í‚¤ê±°ë‚˜ ë•ë‹ˆë‹¤."
@@ -194,6 +219,11 @@ msgid "Time (s): "
msgstr "시간 (초): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "ë„플러 활성화"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "ì—°ì†ì "
@@ -244,6 +274,21 @@ msgid "Delete Key(s)"
msgstr "키 삭제"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "애니메ì´ì…˜ ì´ë¦„ 변경:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "보간 모드"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "애니메ì´ì…˜ 루프 변경"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "애니메ì´ì…˜ 트랙 ì‚­ì œ"
@@ -286,6 +331,16 @@ msgid "Anim Insert Key"
msgstr "애니메ì´ì…˜ 키 삽입"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "애니메ì´ì…˜ FPS 변경"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "오토로드 재정렬"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "변형 íŠ¸ëž™ì€ ì˜¤ì§ Spatial 기반 노드ì—만 ì ìš©ë©ë‹ˆë‹¤."
@@ -315,6 +370,11 @@ msgid "Not possible to add a new track without a root"
msgstr "루트 ì—†ì´ ìƒˆ íŠ¸ëž™ì„ ì¶”ê°€í•  수 ì—†ìŒ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "트랙 추가"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "트랙 경로가 유효하지 않습니다, 키를 추가하실 수 없습니다."
@@ -323,10 +383,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "íŠ¸ëž™ì´ Spatial íƒ€ìž…ì´ ì•„ë‹™ë‹ˆë‹¤, 키를 삽입하실 수 없습니다"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "3D 변형 트랙"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "호출 메서드 트랙"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "ê°ì²´ì— 메서드가 없습니다: "
@@ -339,6 +414,10 @@ msgid "Clipboard is empty"
msgstr "í´ë¦½ë³´ë“œê°€ 비었습니다"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "트랙 붙여넣기"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "애니메ì´ì…˜ 키 í¬ê¸° ì¡°ì ˆ"
@@ -381,10 +460,6 @@ msgid "Copy Tracks"
msgstr "트랙 복사"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "트랙 붙여넣기"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "ì„ íƒ í¬ê¸° ì¡°ì ˆ"
@@ -418,7 +493,7 @@ msgstr "애니메ì´ì…˜ 최ì í™”"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation"
-msgstr "애니메ì´ì…˜ 정리"
+msgstr "애니메ì´ì…˜ 없애기"
#: editor/animation_track_editor.cpp
msgid "Pick the node that will be animated:"
@@ -484,6 +559,19 @@ msgstr "복사할 트랙 ì„ íƒ:"
msgid "Copy"
msgstr "복사하기"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "ë°°ì—´ í¬ê¸° 변경"
@@ -553,9 +641,8 @@ msgid "Warnings"
msgstr "경고"
#: editor/code_editor.cpp
-#, fuzzy
msgid "Line and column numbers."
-msgstr "ë¼ì¸ ë° ì»¬ëŸ¼ 번호"
+msgstr "ë¼ì¸ ë° ì»¬ëŸ¼ 번호."
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
@@ -1112,9 +1199,8 @@ msgid "Add Bus"
msgstr "버스 추가"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "오디오 버스 ë ˆì´ì•„ì›ƒì„ ë‹¤ë¥¸ ì´ë¦„으로 저장..."
+msgstr "ì´ ë ˆì´ì•„ì›ƒì— ìƒˆ 오디오 버스를 추가합니다."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1291,6 +1377,12 @@ msgstr "ì˜ˆìƒ ê²½ë¡œì—ì„œ 내보내기 í…œí”Œë¦¿ì„ ì°¾ì„ ìˆ˜ 없습니다:"
msgid "Packing"
msgstr "패킹 중"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1862,6 +1954,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "닫기 ì „ì— '%s'ì— ë³€ê²½ì‚¬í•­ì„ ì €ìž¥í•˜ì‹œê² ìŠµë‹ˆê¹Œ?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "리소스 불러오기 실패."
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "í° í…스ì³ë¥¼ 위해서는 단 í•˜ë‚˜ì˜ íŒŒì¼ë§Œ 요구ë©ë‹ˆë‹¤."
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "ì”¬ì„ ë‹¤ë¥¸ ì´ë¦„으로 저장..."
@@ -2225,14 +2327,14 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Visible Navigation"
-msgstr "네비게ì´ì…˜ ë³´ì´ê¸°"
+msgstr "내비게ì´ì…˜ ë³´ì´ê¸°"
#: editor/editor_node.cpp
msgid ""
"Navigation meshes and polygons will be visible on the running game if this "
"option is turned on."
msgstr ""
-"ì´ ì˜µì…˜ì´ í™œì„±í™” ë˜ì–´ ìžˆì„ ê²½ìš°, ê²Œìž„ì´ ì‹¤í–‰ë˜ëŠ” ë™ì•ˆ 네비게ì´ì…˜ 메시가 표시"
+"ì´ ì˜µì…˜ì´ í™œì„±í™” ë˜ì–´ ìžˆì„ ê²½ìš°, ê²Œìž„ì´ ì‹¤í–‰ë˜ëŠ” ë™ì•ˆ 내비게ì´ì…˜ 메시가 표시"
"ë©ë‹ˆë‹¤."
#: editor/editor_node.cpp
@@ -2381,9 +2483,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 Always"
@@ -3491,12 +3592,49 @@ msgstr "불러오기..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "í¬ì¸íŠ¸ ì´ë™"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "블렌드 시간 변경"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "블렌드 시간 변경"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr "ì´ íƒ€ìž…ì˜ ë…¸ë“œë¥¼ 사용할 수 없습니다. ì˜¤ì§ ë£¨íŠ¸ 노드만 사용 가능합니다."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "노드 추가"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "애니메ì´ì…˜ 추가하기"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3539,6 +3677,31 @@ msgid "Triangle already exists"
msgstr "삼ê°í˜•ì´ ì´ë¯¸ 존재함"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "변수 추가"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "블렌드 시간 변경"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "블렌드 시간 변경"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "경로 í¬ì¸íŠ¸ ì‚­ì œ"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "변수 삭제"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2Dê°€ AnimationTree ë…¸ë“œì— ì†í•´ìžˆì§€ 않습니다."
@@ -3547,6 +3710,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "삼ê°í˜•ì´ 존재하지 않습니다, ë¸”ëžœë”©ì´ ì¼ì–´ë‚˜ì§€ 않습니다."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "오토로드 글로벌 토글"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "í¬ì¸íŠ¸ë¥¼ 연결하여 삼ê°í˜• 만들기."
@@ -3564,6 +3732,11 @@ msgid "Blend:"
msgstr "블렌드:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "머티리얼 변경"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "필터 편집"
@@ -3573,11 +3746,55 @@ msgid "Output node can't be added to the blend tree."
msgstr "출력 노드를 블렌드 íŠ¸ë¦¬ì— ì¶”ê°€í•  수 없습니다."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "트리ì—ì„œ 노드 추가"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "ì´ë™ 모드"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr "ì—°ê²°í•  수 없습니다, í¬íŠ¸ê°€ 사용 중ì´ê±°ë‚˜ 유효하지 않는 연결입니다."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "ì—°ê²°ë¨"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "ì—°ê²° í•´ì œë¨"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "새로운 애니메ì´ì…˜"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "노드 삭제"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "ì´ íŠ¸ëž™ì„ í‚¤ê±°ë‚˜ ë•ë‹ˆë‹¤."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "ë¡œì¼€ì¼ í•„í„° 변경ë¨"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr "설정한 애니메ì´ì…˜ 플레ì´ì–´ê°€ 없습니다, 트랙 ì´ë¦„ì„ ê²€ìƒ‰í•  수 없습니다."
@@ -3596,6 +3813,12 @@ msgstr ""
"ì„ ê²€ìƒ‰í•  수 없습니다."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "노드 ì´ë¦„"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "노드 추가하기..."
@@ -3718,7 +3941,7 @@ msgstr "애니메ì´ì…˜ ë„구"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
-msgstr "애니메ì´ì…˜(Animation)"
+msgstr "애니메ì´ì…˜"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New"
@@ -3821,6 +4044,21 @@ msgid "Cross-Animation Blend Times"
msgstr "êµì°¨-애니메ì´ì…˜ 블렌드 시간"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "ì´ë™ 모드"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "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 "End"
@@ -3849,6 +4087,20 @@ msgid "No playback resource set at path: %s."
msgstr "ë‹¤ìŒ ê²½ë¡œì— ì„¤ì •ëœ ìž¬ìƒ ë¦¬ì†ŒìŠ¤ê°€ 없습니다: %s."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "제거ë¨:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "전환 노드"
+
+#: 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"
@@ -4661,6 +4913,10 @@ msgstr "Shift키를 누르고 있으면 탄젠트를 개별ì ìœ¼ë¡œ 편집 ê°€ë
msgid "Bake GI Probe"
msgstr "GI 프로브 굽기"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "항목 %d"
@@ -4703,7 +4959,7 @@ msgstr "Convex 모양 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
-msgstr "네비게ì´ì…˜ 메시 만들기"
+msgstr "내비게ì´ì…˜ 메시 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Contained Mesh is not of type ArrayMesh."
@@ -4910,7 +5166,7 @@ msgstr "만들기"
#: editor/plugins/navigation_polygon_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create Navigation Polygon"
-msgstr "네비게ì´ì…˜ í´ë¦¬ê³¤ 만들기"
+msgstr "내비게ì´ì…˜ í´ë¦¬ê³¤ 만들기"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generating Visibility Rect"
@@ -5185,6 +5441,8 @@ msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
msgstr ""
+"Polygon2Dê°€ 내부 꼭짓ì ì„ ê°–ê³  있습니다, ë” ì´ìƒ ë·°í¬íŠ¸ì—ì„œ 꼭짓ì ì„ 편집할 "
+"수 없습니다."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon & UV"
@@ -5805,6 +6063,16 @@ msgstr ""
"ì´ ìŠ¤ì¼ˆë ˆí†¤ì€ ë³¸ì„ ê°€ì§€ê³  있지 않습니다, ìžì‹ìœ¼ë¡œ Bone2D 노드를 추가하세요."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "(본으로부터) íœ´ì‹ í¬ì¦ˆ 만들기"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Set Rest Pose to Bones"
+msgstr "(본으로부터) íœ´ì‹ í¬ì¦ˆ 만들기"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "스켈레톤2D"
@@ -5913,10 +6181,6 @@ msgid "Vertices"
msgstr "버틱스"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "초당 프레임"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "윗면 보기."
@@ -5961,7 +6225,8 @@ msgid "Rear"
msgstr "ë’·ë©´"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "ë·°ì— ì •ë ¬"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6053,6 +6318,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr "뷰 회전 잠김"
@@ -6061,6 +6332,11 @@ msgid "XForm Dialog"
msgstr "XForm 대화 ìƒìž"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "ë°”ë‹¥ì— ìŠ¤ëƒ…"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "ì„ íƒ ëª¨ë“œ (Q)"
@@ -6340,10 +6616,6 @@ msgid "Add Empty"
msgstr "빈 프레임 추가"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "애니메ì´ì…˜ 루프 변경"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "애니메ì´ì…˜ FPS 변경"
@@ -6669,6 +6941,11 @@ msgid "Erase bitmask."
msgstr "비트 ë§ˆìŠ¤í¬ ì§€ìš°ê¸°."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "새 노드 만들기."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "새로운 í´ë¦¬ê³¤ 만들기."
@@ -6847,6 +7124,29 @@ msgid "TileSet"
msgstr "TileSet(íƒ€ì¼ ì…‹)"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "'%s'ì„(를) 기본으로 지정"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "비주얼 ì…°ì´ë”"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "노드 복제"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "버í…스"
@@ -6862,6 +7162,16 @@ msgstr "ë¹›"
msgid "VisualShader"
msgstr "비주얼 ì…°ì´ë”"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "필터 우선 순위 편집"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "ì…°ì´ë” 변경"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "실행가능"
@@ -6875,8 +7185,17 @@ msgid "Delete preset '%s'?"
msgstr "'%s' í”„ë¦¬ì…‹ì„ ì‚­ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "ì´ í”Œëž«í¼ì— 대한 내보내기 í…œí”Œë¦¿ì´ ì—†ê±°ë‚˜ ì†ìƒë¨:"
+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"
@@ -6887,6 +7206,10 @@ msgid "Exporting All"
msgstr "ëª¨ë‘ ë‚´ë³´ë‚´ê¸°"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "ì´ í”Œëž«í¼ì— 대한 내보내기 í…œí”Œë¦¿ì´ ì—†ê±°ë‚˜ ì†ìƒë¨:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "프리셋"
@@ -7626,7 +7949,7 @@ msgstr "로케ì¼:"
#: editor/project_settings_editor.cpp
msgid "AutoLoad"
-msgstr "오토로드(AutoLoad)"
+msgstr "오토로드"
#: editor/property_editor.cpp
msgid "Ease In"
@@ -7910,6 +8233,11 @@ msgid "Instantiated scenes can't become root"
msgstr "ì¸ìŠ¤í„´íŠ¸í™”ëœ ì”¬ì€ ë£¨íŠ¸ê°€ ë  ìˆ˜ 없습니다"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "씬 루트 만들기"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "노드를 삭제하시겠습니까?"
@@ -7946,6 +8274,11 @@ msgid "Make Local"
msgstr "로컬로 만들기"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "씬 루트 만들기"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "루트 노드 만들기:"
@@ -8372,6 +8705,21 @@ msgid "Set From Tree"
msgstr "트리로부터 설정"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "완화 out"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "단축키"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "앵커 변경"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "단축키"
@@ -8578,6 +8926,11 @@ msgid "GridMap Duplicate Selection"
msgstr "그리드맵 ì„ íƒ ë³µì œ"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "그리드맵 설정"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "그리드맵"
@@ -8727,7 +9080,7 @@ 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..."
@@ -8767,11 +9120,11 @@ msgstr "í´ë¦¬ 메시 ìƒì„± 중..."
#: 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..."
@@ -8879,10 +9232,6 @@ msgid "Change Expression"
msgstr "í‘œí˜„ì‹ ë³€ê²½"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "노드 추가"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "비주얼 스í¬ë¦½íŠ¸ 노드 ì‚­ì œ"
@@ -8967,6 +9316,11 @@ msgid "Change Input Value"
msgstr "입력 값 변경"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "CanvasItem í¬ê¸° ì¡°ì ˆ"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "함수 노드를 복사할 수 없습니다."
@@ -9371,7 +9725,7 @@ msgid ""
"node. It only provides navigation data."
msgstr ""
"NavigationPolygonInstanceì€ Navigation2D ë…¸ë“œì˜ í•˜ìœ„ì— ìžˆì–´ì•¼ 합니다. ì´ê²ƒì€ "
-"네비게ì´ì…˜ ë°ì´íƒ€ë§Œì„ 제공합니다."
+"내비게ì´ì…˜ ë°ì´í„°ë§Œì„ 제공합니다."
#: scene/2d/parallax_layer.cpp
msgid ""
@@ -9568,8 +9922,8 @@ msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
-"NavigationMeshInstanceì€ Navigation ë…¸ë“œì˜ í•˜ìœ„ì— ìžˆì–´ì•¼ 합니다. ì´ê²ƒì€ 네비"
-"게ì´ì…˜ ë°ì´íƒ€ë§Œì„ 제공합니다."
+"NavigationMeshInstanceì€ Navigation ë…¸ë“œì˜ í•˜ìœ„ì— ìžˆì–´ì•¼ 합니다. ì´ê²ƒì€ 내비"
+"게ì´ì…˜ ë°ì´í„°ë§Œì„ 제공합니다."
#: scene/3d/particles.cpp
msgid ""
@@ -9723,9 +10077,8 @@ msgid "Switch between hexadecimal and code values."
msgstr "16 진수나 코드 값으로 전환합니다."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Add current color as a preset."
-msgstr "현재 색ìƒì„ 프리셋으로 추가"
+msgstr "현재 색ìƒì„ 프리셋으로 추가합니다."
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -9818,6 +10171,9 @@ msgstr "ê· ì¼í•˜ê²Œ 배치함."
msgid "Varyings can only be assigned in vertex function."
msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 지정할 수 있습니다."
+#~ msgid "FPS"
+#~ msgstr "초당 프레임"
+
#~ msgid "Warnings:"
#~ msgstr "경고:"
@@ -9987,9 +10343,6 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 지정할 수 있습니다.
#~ msgid "Convert To Lowercase"
#~ msgstr "소문ìžë¡œ 변환"
-#~ msgid "Snap To Floor"
-#~ msgstr "ë°”ë‹¥ì— ìŠ¤ëƒ…"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "0ë„ íšŒì „"
@@ -10514,9 +10867,6 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 지정할 수 있습니다.
#~ msgid "Added:"
#~ msgstr "추가ë¨:"
-#~ msgid "Removed:"
-#~ msgstr "제거ë¨:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "ì•„í‹€ë¼ìŠ¤ 서브 í…스ì³ë¥¼ 저장할 수 없습니다:"
@@ -10775,9 +11125,6 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 지정할 수 있습니다.
#~ msgid "Error importing:"
#~ msgstr "가져오기 ì—러:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "í° í…스ì³ë¥¼ 위해서는 단 í•˜ë‚˜ì˜ íŒŒì¼ë§Œ 요구ë©ë‹ˆë‹¤."
-
#~ msgid "Max Texture Size:"
#~ msgstr "최대 í…ìŠ¤ì³ ì‚¬ì´ì¦ˆ:"
diff --git a/editor/translations/lt.po b/editor/translations/lt.po
index 4985518381..cf5799620e 100644
--- a/editor/translations/lt.po
+++ b/editor/translations/lt.po
@@ -84,6 +84,14 @@ msgstr ""
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 ""
@@ -115,6 +123,16 @@ msgid "Anim Change Call"
msgstr "Animacija: Pakeisti IÅ¡kvietimÄ…"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Animacijos Nodas"
+
+#: 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 ""
@@ -166,6 +184,10 @@ 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 ""
@@ -193,6 +215,10 @@ msgid "Time (s): "
msgstr "TrukmÄ—:"
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -245,6 +271,21 @@ msgid "Delete Key(s)"
msgstr "IÅ¡trinti EfektÄ…"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Animacijos Nodas"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Animacijos Nodas"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Animacijos Nodas"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Animacija: Panaikinti Takelį"
@@ -286,6 +327,15 @@ msgid "Anim Insert Key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Animacijos Nodas"
+
+#: editor/animation_track_editor.cpp
+msgid "Rearrange Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -310,6 +360,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Animacija: Pridėti Takelį"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -318,10 +373,24 @@ 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
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Animacija: Pridėti Takelį"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Animacija: Pridėti Takelį"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -334,6 +403,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -379,10 +452,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -483,6 +552,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Animacija: Pridėti Takelį"
+
+#: 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 ""
@@ -1282,6 +1364,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1832,6 +1920,14 @@ 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 ""
@@ -3434,12 +3530,45 @@ 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
+#, fuzzy
+msgid "Add Node Point"
+msgstr "MÄ—gstamiausi:"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Animacijos Nodas"
+
+#: 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 ""
@@ -3480,6 +3609,27 @@ msgid "Triangle already exists"
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Animacija: Pridėti Takelį"
+
+#: 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 ""
@@ -3488,6 +3638,10 @@ 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 ""
@@ -3505,6 +3659,10 @@ 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 "Redaguoti Filtrus"
@@ -3514,11 +3672,51 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Naujas pavadinimas:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Atsijungti"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animacija"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "IÅ¡trinti EfektÄ…"
+
+#: 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 ""
@@ -3534,6 +3732,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Naujas pavadinimas:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr ""
@@ -3764,6 +3968,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Mix Nodas"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Transition Nodas"
+
+#: 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 ""
@@ -3792,6 +4011,20 @@ msgid "No playback resource set at path: %s."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Panaikinti"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Transition Nodas"
+
+#: 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"
@@ -4602,6 +4835,10 @@ msgstr ""
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 ""
@@ -5758,6 +5995,14 @@ 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 ""
@@ -5866,10 +6111,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5914,7 +6155,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6006,6 +6247,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6014,6 +6261,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Select Mode (Q)"
msgstr "Pasirinkite Nodus, kuriuos norite importuoti"
@@ -6293,10 +6544,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6630,6 +6877,11 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Sukurti NaujÄ…"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Keisti Poligono SkalÄ™"
@@ -6805,6 +7057,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Duplikuoti"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6820,6 +7093,15 @@ msgstr ""
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Redaguoti Filtrus"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Mode Changed"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -6833,7 +7115,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6845,6 +7136,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7834,6 +8129,10 @@ 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 Node(s)?"
msgstr ""
@@ -7868,6 +8167,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Create Root Node:"
msgstr "Prijunkite prie Nodo:"
@@ -8285,6 +8588,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8490,6 +8805,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8785,10 +9104,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8871,6 +9186,10 @@ 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 ""
diff --git a/editor/translations/lv.po b/editor/translations/lv.po
index 60475bea45..8cf29d32cb 100644
--- a/editor/translations/lv.po
+++ b/editor/translations/lv.po
@@ -86,6 +86,14 @@ msgstr "DublikÄta IzvÄ“le"
msgid "Delete Selected Key(s)"
msgstr "Izdzēst izvēlētos failus?"
+#: 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 ""
@@ -115,6 +123,16 @@ msgid "Anim Change Call"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "AnimÄciju Cilpa"
+
+#: 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 ""
@@ -164,6 +182,10 @@ msgid "Anim Clips:"
msgstr "AnimÄcijas klipi:"
#: editor/animation_track_editor.cpp
+msgid "Change Track Path"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr ""
@@ -188,6 +210,10 @@ msgid "Time (s): "
msgstr "Laiks (s): "
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "NepÄrtraukti"
@@ -238,6 +264,21 @@ msgid "Delete Key(s)"
msgstr "Izdzēst atslēgvietnes"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "AnimÄcijas tÄlummaiņa."
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "InterpolÄcijas režīms"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "AnimÄcijas tÄlummaiņa."
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Noņemt animÄcijas celiņu"
@@ -279,6 +320,16 @@ msgid "Anim Insert Key"
msgstr "Anim ievietot atslēgievietni"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "AnimÄcijas tÄlummaiņa."
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Ielīmēt celiņus"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -307,6 +358,11 @@ msgid "Not possible to add a new track without a root"
msgstr "Nevar izveidot jaunu celiņu bez saknes"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Pievienot celiņu"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -315,10 +371,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Anim ievietot celiņu un atslēgvietni"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Pievienot celiņu"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Anim ievietot celiņu un atslēgvietni"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Metode netika atrasta objektÄ: "
@@ -331,6 +402,10 @@ msgid "Clipboard is empty"
msgstr "Starpliktuve ir tukša"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Ielīmēt celiņus"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Anim pÄrvietot atslÄ“gievietnes"
@@ -374,10 +449,6 @@ msgid "Copy Tracks"
msgstr "Kopēt celiņus"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Ielīmēt celiņus"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Mēroga Izvēle"
@@ -479,6 +550,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Audio klipi:"
+
+#: 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 ""
@@ -1286,6 +1370,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1835,6 +1925,14 @@ 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 ""
@@ -3426,12 +3524,45 @@ msgstr "IelÄdÄ“t"
#: 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
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Favorīti:"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "AnimÄciju Cilpa"
+
+#: 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 ""
@@ -3472,6 +3603,27 @@ msgid "Triangle already exists"
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Pievienot celiņu"
+
+#: 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 ""
@@ -3480,6 +3632,10 @@ 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 ""
@@ -3497,6 +3653,10 @@ 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 ""
@@ -3506,11 +3666,51 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Savienot"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Nodes Disconnected"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "OptimizÄ“t animÄciju"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Izdzēst"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Toggle Filter On/Off"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Nomainīt"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3526,6 +3726,11 @@ msgid ""
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 ""
@@ -3753,6 +3958,20 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Move Node"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Pievienot celiņu"
+
+#: 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 ""
@@ -3781,6 +4000,19 @@ msgid "No playback resource set at path: %s."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Noņemt"
+
+#: 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"
@@ -4585,6 +4817,10 @@ msgstr ""
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 ""
@@ -5741,6 +5977,14 @@ 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 ""
@@ -5849,10 +6093,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5897,7 +6137,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -5989,6 +6229,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5997,6 +6243,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6274,10 +6524,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6612,6 +6858,11 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Izveidot Jaunu %s"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Izveidot"
@@ -6786,6 +7037,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Dublicēt atslēgvietnes"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6801,6 +7073,14 @@ msgstr ""
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 ""
@@ -6814,7 +7094,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6826,6 +7115,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7805,6 +8098,10 @@ 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 Node(s)?"
msgstr ""
@@ -7839,6 +8136,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Create Root Node:"
msgstr "Izveidot Jaunu %s"
@@ -8253,6 +8554,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8458,6 +8771,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8753,10 +9070,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8837,6 +9150,10 @@ 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 ""
diff --git a/editor/translations/ml.po b/editor/translations/ml.po
index 346181c489..1521d0a841 100644
--- a/editor/translations/ml.po
+++ b/editor/translations/ml.po
@@ -82,6 +82,14 @@ msgstr ""
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 ""
@@ -111,6 +119,15 @@ msgid "Anim 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 ""
@@ -160,6 +177,10 @@ 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 ""
@@ -184,6 +205,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -234,6 +259,18 @@ 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 ""
@@ -275,6 +312,14 @@ 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 ""
@@ -299,6 +344,10 @@ msgid "Not possible to add a new track without a root"
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 ""
@@ -307,10 +356,22 @@ 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 ""
@@ -323,6 +384,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -365,10 +430,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -468,6 +529,18 @@ msgstr ""
msgid "Copy"
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 ""
@@ -1260,6 +1333,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1800,6 +1879,14 @@ 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 ""
@@ -3375,12 +3462,43 @@ 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 ""
@@ -3420,6 +3538,26 @@ 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 ""
@@ -3428,6 +3566,10 @@ 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 ""
@@ -3445,6 +3587,10 @@ 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 ""
@@ -3454,11 +3600,47 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+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 ""
@@ -3474,6 +3656,11 @@ msgid ""
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 ""
@@ -3699,6 +3886,19 @@ 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 "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 ""
@@ -3727,6 +3927,18 @@ 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"
@@ -4525,6 +4737,10 @@ msgstr ""
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 ""
@@ -5662,6 +5878,14 @@ 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 ""
@@ -5770,10 +5994,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5818,7 +6038,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -5910,6 +6130,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5918,6 +6144,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6194,10 +6424,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6523,6 +6749,10 @@ 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 ""
@@ -6685,6 +6915,26 @@ msgid "TileSet"
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 "Duplicate Nodes"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6700,6 +6950,14 @@ msgstr ""
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 ""
@@ -6713,7 +6971,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6725,6 +6992,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7701,6 +7972,10 @@ 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 Node(s)?"
msgstr ""
@@ -7735,6 +8010,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr ""
@@ -8147,6 +8426,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8351,6 +8642,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8645,10 +8940,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8729,6 +9020,10 @@ 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 ""
diff --git a/editor/translations/ms.po b/editor/translations/ms.po
index a336b59d6f..70640a39da 100644
--- a/editor/translations/ms.po
+++ b/editor/translations/ms.po
@@ -86,6 +86,14 @@ msgstr "Anim Menduakan Kunci"
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 "Anim Menduakan Kunci"
@@ -116,6 +124,15 @@ msgid "Anim Change Call"
msgstr "Anim Ubah Panggilan"
#: 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 ""
@@ -166,6 +183,10 @@ 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 ""
@@ -191,6 +212,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -242,6 +267,18 @@ 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 "Buang Trek Anim"
@@ -283,6 +320,15 @@ msgid "Anim Insert Key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Anim Ubah Peralihan"
+
+#: editor/animation_track_editor.cpp
+msgid "Rearrange Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -307,6 +353,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Anim Tambah Trek"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -315,10 +366,24 @@ 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
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Anim Tambah Trek"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Anim Tambah Trek"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -331,6 +396,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -373,10 +442,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -477,6 +542,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Anim Tambah Trek"
+
+#: 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 ""
@@ -1269,6 +1347,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1809,6 +1893,14 @@ 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 ""
@@ -3384,12 +3476,44 @@ 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
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Set Peralihan ke:"
+
+#: 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 ""
@@ -3429,6 +3553,27 @@ msgid "Triangle already exists"
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Anim Tambah Trek"
+
+#: 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 ""
@@ -3437,6 +3582,10 @@ 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 ""
@@ -3454,6 +3603,10 @@ 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 ""
@@ -3463,11 +3616,49 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+#, fuzzy
+msgid "Set Animation"
+msgstr "Set Peralihan ke:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Semua Pilihan"
+
+#: 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 ""
@@ -3483,6 +3674,11 @@ msgid ""
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 ""
@@ -3709,6 +3905,20 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Move Node"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Set Peralihan ke:"
+
+#: 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 ""
@@ -3737,6 +3947,19 @@ 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
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Set Peralihan ke:"
+
+#: 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"
@@ -4536,6 +4759,10 @@ msgstr ""
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 ""
@@ -5673,6 +5900,14 @@ 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 ""
@@ -5781,10 +6016,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5829,7 +6060,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -5921,6 +6152,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5929,6 +6166,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6205,10 +6446,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6538,6 +6775,10 @@ 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 ""
@@ -6702,6 +6943,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Anim Menduakan Kunci"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6717,6 +6979,14 @@ msgstr ""
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 ""
@@ -6730,7 +7000,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6742,6 +7021,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7720,6 +8003,10 @@ 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 Node(s)?"
msgstr ""
@@ -7754,6 +8041,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr ""
@@ -8166,6 +8457,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8371,6 +8674,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8666,10 +8973,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8750,6 +9053,10 @@ 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 ""
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index ada2ff1569..d5ed37e58c 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -97,6 +97,16 @@ msgstr "Dupliser valgte nøkler/taster"
msgid "Delete Selected Key(s)"
msgstr "Slett valgte nøkler/taster"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Legg til punkt"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Flytt Punkt"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Anim Dupliser Nøkler"
@@ -127,6 +137,16 @@ msgstr "Anim Forandre Kall"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Animation Length"
+msgstr "Endre Animasjonsnavn:"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Property Track"
msgstr "Egenskapsspor"
@@ -186,6 +206,11 @@ msgstr "Anim-klipp:"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Track Path"
+msgstr "Endre Array-verdi"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Toggle this track on/off."
msgstr "Vis/skjul distraksjonsfri modus."
@@ -213,6 +238,10 @@ msgid "Time (s): "
msgstr "X-Fade Tid (s):"
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Kontinuerlig"
@@ -266,6 +295,21 @@ msgid "Delete Key(s)"
msgstr "Anim Fjern Nøkler"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Endre Animasjonsnavn:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Animasjonsnode"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Endre Anim-Løkke"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Fjern Anim-Spor"
@@ -308,6 +352,16 @@ msgstr "Anim Sett Inn Nøkkel"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Animation Step"
+msgstr "Endre Animasjonsnavn:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Omorganiser Autoloads"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "Transformasjonsspor kan kun brukes på Spatial-baserte noder."
@@ -340,6 +394,11 @@ msgstr "Ikke mulig å legge til et nytt spor uten en rot"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Anim Legg til Spor"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Track path is invalid, so can't add a key."
msgstr "Sporsti er ugyldig, så kan ikke legge til en nøkkel."
@@ -350,10 +409,25 @@ msgstr "Spor er ikke av type Spatial, kan ikke legge til nøkkel"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "3D transformasjonsspor"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Anim Legg til Spor"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Track path is invalid, so can't add a method key."
msgstr "Sporsti er ugyldig, så kan ikke legge til metodenøkkel."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Kall metode-spor"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Metode ikke funnet i objekt: "
@@ -367,6 +441,11 @@ msgid "Clipboard is empty"
msgstr "Ressurs-utklippstavle er tom!"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "Lim inn Parametre"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Anim Skalér Nøkler"
@@ -416,11 +495,6 @@ msgid "Copy Tracks"
msgstr "Kopier Parametre"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Lim inn Parametre"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Skaler Utvalg"
@@ -523,6 +597,19 @@ msgstr "Velg spor å kopiere:"
msgid "Copy"
msgstr "Lim inn"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Lydklipp:"
+
+#: 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 "Endre størrelsen på Array"
@@ -1345,6 +1432,12 @@ msgstr "Ingen eksportmal funnet på forventet søkesti:"
msgid "Packing"
msgstr "Pakking"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1946,6 +2039,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Lagre endringer til '%s' før lukking?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Kunne ikke laste ressurs."
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Lagre Scene Som..."
@@ -3672,12 +3774,49 @@ msgstr "Last"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Flytt Punkt"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Endre Blend-Tid"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Endre Blend-Tid"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Legg til punkt"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Legg til Animasjon"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Fjern Stipunkt"
+
+#: 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 ""
@@ -3720,6 +3859,30 @@ msgid "Triangle already exists"
msgstr "ERROR: Animasjonsnavnet finnes allerede!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Anim Legg til Spor"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Endre Blend-Tid"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Endre Blend-Tid"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Fjern Stipunkt"
+
+#: 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 ""
@@ -3728,6 +3891,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Veksle AutoLoad Globals"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3746,6 +3914,11 @@ msgid "Blend:"
msgstr "Blend:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Forandre"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Rediger Filtre"
@@ -3755,11 +3928,55 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "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"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Tilkoblet"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Frakoblet"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animasjon"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Kutt Noder"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Vis/skjul distraksjonsfri modus."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Endre Anim Lengde"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3775,6 +3992,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Nodenavn:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr ""
@@ -4014,6 +4237,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Kryss-Animasjon Blend-Tid"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Flytt Modus"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Overgang"
+
+#: 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 ""
@@ -4043,6 +4281,20 @@ msgid "No playback resource set at path: %s."
msgstr "Ikke i resource path."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Fjern"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Overgang Node"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Set Start Node (Autoplay)"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid ""
"Select and move nodes.\n"
"RMB to add new nodes.\n"
@@ -4890,6 +5142,10 @@ msgstr "Hold Shift for å endre tangenter individuelt"
msgid "Bake GI Probe"
msgstr "Bak GI Probe"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Element %d"
@@ -6089,6 +6345,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Fjern Ben"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "Singleton"
@@ -6202,10 +6467,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -6250,8 +6511,9 @@ msgid "Rear"
msgstr "Bak"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
-msgstr ""
+#, fuzzy
+msgid "Align with View"
+msgstr "Høyrevisning"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "No parent to instance a child at."
@@ -6344,6 +6606,12 @@ msgid "Freelook Speed Modifier"
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
#, fuzzy
msgid "View Rotation Locked"
msgstr "Vis Informasjon"
@@ -6354,6 +6622,11 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Snap til rutenett"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid "Select Mode (Q)"
msgstr "Velg Modus"
@@ -6636,10 +6909,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6986,6 +7255,11 @@ msgstr "Høyreklikk: Slett Punkt."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Lag ny %s"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Lag en ny polygon fra bunnen."
@@ -7170,6 +7444,28 @@ msgid "TileSet"
msgstr "TileSet..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Sett som Standard for '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Anim Dupliser Nøkler"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -7186,6 +7482,16 @@ msgstr "Høyre"
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Rediger Filtre"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Forandre"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Kjørbar"
@@ -7199,7 +7505,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -7212,6 +7527,10 @@ msgid "Exporting All"
msgstr "Eksporter"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -8221,6 +8540,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Lagre Scene"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8257,6 +8581,11 @@ msgstr "Lag Ben"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Lagre Scene"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Lag Node"
@@ -8685,6 +9014,20 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Gli ut"
+
+#: editor/settings_config_dialog.cpp
+msgid "Restore Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Endre Anker"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr ""
@@ -8898,6 +9241,10 @@ msgid "GridMap Duplicate Selection"
msgstr "Dupliser Utvalg"
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -9208,10 +9555,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -9302,6 +9645,11 @@ msgid "Change Input Value"
msgstr "Anim Forandre Verdi"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Endre CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
@@ -10211,10 +10559,6 @@ msgstr ""
#~ msgid "Convert To Lowercase"
#~ msgstr "Konverter til små versaler"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "Snap til rutenett"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "Roter 0 grader"
@@ -10282,12 +10626,6 @@ msgstr ""
#~ msgid "Out-In"
#~ msgstr "Ut-Inn"
-#~ msgid "Change Anim Len"
-#~ msgstr "Endre Anim Lengde"
-
-#~ msgid "Change Anim Loop"
-#~ msgstr "Endre Anim-Løkke"
-
#~ msgid "Anim Create Typed Value Key"
#~ msgstr "Anim Lag Typet Verdi Nøkkel"
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index 7bb0a80b52..541763f376 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -110,6 +110,16 @@ msgstr "Kopieer Geselecteerde Key(s)"
msgid "Delete Selected Key(s)"
msgstr "Geselecteerde Key(s) Verwijderen"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Punt toevoegen"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Beweeg Punt"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Anim Dupliceer Keys"
@@ -139,6 +149,16 @@ msgid "Anim Change Call"
msgstr "Anim Wijzig Aanroep"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Verander Animatie Lus"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "Verander Animatie Lus"
+
+#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr "Eigenschap Track"
@@ -188,6 +208,11 @@ msgid "Anim Clips:"
msgstr "Animatieclips:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Wijzig Array Waarde"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Aan-uitschakelaar Track."
@@ -213,6 +238,11 @@ msgid "Time (s): "
msgstr "Tijd (s): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Inschakelen Doppler"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Doorlopend"
@@ -263,6 +293,21 @@ msgid "Delete Key(s)"
msgstr "Verwijder Key(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Verander Animatie Naam:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Interpolatiemodus"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Verander Animatie Lus"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Verwijder Anim Track"
@@ -304,6 +349,16 @@ msgid "Anim Insert Key"
msgstr "Anim Key Invoegen"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Verander Animatie FPS"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Herschik Autoloads"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
"Transformatie tracks zijn alleen te gebruiken met nodes die een dimensionale "
@@ -334,6 +389,11 @@ msgid "Not possible to add a new track without a root"
msgstr "Niet mogelijk om een nieuwe track toe te voegen zonder een root"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Track Toevoegen"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "Track path is niet geldig, dus kan geen key toevoegen."
@@ -342,10 +402,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "Track is niet van het type Spatial, kan geen key invoegen"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "3D Transformatie Track"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Track Toevoegen"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr "Track path is niet geldig, dus kan geen methode key toevoegen."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Methode Invocatie Track"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Methode niet gevonden in object "
@@ -358,6 +433,10 @@ msgid "Clipboard is empty"
msgstr "Klembord is leeg"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Plak sporen"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Anim Schaal Keys"
@@ -403,10 +482,6 @@ msgid "Copy Tracks"
msgstr "Kopieer sporen"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Plak sporen"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Schaal selectie"
@@ -508,6 +583,19 @@ msgstr "Selecteer sporen om te kopieren:"
msgid "Copy"
msgstr "Kopiëren"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Audioclips:"
+
+#: 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 "Array Grootte Wijzigen"
@@ -1324,6 +1412,12 @@ msgstr "Geen exporteersjabloon gevonden op het verwachte pad:"
msgid "Packing"
msgstr "Inpakken"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1909,6 +2003,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Sla wijzigen aan '%s' op voor het afsluiten?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Mislukt om resource te laden."
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Sla Scene Op Als..."
@@ -3558,6 +3661,22 @@ msgstr "Laden..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Beweeg Punt"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Wijzig overlooptijd"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Wijzig overlooptijd"
+
+#: 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 ""
@@ -3565,6 +3684,27 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Node Toevoegen"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Voeg Animatie Toe"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Verwijder Pad Punt"
+
+#: 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 ""
@@ -3607,6 +3747,31 @@ msgid "Triangle already exists"
msgstr "Driehoek bestaat al"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Variabele Toevoegen"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Wijzig overlooptijd"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Wijzig overlooptijd"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Verwijder Pad Punt"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Verwijder Variabele"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D hoort niet bij een AnimationTree knoop."
@@ -3615,6 +3780,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "AutoLoad-Globalen omschakelen"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Maak driehoeken door punten te verbinden."
@@ -3632,6 +3802,11 @@ msgid "Blend:"
msgstr "Mengen:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Materiaal Wijzigingen"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Filters Bewerken"
@@ -3641,6 +3816,17 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Voeg Node(s) Toe Uit Tree"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Verplaatsingsmodus"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
@@ -3648,6 +3834,39 @@ msgstr ""
"ongeldig zijn."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Verbonden"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Verbinding Verbroken"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animatie"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Alles Selecteren"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Aan-uitschakelaar Track."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Wijzig Anim Lengte"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr "Geen animatiespeler ingesteld, spoornamen konden niet worden gevonden."
@@ -3666,6 +3885,12 @@ msgstr ""
"niet worden gevonden."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Node Naam:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "Voeg knoop toe..."
@@ -3893,6 +4118,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Cross-animatie mixtijden"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Verplaatsingsmodus"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Voeg vertaling toe"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Node Toevoegen"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr "Einde"
@@ -3923,6 +4163,20 @@ msgid "No playback resource set at path: %s."
msgstr "Niet in resource pad."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Verwijderd:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Overgangsknoop"
+
+#: 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"
@@ -4753,6 +5007,10 @@ msgstr "Houd Shift ingedrukt om de raaklijnen individueel te bewerken"
msgid "Bake GI Probe"
msgstr "Bak GI Probe"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Item %d"
@@ -5953,6 +6211,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Creëer Emissie Punten Vanuit Mesh"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "Singleton"
@@ -6066,10 +6333,6 @@ msgid "Vertices"
msgstr "Vertices"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Bovenaanzicht."
@@ -6114,7 +6377,8 @@ msgid "Rear"
msgstr "Achter"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Uitlijnen met zicht"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6208,6 +6472,12 @@ msgid "Freelook Speed Modifier"
msgstr "Vrijekijk Snelheid Modificator"
#: 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
#, fuzzy
msgid "View Rotation Locked"
msgstr "Bekijk Informatie"
@@ -6217,6 +6487,11 @@ msgid "XForm Dialog"
msgstr "XForm Dialoog"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Uitlijnen op raster"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Selectiestand (Q)"
@@ -6505,10 +6780,6 @@ msgid "Add Empty"
msgstr "Lege Toevoegen"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Verander Animatie Lus"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Verander Animatie FPS"
@@ -6845,6 +7116,11 @@ msgid "Erase bitmask."
msgstr "Bitmasker wissen."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Nieuwe knopen maken."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "Nieuwe veelhoek aanmaken."
@@ -7035,6 +7311,29 @@ msgid "TileSet"
msgstr "TileSet..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Stel in als Standaard voor '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "Shader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Dupliceer Graaf Knooppunt(en)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vertex"
msgstr "Vertices"
@@ -7054,6 +7353,16 @@ msgstr "Rechts"
msgid "VisualShader"
msgstr "Shader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Filters Bewerken"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Shader Wijzigingen"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Uitvoerbaar"
@@ -7067,7 +7376,16 @@ msgid "Delete preset '%s'?"
msgstr "Verwijder voorinstelling '%s'?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -7081,6 +7399,10 @@ msgid "Exporting All"
msgstr "Aan het exporteren voor %s"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Voorinstelling"
@@ -8100,6 +8422,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Klinkt logisch!"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8136,6 +8463,11 @@ msgstr "Maak Botten"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Klinkt logisch!"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Creëer Node"
@@ -8561,6 +8893,21 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Rustig Afzetten"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Snelkoppelingen"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Wijzig Ankers"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Snelkoppelingen"
@@ -8773,6 +9120,10 @@ msgid "GridMap Duplicate Selection"
msgstr "Dupliceer Selectie"
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -9090,10 +9441,6 @@ msgid "Change Expression"
msgstr "Verander Expressie"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Node Toevoegen"
-
-#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Remove VisualScript Nodes"
msgstr "Verwijder ongeldige keys"
@@ -9191,6 +9538,11 @@ msgid "Change Input Value"
msgstr "Wijzig Array Waarde"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Formaat van CanvasItem wijzigen"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
@@ -10035,6 +10387,9 @@ msgstr ""
msgid "Varyings can only be assigned in vertex function."
msgstr ""
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#~ msgid "Warnings:"
#~ msgstr "Waarschuwingen:"
@@ -10198,10 +10553,6 @@ msgstr ""
#~ msgid "Convert To Lowercase"
#~ msgstr "Converteer Naar Kleine Letters"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "Uitlijnen op raster"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "0 Graden Roteren"
@@ -10305,9 +10656,6 @@ msgstr ""
#~ msgid "Move Shader Graph Node"
#~ msgstr "Verplaats Shader Graaf Knooppunten"
-#~ msgid "Duplicate Graph Node(s)"
-#~ msgstr "Dupliceer Graaf Knooppunt(en)"
-
#~ msgid "Delete Shader Graph Node(s)"
#~ msgstr "Verwijder Shader Graaf Knooppunt(en)"
@@ -10365,9 +10713,6 @@ msgstr ""
#~ msgid "Out-In"
#~ msgstr "Uit-In"
-#~ msgid "Change Anim Len"
-#~ msgstr "Wijzig Anim Lengte"
-
#~ msgid "Change Anim Loop"
#~ msgstr "Wijzig Anim Lus"
@@ -10611,9 +10956,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "Toegevoegd:"
-#~ msgid "Removed:"
-#~ msgstr "Verwijderd:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "Kon atlas subtexture niet opslaan:"
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index 5e3e330c84..a211de63b7 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -30,11 +30,12 @@
# Szymon Nowakowski <smnbdg13@gmail.com>, 2019.
# Nie Powiem <blazek10@tlen.pl>, 2019.
# Sebastian Hojka <sibibibi1@gmail.com>, 2019.
+# Robert <vizz0@onet.pl>, 2019.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-02-18 08:54+0000\n"
+"PO-Revision-Date: 2019-03-01 11:59+0000\n"
"Last-Translator: Tomek <kobewi4e@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot/pl/>\n"
@@ -112,6 +113,16 @@ msgstr "Duplikuj klucz(e)"
msgid "Delete Selected Key(s)"
msgstr "Usuń klucz(e)"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Dodaj punkt"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Przesuń punkty"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Duplikuj klucze"
@@ -141,6 +152,16 @@ msgid "Anim Change Call"
msgstr "Animacja - wywołanie funkcji"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Zmień pętle animacji"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "Zmień pętle animacji"
+
+#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr "Ścieżka właściwości"
@@ -190,6 +211,11 @@ msgid "Anim Clips:"
msgstr "Klipy animacji:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Zmień Wartość Tablicy"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Włącz/wyłącz tę ścieżkę."
@@ -214,6 +240,11 @@ msgid "Time (s): "
msgstr "Czas (s): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Efekt Dopplera"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Ciągłe"
@@ -264,6 +295,21 @@ msgid "Delete Key(s)"
msgstr "Usuń klucz(e)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Zmień nazwę animacji:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Sposób interpolacji"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Zmień pętle animacji"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Usuń ścieżkę animacji"
@@ -306,6 +352,16 @@ msgid "Anim Insert Key"
msgstr "Wstaw klatkÄ™ kluczowÄ…"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Zmień FPS animacji"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Przestaw Autoloady"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "Ścieżki przekształceń działają tylko z węzłami bazującymi na Spatial."
@@ -335,6 +391,11 @@ msgid "Not possible to add a new track without a root"
msgstr "Nie da się dodać nowej ścieżki bez korzenia"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Dodaj ścieżkę"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "Ścieżka jest nieprawidłowa, więc nie można wstawić klucza."
@@ -343,10 +404,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "Ścieżka nie jest typu Spatial, nie można wstawić klucza"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Ścieżka przekształcenia 3D"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Dodaj ścieżkę"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr "Ścieżka jest nieprawidłowa, więc nie można wstawić klucza metody."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Ścieżka wywołania metody"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Metoda nie znaleziona w obiekcie: "
@@ -359,6 +435,10 @@ msgid "Clipboard is empty"
msgstr "Schowek jest pusty"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Wklej ścieżki"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Przeskaluj klatki kluczowe"
@@ -402,10 +482,6 @@ msgid "Copy Tracks"
msgstr "Kopiuj ścieżki"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Wklej ścieżki"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Skaluj zaznaczone"
@@ -505,6 +581,19 @@ msgstr "Wybierz ścieżki do skopiowania:"
msgid "Copy"
msgstr "Kopiuj"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Klipy dźwiękowe:"
+
+#: 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 "Zmień rozmiar Tablicy"
@@ -1312,6 +1401,12 @@ msgstr "Nie znaleziono szablonu eksportu w przewidywanej lokalizacji:"
msgid "Packing"
msgstr "Pakowanie"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1887,6 +1982,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "Zapisać zmiany w '%s' przed zamknięciem?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Nie udało się wczytać zasobu."
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "Tylko jeden plik jest wymagany dla dużych tekstur."
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Zapisz scenÄ™ jako..."
@@ -3039,7 +3144,7 @@ msgstr "Duplikowanie Folderu:"
#: editor/filesystem_dock.cpp
msgid "Open Scene(s)"
-msgstr "Otwórz Scenę/y"
+msgstr "Otwórz scenę/y"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -3055,7 +3160,7 @@ msgstr "Usuń z ulubionych"
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies..."
-msgstr "Edytuj Zależności..."
+msgstr "Edytuj zależności..."
#: editor/filesystem_dock.cpp
msgid "View Owners..."
@@ -3523,6 +3628,22 @@ msgstr "Wczytaj..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Przesuń punkty"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Zmień czas mieszania"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Zmień czas mieszania"
+
+#: 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 ""
@@ -3530,6 +3651,27 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Dodaj węzeł"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Dodaj animacjÄ™"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Usuń punkt ścieżki"
+
+#: 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 ""
@@ -3572,6 +3714,31 @@ msgid "Triangle already exists"
msgstr "Trójkąt już istnieje"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Dodaj zmiennÄ…"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Zmień czas mieszania"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Zmień czas mieszania"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Usuń punkt ścieżki"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Usuń zmienną"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D nie należy do węzła AnimationTree."
@@ -3580,6 +3747,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "Nie ma żadnego trójkąta, więc nie może zajść mieszanie."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Przełącz automatycznie ładowane zmienne globalne"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Utwórz trójkąty poprzez łączenie punktów."
@@ -3597,6 +3769,11 @@ msgid "Blend:"
msgstr "Mieszanie:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Zmiany materiału"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Edytuj filtry"
@@ -3606,6 +3783,17 @@ msgid "Output node can't be added to the blend tree."
msgstr "Węzeł wyjściowy nie może być dodany do drzewa mieszania."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Dodaj węzeł(y) z drzewa"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Tryb przesuwania"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
@@ -3613,6 +3801,39 @@ msgstr ""
"nieprawidłowe."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Podłączony"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Rozłączono"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animacje"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Usuń węzeł (węzły)"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Włącz/wyłącz tę ścieżkę."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Zmień filtr ustawień lokalizacji"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"Nie ustawiono odtwarzacza animacji, więc nie można uzyskać nazw ścieżek."
@@ -3632,6 +3853,12 @@ msgstr ""
"uzyskać nazw ścieżek."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Nazwa węzła"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "Dodaj węzeł..."
@@ -3860,6 +4087,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Czasy przejścia pomiędzy animacjami"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Tryb przesuwania"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Dodaj tłumaczenie"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Dodaj węzeł"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr "Koniec"
@@ -3888,6 +4130,20 @@ msgid "No playback resource set at path: %s."
msgstr "Nie znaleziono zasobu do odtworzenia w ścieżce: %s."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Usunięte:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Węzeł Przejścia"
+
+#: 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"
@@ -4315,6 +4571,7 @@ msgstr "Przesuń CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Presets for the anchors and margins values of a Control node."
msgstr ""
+"Ustawienia wstępne dla wartości zakotwiczeń i marginesów węzła sterującego."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -4347,9 +4604,8 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
-#, fuzzy
msgid "Zoom Reset"
-msgstr "Wyzeruj powiększenie"
+msgstr "Zresetuj powiększenie"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Select Mode"
@@ -4708,6 +4964,10 @@ msgstr "Przytrzymaj Shift aby edytować styczne indywidualnie"
msgid "Bake GI Probe"
msgstr "Wypal sondÄ™ GI"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Element %d"
@@ -5128,9 +5388,8 @@ msgid "Click: Add Point"
msgstr "Klik: Dodaj Punkt"
#: editor/plugins/path_2d_editor_plugin.cpp
-#, fuzzy
msgid "Left Click: Split Segment (in curve)"
-msgstr "Podziel Segment (na krzywej)"
+msgstr "LPM: Podziel Segment (na krzywej)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -5243,43 +5502,40 @@ msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
msgstr ""
+"Wielokąt 2D ma wewnętrzne wierzchołki, więc nie można go już edytować w "
+"oknie roboczym."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon & UV"
msgstr "Utwórz wielokąt i UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Internal Vertex"
-msgstr "Utwórz nową prowadnicę poziomą"
+msgstr "Utwórz wewnętrzny wierzchołek"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Remove Internal Vertex"
-msgstr "Usuń punkt ścieżki"
+msgstr "Usuń wewnętrzny wierzchołek"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Invalid Polygon (need 3 different vertices)"
-msgstr ""
+msgstr "Nieprawidłowy wielokąt (potrzebujesz 3 różnych wierzchołków)"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Add Custom Polygon"
-msgstr "Edytuj wielokÄ…t"
+msgstr "Dodaj niestandardowy wielokÄ…t"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Polygon"
-msgstr "Usuń wielokąt i punkt"
+msgstr "Usuń niestandardowy wielokąt"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Transform UV Map"
msgstr "Przekształć Mapę UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Transform Polygon"
-msgstr "Typ przekształcenia"
+msgstr "Przekształć wielokąt"
#: editor/plugins/polygon_2d_editor_plugin.cpp
#, fuzzy
@@ -5287,9 +5543,8 @@ msgid "Paint Bone Weights"
msgstr "Maluj wagi kości"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Open Polygon 2D UV editor."
-msgstr "WielokÄ…t 2D UV Edytor"
+msgstr "Otwórz Polygon 2D UV editor."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon 2D UV Editor"
@@ -5305,9 +5560,8 @@ msgid "Points"
msgstr "Punkt"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Polygons"
-msgstr "WielokÄ…t->UV"
+msgstr "WielokÄ…t"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Bones"
@@ -5462,7 +5716,7 @@ msgstr "Otwórz w edytorze"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Load Resource"
-msgstr "Wczytaj Zasób"
+msgstr "Wczytaj zasób"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ResourcePreloader"
@@ -5875,6 +6129,16 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr "Ten szkielet nie ma kości. Stwórz jakieś węzły potomne Bone2D."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Utwórz pozę spoczynkową (z kości)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Set Rest Pose to Bones"
+msgstr "Utwórz pozę spoczynkową (z kości)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "Szkielet 2D"
@@ -5983,10 +6247,6 @@ msgid "Vertices"
msgstr "Wierzchołki"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "Klatki na sekundÄ™"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Widok z góry."
@@ -6031,7 +6291,8 @@ msgid "Rear"
msgstr "Tył"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Wyrównaj z widokiem"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6124,6 +6385,12 @@ msgid "Freelook Speed Modifier"
msgstr "Zmiennik prędkości \"Wolnego widoku\""
#: 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 "View Rotation Locked"
msgstr "Obroty widoku zablokowane"
@@ -6132,6 +6399,11 @@ msgid "XForm Dialog"
msgstr "Okno dialogowe XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "PrzyciÄ…gaj do siatki"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Tryb zaznaczenia (Q)"
@@ -6414,10 +6686,6 @@ msgid "Add Empty"
msgstr "Dodaj pusty"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Zmień pętle animacji"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Zmień FPS animacji"
@@ -6748,6 +7016,11 @@ msgid "Erase bitmask."
msgstr "Wyczyść maskę bitową."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Utwórz nowe węzły."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "Utwórz nowy wielokąt."
@@ -6943,6 +7216,29 @@ msgid "TileSet"
msgstr "TileSet"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Ustaw jako domyślne dla '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "Shader wizualny"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Duplikuj węzeł(y)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Wierzchołek"
@@ -6958,6 +7254,16 @@ msgstr "Światło"
msgid "VisualShader"
msgstr "Shader wizualny"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Edytuj filtry"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Zmiany Shadera"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Uruchamiany"
@@ -6971,8 +7277,17 @@ msgid "Delete preset '%s'?"
msgstr "Usunąć predefiniowane '%s'?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "Brakuje szablonów eksportu dla tej platformy lub są uszkodzone:"
+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"
@@ -6983,6 +7298,10 @@ msgid "Exporting All"
msgstr "Eksportowanie wszystkiego"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "Brakuje szablonów eksportu dla tej platformy lub są uszkodzone:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Profile eksportu"
@@ -7988,6 +8307,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Zmień na korzeń sceny"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Usuń węzeł(y)?"
@@ -8024,6 +8348,11 @@ msgid "Make Local"
msgstr "Zrób lokalne"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "Zmień na korzeń sceny"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "Utwórz korzeń:"
@@ -8452,6 +8781,21 @@ msgid "Set From Tree"
msgstr "Ustaw z drzewa"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Åagodne wyjÅ›cie"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Skróty"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Zmień zakotwiczenie"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Skróty"
@@ -8658,6 +9002,11 @@ msgid "GridMap Duplicate Selection"
msgstr "GridMap duplikuj zaznaczenie"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "Ustawienia GridMap"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Grid Map"
@@ -8958,10 +9307,6 @@ msgid "Change Expression"
msgstr "Zmień wyrażenie"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Dodaj węzeł"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Usuwanie węzłów VisualScript"
@@ -9045,6 +9390,11 @@ msgid "Change Input Value"
msgstr "Zmień wartość wejściową"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Zmień rozmiar CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "Nie można skopiować węzła funkcji."
@@ -9926,6 +10276,9 @@ msgstr "Przypisanie do uniformu."
msgid "Varyings can only be assigned in vertex function."
msgstr "Varying może być przypisane tylko w funkcji wierzchołków."
+#~ msgid "FPS"
+#~ msgstr "Klatki na sekundÄ™"
+
#~ msgid "Warnings:"
#~ msgstr "Ostrzeżenia:"
@@ -10101,10 +10454,6 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchołków."
#~ msgid "Convert To Lowercase"
#~ msgstr "Małe litery"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "PrzyciÄ…gaj do siatki"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "Obróć o 0 stopni"
@@ -10600,9 +10949,6 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchołków."
#~ msgid "Added:"
#~ msgstr "Dodane:"
-#~ msgid "Removed:"
-#~ msgstr "Usunięte:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "Nie udało się zapisać tekstury atlasu:"
@@ -10866,9 +11212,6 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchołków."
#~ msgid "Error importing:"
#~ msgstr "BÅ‚Ä…d importowania:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "Tylko jeden plik jest wymagany dla dużych tekstur."
-
#~ msgid "Max Texture Size:"
#~ msgstr "Maksymalny rozmiar tekstury:"
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index c52676597c..a48c2fac95 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -91,6 +91,16 @@ msgstr "Yar, Blow th' Selected Down!"
msgid "Delete Selected Key(s)"
msgstr "Yar, Blow th' Selected Down!"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Add Signal"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Discharge ye' Signal"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr ""
@@ -125,6 +135,15 @@ msgid "Anim Change Call"
msgstr "Change yer Anim Call"
#: 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 ""
@@ -174,6 +193,10 @@ 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 ""
@@ -199,6 +222,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -251,6 +278,18 @@ msgid "Delete Key(s)"
msgstr "Yar, Blow th' Selected Down!"
#: 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 ""
@@ -292,6 +331,16 @@ msgid "Anim Insert Key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Change yer Anim Transition"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Paste yer Node"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -316,6 +365,10 @@ msgid "Not possible to add a new track without a root"
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 ""
@@ -324,10 +377,22 @@ 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
#, fuzzy
msgid "Method not found in object: "
msgstr "VariableGet be in davy jones locker! Not in th' script: "
@@ -341,6 +406,11 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "Paste yer Node"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -383,11 +453,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Paste yer Node"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -488,6 +553,18 @@ msgstr ""
msgid "Copy"
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 ""
@@ -1291,6 +1368,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1845,6 +1928,14 @@ 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 ""
@@ -3453,12 +3544,47 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Discharge ye' Signal"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Add Node"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Yer functions:"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Discharge ye' Function"
+
+#: 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 ""
@@ -3498,6 +3624,29 @@ msgid "Triangle already exists"
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Add Variable"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Discharge ye' Function"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Discharge ye' Variable"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
@@ -3506,6 +3655,10 @@ 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 ""
@@ -3523,6 +3676,11 @@ msgid "Blend:"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Change"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#, fuzzy
msgid "Edit Filters"
@@ -3533,11 +3691,53 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "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"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Slit th' Node"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Nodes Disconnected"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Yer functions:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Slit th' Node"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Toggle Filter On/Off"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Change"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3553,6 +3753,11 @@ msgid ""
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
#, fuzzy
msgid "Add Node..."
@@ -3782,6 +3987,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Forge yer Node!"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Add Function"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Add Node"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr ""
@@ -3810,6 +4030,18 @@ 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"
@@ -4620,6 +4852,10 @@ msgstr ""
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 ""
@@ -5782,6 +6018,14 @@ 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 ""
@@ -5892,10 +6136,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5940,7 +6180,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6032,6 +6272,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6040,6 +6286,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Select Mode (Q)"
msgstr "Slit th' Node"
@@ -6319,10 +6569,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6662,6 +6908,11 @@ msgstr "Yar, Blow th' Selected Down!"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Yar, Blow th' Selected Down!"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Yar, Blow th' Selected Down!"
@@ -6843,6 +7094,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Rename Variable"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6858,6 +7130,16 @@ msgstr ""
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Edit yer Variable:"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Change"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -6871,7 +7153,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6884,6 +7175,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7871,6 +8166,10 @@ 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 Node(s)?"
msgstr ""
@@ -7905,6 +8204,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr ""
@@ -8328,6 +8631,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8539,6 +8854,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8846,10 +9165,6 @@ msgid "Change Expression"
msgstr "Swap yer Expression"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Add Node"
-
-#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "Remove VisualScript Nodes"
msgstr "Discharge ye' Variable"
@@ -8944,6 +9259,10 @@ 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 ""
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index 4282c467b8..9e9ead344e 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -38,7 +38,7 @@
# Pedro Pacheco <pedroxixipa@hotmail.com>, 2018, 2019.
# Bruno Henrique <nimbusdroid@gmail.com>, 2018, 2019.
# Luciano Scilletta <lucianoscilletta@gmail.com>, 2018.
-# Julio Yagami <juliohenrique31501234@hotmail.com>, 2018.
+# Julio Yagami <juliohenrique31501234@hotmail.com>, 2018, 2019.
# Fernando Martinez <contact@fernandodev.com>, 2018.
# Marcelo <mitissa@gmail.com>, 2018, 2019.
# Walter Bolitto <wrcarval@live.com>, 2018, 2019.
@@ -51,12 +51,14 @@
# Alan Valmorbida <alanvalmorbida@gmail.com>, 2019.
# João Vitor Ferreira Cavalcante <jvfecav@gmail.com>, 2019.
# Thiago Amendola <amendolathiago@gmail.com>, 2019.
+# Raphael Nogueira Campos <raphaelncampos@gmail.com>, 2019.
+# Dimenicius <vinicius.costa.92@gmail.com>, 2019.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: 2016-05-30\n"
-"PO-Revision-Date: 2019-02-14 02:10+0000\n"
-"Last-Translator: Alan Valmorbida <alanvalmorbida@gmail.com>\n"
+"PO-Revision-Date: 2019-02-21 21:18+0000\n"
+"Last-Translator: Julio Yagami <juliohenrique31501234@hotmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
@@ -130,6 +132,16 @@ msgstr "Duplicar Chave(s) Selecionada(s)"
msgid "Delete Selected Key(s)"
msgstr "Excluir Chave(s) Selecionada(s)"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Adicionar ponto"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Mover pontos"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Duplicar Chave na Anim"
@@ -159,6 +171,16 @@ msgid "Anim Change Call"
msgstr "Alterar Chamada da Anim"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Alterar Repetição da Animação"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "Alterar Repetição da Animação"
+
+#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr "Trilha de Propriedade"
@@ -208,6 +230,11 @@ msgid "Anim Clips:"
msgstr "Clipes de Animação:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Alterar Valor do Vetor"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Ligar/desligar esta trilha."
@@ -232,6 +259,11 @@ msgid "Time (s): "
msgstr "Tempo (s): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Habilitar Doppler"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Contínuo"
@@ -282,6 +314,21 @@ msgid "Delete Key(s)"
msgstr "Deletar Chave(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Alterar Nome da Animação:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Modo de Interpolação"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Alterar Repetição da Animação"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Remover Trilha da Anim"
@@ -323,6 +370,16 @@ msgid "Anim Insert Key"
msgstr "Inserir Chave na Anim"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Alterar FPS da Animação"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Reordenar Autoloads"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
"As faixas de transformação aplicam-se apenas aos nós baseados no espaço."
@@ -353,6 +410,11 @@ msgid "Not possible to add a new track without a root"
msgstr "Não é possível adicionar uma nova trilha sem uma raiz"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Adicionar Trilha"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "Caminho da trilha é inválido,então não pode adicionar uma chave."
@@ -361,11 +423,26 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "Trilha não é do tipo Espacial,não pode inserir chave"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Trilha de transformação 3D"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Adicionar Trilha"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
"Caminho da trilha é inválido,então não pode adicionar uma chave de método."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Trilha de método de chamada"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Método não encontrado no objeto: "
@@ -378,6 +455,10 @@ msgid "Clipboard is empty"
msgstr "Ãrea de transferência vazia"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Colar Trilhas"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Alterar Escala das Chaves na Anim"
@@ -421,10 +502,6 @@ msgid "Copy Tracks"
msgstr "Copiar Trilhas"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Colar Trilhas"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Selecionar Escala"
@@ -524,6 +601,19 @@ msgstr "Selecionar trilhas para copiar:"
msgid "Copy"
msgstr "Copiar"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Clipes de Ãudio:"
+
+#: 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 "Redimensionar Vetor"
@@ -593,9 +683,8 @@ msgid "Warnings"
msgstr "Avisos"
#: editor/code_editor.cpp
-#, fuzzy
msgid "Line and column numbers."
-msgstr "Números de linha e coluna"
+msgstr "Números de linha e coluna."
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
@@ -1154,9 +1243,8 @@ msgid "Add Bus"
msgstr "Adicionar Canal"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "Salvar Layout de Canais de Ãudio Como..."
+msgstr "Adiciona um novo Canal de Ãudio a esse layout."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1334,6 +1422,12 @@ msgstr "Nenhum template para exportação foi encontrado no caminho esperado:"
msgid "Packing"
msgstr "Empacotando"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1910,6 +2004,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "Salvar alterações em '%s' antes de fechar?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Falha ao carregar recurso."
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "Apenas um arquivo é requerido para textura grande."
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Salvar Cena Como..."
@@ -2434,9 +2538,8 @@ msgid "Save & Restart"
msgstr "Salvar e Reiniciar"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Spins when the editor window redraws."
-msgstr "Gira quando a janela do editor atualiza!"
+msgstr "Gira quando a janela do editor atualiza."
#: editor/editor_node.cpp
msgid "Update Always"
@@ -3551,6 +3654,22 @@ msgstr "Carregar..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Mover pontos"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Alterar Tempo de Mistura"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Alterar Tempo de Mistura"
+
+#: 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 ""
@@ -3558,6 +3677,27 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Adicionar Nó"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Adicionar Animação"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Remover Ponto do Caminho"
+
+#: 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 ""
@@ -3600,6 +3740,31 @@ msgid "Triangle already exists"
msgstr "Triângulo já existe"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Adicionar Variável"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Alterar Tempo de Mistura"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Alterar Tempo de Mistura"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Remover Ponto do Caminho"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Remover Variável"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D não pertence ao nó AnimationTree."
@@ -3608,6 +3773,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "Não existem triângulos, então nenhuma mistura pode acontecer."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Alternar Auto Carregamentos de Globais"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Crie triângulos conectando pontos."
@@ -3625,6 +3795,11 @@ msgid "Blend:"
msgstr "Misturar:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Alterações de Material"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Editar Filtros"
@@ -3634,12 +3809,56 @@ msgid "Output node can't be added to the blend tree."
msgstr "Nós de saída não pode ser adicionado à árvore de mistura."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Adicionar Nó(s) a Partir da Ãrvore"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Modo Mover"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
"Incapaz de conectar, a porta pode estar em uso ou a conexão é inválida."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Conectado"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Desconectado"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Nova animação"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Excluir Nó(s)"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Ligar/desligar esta trilha."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "FIltro de Idiomas Alterado"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"Nenhum reprodutor de animação foi definido, então não é possível obter os "
@@ -3661,6 +3880,12 @@ msgstr ""
"possível obter os nomes das trilhas."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Nome do nó"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "Adicionar nó..."
@@ -3889,6 +4114,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Tempos de Mistura de Animação Cruzada"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Modo Mover"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Adicionar Tradução"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Adicionar Nó"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr "Fim"
@@ -3902,7 +4142,7 @@ msgstr "Sincronizar"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "At End"
-msgstr "No final"
+msgstr "No Fim"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Travel"
@@ -3917,6 +4157,20 @@ msgid "No playback resource set at path: %s."
msgstr "Sem recurso de playback definido no caminho: %s."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Removido:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Nó Transition"
+
+#: 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"
@@ -4342,15 +4596,14 @@ msgstr "Mover CanvaItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Presets for the anchors and margins values of a Control node."
msgstr ""
+"Predefinições para os valores de âncoras e margens de um nó de controle."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
msgstr ""
-"Filhos de contêineres tem suas posições e tamanhos sobrescritos pelos seus "
-"pais."
+"Filhos de contêineres tem sua âncora e margens sobrescritos pelos seus pais."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Anchors only"
@@ -4738,6 +4991,10 @@ msgstr "Segure Shift para editar tangentes individualmente"
msgid "Bake GI Probe"
msgstr "Cozinhar Sonda GI"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Item %d"
@@ -5265,6 +5522,8 @@ msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
msgstr ""
+"Polygon2D tem vértices internos, portanto não pode mais ser editado no "
+"Viewport."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon & UV"
@@ -5886,6 +6145,16 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr "Este esqueleto não tem ossos, crie alguns nós filhos Bone2D."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Faça Resto Pose (De Ossos)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Set Rest Pose to Bones"
+msgstr "Faça Resto Pose (De Ossos)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "Esqueleto2D"
@@ -5994,10 +6263,6 @@ msgid "Vertices"
msgstr "Vértices"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Visão Superior."
@@ -6042,7 +6307,8 @@ msgid "Rear"
msgstr "Traseira"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Alinhar com Visão"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6134,6 +6400,12 @@ msgid "Freelook Speed Modifier"
msgstr "Modificador de velocidade da Visão Livre"
#: 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 "View Rotation Locked"
msgstr "Ver Rotação Bloqueada"
@@ -6142,6 +6414,11 @@ msgid "XForm Dialog"
msgstr "Diálogo XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Encaixar na grade"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Modo de Seleção (Q)"
@@ -6357,9 +6634,8 @@ msgid "Post"
msgstr "Pós"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Nameless gizmo"
-msgstr "Gaveta sem nome"
+msgstr "Coisa sem nome"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite is empty!"
@@ -6423,10 +6699,6 @@ msgid "Add Empty"
msgstr "Adicionar Vazio"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Alterar Repetição da Animação"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Alterar FPS da Animação"
@@ -6752,6 +7024,11 @@ msgid "Erase bitmask."
msgstr "Apagar o bitmask."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Criar novos nós."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "Criar um novo polígono."
@@ -6928,6 +7205,29 @@ msgid "TileSet"
msgstr "Conjunto de Telha"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Definir como Padrão para '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "VisualShader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Duplicar Nó(s)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vértice"
@@ -6943,6 +7243,16 @@ msgstr "Luz"
msgid "VisualShader"
msgstr "VisualShader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Editar prioridade da telha"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Alterações de Shader"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Executável"
@@ -6956,10 +7266,17 @@ msgid "Delete preset '%s'?"
msgstr "Excluir definição '%s'?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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 ""
-"Modelos de exportação para esta plataforma não foram encontrados/estão "
-"corrompidos:"
#: editor/project_export.cpp
msgid "Release"
@@ -6970,6 +7287,12 @@ msgid "Exporting All"
msgstr "Exportando tudo"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+"Modelos de exportação para esta plataforma não foram encontrados/estão "
+"corrompidos:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Predefinições"
@@ -7259,7 +7582,6 @@ msgid "Are you sure to open more than one project?"
msgstr "Tem certeza de que quer abrir mais de um projeto?"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"The following project settings file does not specify the version of Godot "
"through which it was created.\n"
@@ -7272,13 +7594,12 @@ msgid ""
"the engine anymore."
msgstr ""
"O seguinte arquivo de configurações do projeto foi gerado por uma versão "
-"mais antiga do mecanismo e precisa ser convertido para esta versão:\n"
+"mais antiga do Godot e precisa ser convertido para esta versão:\n"
"\n"
"%s\n"
"\n"
"Você deseja realizar a conversão?\n"
-"Aviso: você não poderá mais abrir o projeto com versões anteriores do "
-"mecanismo."
+"Aviso: você não poderá mais abrir o projeto com versões anteriores do Godot."
#: editor/project_manager.cpp
msgid ""
@@ -7992,7 +8313,6 @@ msgid "Duplicate Node(s)"
msgstr "Duplicar Nó(s)"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Can't reparent nodes in inherited scenes, order of nodes can't change."
msgstr ""
"Não é possível re-hierarquizar nós em cenas herdadas, a ordem dos nós não "
@@ -8007,6 +8327,11 @@ msgid "Instantiated scenes can't become root"
msgstr "Cenas instanciadas não podem se tornar raiz"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Fazer Raiz de Cena"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Excluir Nó(s)?"
@@ -8043,6 +8368,11 @@ msgid "Make Local"
msgstr "Tornar Local"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "Fazer Raiz de Cena"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "Criar nó raiz:"
@@ -8471,6 +8801,21 @@ msgid "Set From Tree"
msgstr "Definir a partir da árvore"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Suavizar final"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Atalhos"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Alterar Âncoras"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Atalhos"
@@ -8677,6 +9022,10 @@ msgid "GridMap Duplicate Selection"
msgstr "Duplicar Seleção do GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr "Pintura GridMap"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Mapa de Grade"
@@ -8977,10 +9326,6 @@ msgid "Change Expression"
msgstr "Alterar Expressão"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Adicionar Nó"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Remover Nodes VisualScript"
@@ -9065,6 +9410,11 @@ msgid "Change Input Value"
msgstr "Alterar Valor da Entrada"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Redimensionar o CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "Não é possível copiar o nó de função."
@@ -9252,9 +9602,10 @@ msgstr "OpenJDK jarsigner não configurado nas opções do Editor."
#: platform/android/export/export.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
+"Porta-chaves de depuração não configurado nas Configurações do Editor e nem "
+"na predefinição."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Invalid public key for APK expansion."
msgstr "Chave pública inválida para expansão de APK."
@@ -9267,9 +9618,8 @@ msgid "Identifier is missing."
msgstr "Identificador está ausente."
#: platform/iphone/export/export.cpp
-#, fuzzy
msgid "Identifier segments must be of non-zero length."
-msgstr "O identificador deve ter comprimento diferente de zero."
+msgstr "Os segmentos de identificador devem ter comprimento diferente de zero."
#: platform/iphone/export/export.cpp
msgid "The character '%s' is not allowed in Identifier."
@@ -9301,7 +9651,6 @@ msgid "Invalid Identifier:"
msgstr "O nome não é um identificador válido:"
#: platform/iphone/export/export.cpp
-#, fuzzy
msgid "Required icon is not specified in the preset."
msgstr "Ãcone necessário não especificado na predefinição."
@@ -9346,7 +9695,6 @@ msgid "Invalid product GUID."
msgstr "GUID de produto inválido."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid publisher GUID."
msgstr "GUID do editor inválido."
@@ -9355,37 +9703,32 @@ msgid "Invalid background color."
msgstr "Cor de fundo inválida."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr "Dimensões inválidas do logo da loja (deve ser 50x50)."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr "Dimensões inválidas do logo quadrado de 44x44 (deve ser 44x44)."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr "Dimensões inválidas do logo quadrado de 71x71 (deve ser 71x71)."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr "Dimensões inválidas do logo quadrado de 150x150 (deve ser 150x150)."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr "Dimensões inválidas do logo quadrado de 310x310 (deve ser 310x310)."
#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
+msgstr "Dimensões inválidas de logo retangular de 310x150 (deve ser 310x150)."
#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr ""
+msgstr "Dimensões inválidas da tela de abertura (deve ser 620x300)."
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -9503,6 +9846,9 @@ msgid ""
"Use the CPUParticles2D node instead. You can use the \"Convert to "
"CPUParticles\" option for this purpose."
msgstr ""
+"Partículas baseadas em GPU não são suportadas pelo driver de vídeo GLES2.\n"
+"Use o nó CPUParticles2D como substituto. Você pode usar a opção \"Converter "
+"para CPUParticles\" para este propósito."
#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
msgid ""
@@ -9699,6 +10045,9 @@ msgid ""
"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles"
"\" option for this purpose."
msgstr ""
+"Partículas baseadas em GPU não são suportadas pelo driver de vídeo GLES2.\n"
+"Use o nó CPUParticles como substituto. Você pode usar a opção \"Converter "
+"para CPUParticles\" para este propósito."
#: scene/3d/particles.cpp
msgid ""
@@ -9719,13 +10068,12 @@ msgid "PathFollow only works when set as a child of a Path node."
msgstr "PathFollow só funciona quando definido como filho de um nó Path."
#: scene/3d/path.cpp
-#, fuzzy
msgid ""
"PathFollow ROTATION_ORIENTED requires \"Up Vector\" enabled in its parent "
"Path's Curve resource."
msgstr ""
-"OrientedPathFollow requer \"Up Vector\" habilitado no recurso Curva do "
-"Caminho pai."
+"PathFollow ROTATION_ORIENTED requer \"Up Vector\" habilitado no recurso "
+"Curva do Caminho pai."
#: scene/3d/physics_body.cpp
msgid ""
@@ -9835,7 +10183,7 @@ msgstr "Este nó foi reprovado. Use AnimationTree em vez disso."
#: scene/gui/color_picker.cpp
msgid "Pick a color from the screen."
-msgstr ""
+msgstr "Escolha uma cor da tela."
#: scene/gui/color_picker.cpp
msgid "Raw Mode"
@@ -9843,12 +10191,11 @@ msgstr "Modo Bruto"
#: scene/gui/color_picker.cpp
msgid "Switch between hexadecimal and code values."
-msgstr ""
+msgstr "Alterne entre valores haxadecimais e de código."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Add current color as a preset."
-msgstr "Adicionar cor atual como uma predefinição"
+msgstr "Adicionar cor atual como uma predefinição."
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -9942,6 +10289,9 @@ msgstr "Atribuição à uniforme."
msgid "Varyings can only be assigned in vertex function."
msgstr "Variáveis só podem ser atribuídas na função de vértice."
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#~ msgid "Warnings:"
#~ msgstr "Avisos:"
@@ -10117,10 +10467,6 @@ msgstr "Variáveis só podem ser atribuídas na função de vértice."
#~ msgid "Convert To Lowercase"
#~ msgstr "Converter Para Minúsculo"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "Encaixar na grade"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "Rotacionar 0 degraus"
@@ -10659,9 +11005,6 @@ msgstr "Variáveis só podem ser atribuídas na função de vértice."
#~ msgid "Added:"
#~ msgstr "Adicionado:"
-#~ msgid "Removed:"
-#~ msgstr "Removido:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "Não foi possível salvar Subtextura do Atlas:"
@@ -10929,9 +11272,6 @@ msgstr "Variáveis só podem ser atribuídas na função de vértice."
#~ msgid "Error importing:"
#~ msgstr "Erro ao importar:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "Apenas um arquivo é requerido para textura grande."
-
#~ msgid "Max Texture Size:"
#~ msgstr "Tamanho Máximo de Textura:"
@@ -11163,9 +11503,6 @@ msgstr "Variáveis só podem ser atribuídas na função de vértice."
#~ msgid "Edit Groups"
#~ msgstr "Editar Grupos"
-#~ msgid "GridMap Paint"
-#~ msgstr "Pintura GridMap"
-
#, fuzzy
#~ msgid "Tiles"
#~ msgstr " Arquivos"
diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po
index ef090612ca..4a80776647 100644
--- a/editor/translations/pt_PT.po
+++ b/editor/translations/pt_PT.po
@@ -94,6 +94,16 @@ msgstr "Duplicar Chave(s) Selecionada(s)"
msgid "Delete Selected Key(s)"
msgstr "Apagar Chave(s) Selecionada(s)"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Adicionar Ponto"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Mover Ponto"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Anim Duplicar Chaves"
@@ -123,6 +133,16 @@ msgid "Anim Change Call"
msgstr "Anim Mudar Chamada"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Mudar Ciclo da Animação"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "Mudar Ciclo da Animação"
+
+#: editor/animation_track_editor.cpp
msgid "Property Track"
msgstr "Pista de Propriedades"
@@ -172,6 +192,11 @@ msgid "Anim Clips:"
msgstr "Clips Anim:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Mudar valor do Array"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Alternar esta pista on/off."
@@ -196,6 +221,11 @@ msgid "Time (s): "
msgstr "Tempo (s): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Doppler Ativo"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Contínuo"
@@ -246,6 +276,21 @@ msgid "Delete Key(s)"
msgstr "Apagar Chave(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Mudar o Nome da Animação:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Modo de Interpolação"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Mudar Ciclo da Animação"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Remover Pista de Animação"
@@ -289,6 +334,16 @@ msgid "Anim Insert Key"
msgstr "Anim Inserir Chave"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Mudar FPS da Animação"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Reorganizar Carregamentos Automáticos"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "Pistas de Transformação só se aplicam a nós de base Espacial."
@@ -319,6 +374,11 @@ msgid "Not possible to add a new track without a root"
msgstr "Não é possível adicionar nova pista sem uma raíz"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Adicionar Pista"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "Caminho da pista é inválido, não se consegue adicionar uma chave."
@@ -327,11 +387,26 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "Pista não do tipo Spatial, não se consegue inserir chave"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Pista de Transformação 3D"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Adicionar Pista"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
"Caminho da pista é inválido, não se consegue adicionar uma chave método."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Chamar Pista Método"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Método não encontrado no objeto: "
@@ -344,6 +419,10 @@ msgid "Clipboard is empty"
msgstr "Ãrea de Transferência está vazia"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Colar Pistas"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Anim Escalar Chaves"
@@ -387,10 +466,6 @@ msgid "Copy Tracks"
msgstr "Copiar Pistas"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Colar Pistas"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Escalar Selecção"
@@ -490,6 +565,19 @@ msgstr "Selecionar pistas a copiar:"
msgid "Copy"
msgstr "Copiar"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Clips Ãudio:"
+
+#: 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 "Redimensionar Array"
@@ -1302,6 +1390,12 @@ msgstr "Nenhum modelo de exportação encontrado no caminho previsto:"
msgid "Packing"
msgstr "Empacotamento"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1881,6 +1975,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Guardar alterações a '%s' antes de fechar?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Falha ao carregar recurso."
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Guardar Cena como..."
@@ -3514,12 +3617,49 @@ msgstr "Carregar..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Mover Ponto"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Mudar tempo de Mistura"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Mudar tempo de Mistura"
+
+#: 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 "Este tipo de nó não pode ser usado. Apenas nós raiz são permitidos."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Adicionar Nó"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Adicionar Animação"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Remover Ponto de Caminho"
+
+#: 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 ""
@@ -3562,6 +3702,31 @@ msgid "Triangle already exists"
msgstr "Já existe triângulo"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Adicionar Variável"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Mudar tempo de Mistura"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Mudar tempo de Mistura"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Remover Ponto de Caminho"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Remover Variável"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D não pertence a um nó AnimationTree."
@@ -3570,6 +3735,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "Não existem triângulos, nenhuma mistura pode ocorrer."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Alternar Globals de carregamento automático"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Criar triângulos ligando pontos."
@@ -3587,6 +3757,11 @@ msgid "Blend:"
msgstr "Mistura:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Mudanças de Material"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Editar filtros"
@@ -3596,12 +3771,56 @@ msgid "Output node can't be added to the blend tree."
msgstr "Saída do nó não pode ser adicionada à árvore de mistura."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Adicionar Nó da Ãrvore"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Modo mover"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
"Incapaz de conectar, porta pode estar em uso ou conexão pode ser inválida."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Ligado"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Desconectado"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animação"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Apagar Nó(s)"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Alternar esta pista on/off."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Filtro de localização alterado"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"Reprodutor de animação não definido, sendo incapaz de recolher nome das "
@@ -3622,6 +3841,12 @@ msgstr ""
"de recolher nome das faixas."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Nome do Nó"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "Adicionar Nó.."
@@ -3848,6 +4073,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Tempos de Mistura de Animação cruzada"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Modo mover"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Adicionar tradução"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Adicionar Nó"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr "Fim"
@@ -3876,6 +4116,20 @@ msgid "No playback resource set at path: %s."
msgstr "Nenhum recurso de playback definido no caminho: %s."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Remover"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Nó Transition"
+
+#: 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"
@@ -4693,6 +4947,10 @@ msgstr "Pressione Shift para editar tangentes individualmente"
msgid "Bake GI Probe"
msgstr "Consolidar Sonda GI"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Item %d"
@@ -5838,6 +6096,16 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr "Este esqueleto não tem ossos, crie alguns nós Bone2D filhos."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Criar Pose de Descanso (a partir de Ossos)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Set Rest Pose to Bones"
+msgstr "Criar Pose de Descanso (a partir de Ossos)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "Esqueleto2D"
@@ -5946,10 +6214,6 @@ msgid "Vertices"
msgstr "Vértices"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Vista de topo."
@@ -5994,7 +6258,8 @@ msgid "Rear"
msgstr "Trás"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Alinhar com a vista"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6086,6 +6351,12 @@ msgid "Freelook Speed Modifier"
msgstr "Modificador de velocidade Freelook"
#: 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 "View Rotation Locked"
msgstr "Rotação da Vista Bloqueada"
@@ -6094,6 +6365,11 @@ msgid "XForm Dialog"
msgstr "Diálogo XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Ajustar ao Fundo"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Modo seleção (Q)"
@@ -6374,10 +6650,6 @@ msgid "Add Empty"
msgstr "Adicionar vazio"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Mudar Ciclo da Animação"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Mudar FPS da Animação"
@@ -6706,6 +6978,11 @@ msgid "Erase bitmask."
msgstr "Apagar bitmask."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Criar novos nós."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "Criar um novo polígono."
@@ -6883,6 +7160,29 @@ msgid "TileSet"
msgstr "TileSet"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Definir como Padrão para '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "VIsualShader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Duplicar Nó(s)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Vértice"
@@ -6898,6 +7198,16 @@ msgstr "Luz"
msgid "VisualShader"
msgstr "VIsualShader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Editar Prioridade de Tile"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Alterações do Shader"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Executável"
@@ -6911,9 +7221,17 @@ msgid "Delete preset '%s'?"
msgstr "Apagar predefinição '%s'?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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 ""
-"Modelos de exportação para esta plataforma estão ausentes/corrompidos :"
#: editor/project_export.cpp
msgid "Release"
@@ -6924,6 +7242,11 @@ msgid "Exporting All"
msgstr "A Exportar Tudo"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+"Modelos de exportação para esta plataforma estão ausentes/corrompidos :"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Predefinições"
@@ -7957,6 +8280,11 @@ msgid "Instantiated scenes can't become root"
msgstr "Cenas instantâneas não se podem tornar root"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Tornar Nó Raiz"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Apagar Nó(s)?"
@@ -7993,6 +8321,11 @@ msgid "Make Local"
msgstr "Tornar Local"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "Tornar Nó Raiz"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "Criar Nó Raiz:"
@@ -8421,6 +8754,21 @@ msgid "Set From Tree"
msgstr "Definir a partir da árvore"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Ease out"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Atalhos"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Mudar âncoras"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Atalhos"
@@ -8627,6 +8975,11 @@ msgid "GridMap Duplicate Selection"
msgstr "Seleção duplicada de GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "Configurações do GridMap"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Mapa de grelha"
@@ -8927,10 +9280,6 @@ msgid "Change Expression"
msgstr "Mudar Expressão"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Adicionar Nó"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Remover Nós VisualScript"
@@ -9015,6 +9364,11 @@ msgid "Change Input Value"
msgstr "Mudar valor de entrada"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Redimensionar CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "Impossível copiar o Nó Função."
@@ -9886,6 +10240,9 @@ msgstr "Atribuição a uniforme."
msgid "Varyings can only be assigned in vertex function."
msgstr "Variações só podem ser atribuídas na função vértice."
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#~ msgid "Warnings:"
#~ msgstr "Avisos:"
@@ -10053,9 +10410,6 @@ msgstr "Variações só podem ser atribuídas na função vértice."
#~ msgid "Convert To Lowercase"
#~ msgstr "Converter em minúsculas"
-#~ msgid "Snap To Floor"
-#~ msgstr "Ajustar ao Fundo"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "Rodar 0 graus"
diff --git a/editor/translations/ro.po b/editor/translations/ro.po
index c19c594ac6..7e471609e7 100644
--- a/editor/translations/ro.po
+++ b/editor/translations/ro.po
@@ -87,6 +87,16 @@ msgstr "Duplicați Cheile Selectate"
msgid "Delete Selected Key(s)"
msgstr "Ştergeți Cheile Selectate"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Adaugă punct"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Deplasare punct"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Anim Clonare Chei"
@@ -116,6 +126,16 @@ msgid "Anim Change Call"
msgstr "Anim Schimbare apelare"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Schimbă Numele Animației:"
+
+#: 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 ""
@@ -171,6 +191,11 @@ msgstr ""
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Track Path"
+msgstr "Schimbați Valoarea Array-ului"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Toggle this track on/off."
msgstr "Comutează modul fără distrageri."
@@ -198,6 +223,11 @@ msgid "Time (s): "
msgstr "Timp X-Decolorare (s):"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Activare mod Doppler"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Continuu"
@@ -251,6 +281,21 @@ msgid "Delete Key(s)"
msgstr "Anim Ștergeți Cheile"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Schimbă Numele Animației:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Nod de Animație"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Schimbați Bucla Anim"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Elimină Pista Anim"
@@ -292,6 +337,16 @@ msgid "Anim Insert Key"
msgstr "Anim Inserați Cheie"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Schimbă Numele Animației:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Rearanjați Autoload-urile"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -316,6 +371,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Anim Adăugați Pistă"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -324,10 +384,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Transformare hartă UV"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Anim Adăugați Pistă"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Anim Inserați Pistă și Cheie"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -341,6 +416,11 @@ msgid "Clipboard is empty"
msgstr "Clip-board de resurse gol !"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "Lipiţi Parametrii"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Anim Scalați Cheile"
@@ -387,11 +467,6 @@ msgid "Copy Tracks"
msgstr "Copie Parametrii"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Lipiţi Parametrii"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Scalați Selecția"
@@ -494,6 +569,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Anim Adăugați Pistă"
+
+#: 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 "Redimensionați Array-ul"
@@ -1314,6 +1402,12 @@ msgstr ""
msgid "Packing"
msgstr "Ambalare"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1910,6 +2004,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Salvează schimbările la ’%s’ înainte de ieșire?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Încărcarea resursei a eșuat."
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Salvează scena ca..."
@@ -3600,12 +3703,49 @@ msgstr "Încărcați"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Deplasare punct"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Schimbă Timpul Amestecului"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Schimbă Timpul Amestecului"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Adaugă punct"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Adaugă Animația"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Ștergere punct cale"
+
+#: 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 ""
@@ -3648,6 +3788,30 @@ msgid "Triangle already exists"
msgstr "EROARE: Numele animației există deja!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Anim Adăugați Pistă"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Schimbă Timpul Amestecului"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Schimbă Timpul Amestecului"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Ștergere punct cale"
+
+#: 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 ""
@@ -3656,6 +3820,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Comutați Globale AutoLoad"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3673,6 +3842,11 @@ msgid "Blend:"
msgstr "Amestec:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Modificări ale Actualizării"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Editează Filtrele"
@@ -3682,11 +3856,54 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Mod Mutare"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Conectat"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Deconectat"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animație"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Creează Nod"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Comutează modul fără distrageri."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Schimbați Lung Anim"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3702,6 +3919,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Nume Nod:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr ""
@@ -3936,6 +4159,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Timpi de Amestecare Cross-Animație"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Mod Mutare"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Tranziție"
+
+#: 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 ""
@@ -3965,6 +4203,20 @@ msgid "No playback resource set at path: %s."
msgstr "Nu în calea de resurse."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Ștergeți"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Nod Tranziție"
+
+#: 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"
@@ -4801,6 +5053,10 @@ msgstr "Ține apăsat Shift pentru a edita individual tangentele"
msgid "Bake GI Probe"
msgstr "Procesează Sonda GI"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Obiect %d"
@@ -5988,6 +6244,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Creează Puncte de Emisie Din Mesh"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "Singleton (Unicat)"
@@ -6099,10 +6364,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -6147,7 +6408,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6241,6 +6502,12 @@ msgid "Freelook Speed Modifier"
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
#, fuzzy
msgid "View Rotation Locked"
msgstr "Curăță Rotația Cursorului"
@@ -6250,6 +6517,11 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Snap pe grilă"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6530,10 +6802,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6874,6 +7142,11 @@ msgstr "RMB: Șterge Punctul."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Creați %s Nou"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Creează un nou poligon de la zero."
@@ -7055,6 +7328,28 @@ msgid "TileSet"
msgstr "Set_de_Plăci..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Setează ca Implicit pentru '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Anim Clonare Chei"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -7070,6 +7365,15 @@ msgstr ""
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Editează Filtrele"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Mode Changed"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -7083,7 +7387,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -7096,6 +7409,10 @@ msgid "Exporting All"
msgstr "Exportare"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -8096,6 +8413,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Salvează Scena"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8132,6 +8454,11 @@ msgstr "Creează Oase"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Salvează Scena"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Creează Nod"
@@ -8555,6 +8882,20 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Facilitare din"
+
+#: editor/settings_config_dialog.cpp
+msgid "Restore Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Modifică Ancorele"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr ""
@@ -8763,6 +9104,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -9058,10 +9403,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -9144,6 +9485,11 @@ msgid "Change Input Value"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Editează ObiectulPânză"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
@@ -10029,10 +10375,6 @@ msgstr ""
#~ msgid "Search in files"
#~ msgstr "Căutare Clase"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "Snap pe grilă"
-
#~ msgid "Bake!"
#~ msgstr "Coacere!"
@@ -10087,12 +10429,6 @@ msgstr ""
#~ msgid "Out-In"
#~ msgstr "Afară-Înăuntru"
-#~ msgid "Change Anim Len"
-#~ msgstr "Schimbați Lung Anim"
-
-#~ msgid "Change Anim Loop"
-#~ msgstr "Schimbați Bucla Anim"
-
#~ msgid "Anim Create Typed Value Key"
#~ msgstr "Anim Creați Cheie Valoare Typed"
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index 2bc51dcbfb..0964776b0f 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -36,12 +36,13 @@
# Alexander Danilov <modos189@protonmail.com>, 2019.
# Sergey Nakhov <true.stalin.exe@gmail.com>, 2019.
# Bumerang <it.bumerang@gmail.com>, 2019.
+# Viorel <vrila.noroc@gmail.com>, 2019.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-02-13 16:10+0000\n"
-"Last-Translator: Bumerang <it.bumerang@gmail.com>\n"
+"PO-Revision-Date: 2019-02-23 17:17+0000\n"
+"Last-Translator: Viorel <vrila.noroc@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ru/>\n"
"Language: ru\n"
@@ -117,6 +118,16 @@ msgstr "Дублировать выделенные ключ(и)"
msgid "Delete Selected Key(s)"
msgstr "Удалить выделенные ключ(и)"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Добавить точку"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Передвинуть Точку"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Дублировать ключи"
@@ -146,6 +157,16 @@ msgid "Anim Change Call"
msgstr "Изменить вызов анимации"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 "Трек Параметра"
@@ -195,6 +216,11 @@ msgid "Anim Clips:"
msgstr "Дорожки Ðнимации:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Изменить значение маÑÑива"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Переключить Ñтот трек вкл/выкл."
@@ -220,6 +246,11 @@ msgid "Time (s): "
msgstr "Ð’Ñ€ÐµÐ¼Ñ (Ñек.): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "ДоплеровÑкий режим"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "ÐепрерывнаÑ"
@@ -270,6 +301,21 @@ msgid "Delete Key(s)"
msgstr "Удалить ключ(ключи)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Изменить Ð¸Ð¼Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ð¸:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Режим Перехода"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Изменить цикличноÑÑ‚ÑŒ анимации"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Удалить дорожку"
@@ -311,6 +357,16 @@ msgid "Anim Insert Key"
msgstr "Ð’Ñтавить ключ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Изменить FPS анимации"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "ПереÑтановка автозагрузок"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "Трек транÑформации применÑетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ к оÑнованным на Spatial узлам."
@@ -339,6 +395,11 @@ msgid "Not possible to add a new track without a root"
msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ новый трек без корневого узла"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Добавить новый Трек"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "Путь трека некорректен, потому Ð½ÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ ключ."
@@ -347,10 +408,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "Трек не имеет тип Spatial, Ð½ÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ ключ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Трек 3D ПреобразованиÑ"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Трек Вызова Метода"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "В объекте нет такого метода: "
@@ -363,6 +439,10 @@ msgid "Clipboard is empty"
msgstr "Буфер обмена пуÑÑ‚"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Ð’Ñтавить Треки"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "МаÑштабировать ключи"
@@ -407,10 +487,6 @@ msgid "Copy Tracks"
msgstr "Копировать Треки"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Ð’Ñтавить Треки"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "МаÑштабировать выбранное"
@@ -510,6 +586,19 @@ msgstr "Выбрать треки Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ:"
msgid "Copy"
msgstr "Копировать"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "Изменить размер МаÑÑива"
@@ -579,8 +668,9 @@ msgid "Warnings"
msgstr "ПредупреждениÑ"
#: editor/code_editor.cpp
+#, fuzzy
msgid "Line and column numbers."
-msgstr ""
+msgstr "Ðомер линии и Ñтолбца"
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
@@ -1321,6 +1411,12 @@ msgstr "Шаблоны ÑкÑпорта не найдены по ожидаемÐ
msgid "Packing"
msgstr "Упаковывание"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1898,6 +1994,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "Сохранить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² «%s» перед закрытием?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Ðе удалоÑÑŒ загрузить реÑурÑ."
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "Только один файл необходим Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¾Ð¹ текÑтуры."
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Сохранить Ñцену как..."
@@ -3534,6 +3640,22 @@ msgstr "Загрузка..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Передвинуть Точку"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Изменить Ð²Ñ€ÐµÐ¼Ñ \"ÑмешиваниÑ\""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3541,6 +3663,27 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Добавить узел"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Добавить анимацию"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3583,6 +3726,31 @@ msgid "Triangle already exists"
msgstr "Треугольник уже ÑущеÑтвует"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Добавить переменную"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Изменить Ð²Ñ€ÐµÐ¼Ñ \"ÑмешиваниÑ\""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Изменить Ð²Ñ€ÐµÐ¼Ñ \"ÑмешиваниÑ\""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Удалить точку пути"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Удалить переменную"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D не принадлежит Узлу AnimationTree."
@@ -3591,6 +3759,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "Ðевозможно Ñмешивать, поÑкольку отÑутÑтвуют треугольники."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Переключить автозагрузку глобальных Ñкриптов"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Создать треугольник Ñоединением точек."
@@ -3608,6 +3781,11 @@ msgid "Blend:"
msgstr "Смешивание:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð°Ñ‚ÐµÑ€Ð¸Ð°Ð»Ð°"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Редактировать фильтры"
@@ -3617,12 +3795,56 @@ msgid "Output node can't be added to the blend tree."
msgstr "Узел вывода не может быть добавлен в дерево ÑмешиваниÑ."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Добавить узел(узлы) из дерева"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Режим перемещениÑ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
"Ðевозможно подключитьÑÑ, возможно порт уже иÑпользуетÑÑ Ð¸Ð»Ð¸ недейÑтвительный."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Подключен"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Отключен"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "ÐнимациÑ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Удалить узел(узлы)"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Переключить Ñтот трек вкл/выкл."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Изменен фильтр Ñзыков"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr "ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ð¸Ð³Ñ€Ð¾ÐºÐ° не задана, Ð½ÐµÐ»ÑŒÐ·Ñ Ð½Ð°Ð¹Ñ‚Ð¸ отÑлеживаемые имена."
@@ -3640,6 +3862,12 @@ msgstr ""
"удаетÑÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ отÑлеживаемые имена."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Ð˜Ð¼Ñ ÑƒÐ·Ð»Ð°"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "Добавить узел..."
@@ -3868,6 +4096,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Межанимационный инÑтрумент ÑмешиваниÑ"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Режим перемещениÑ"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "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 "Конец"
@@ -3896,6 +4139,20 @@ msgid "No playback resource set at path: %s."
msgstr "Ð’ пути нет реÑурÑов воÑпроизведениÑ: %s."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Удалено:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Transition узел"
+
+#: 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"
@@ -4716,6 +4973,10 @@ msgstr "Удерживайте Shift, чтобы изменить каÑател
msgid "Bake GI Probe"
msgstr "Запечь GI пробу"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Элемент %d"
@@ -5860,6 +6121,16 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr "У Ñтого Ñкелета нет коÑтей, Ñоздайте дочерние Bone2D узлы."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Сделать позу Ð¿Ð¾ÐºÐ¾Ñ (из коÑтей)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Set Rest Pose to Bones"
+msgstr "Сделать позу Ð¿Ð¾ÐºÐ¾Ñ (из коÑтей)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "2D Ñкелет"
@@ -5968,10 +6239,6 @@ msgid "Vertices"
msgstr "Вершины"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Вид Ñверху."
@@ -6016,7 +6283,8 @@ msgid "Rear"
msgstr "Зад"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "СовмеÑтить Ñ Ð²Ð¸Ð´Ð¾Ð¼"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6108,6 +6376,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr "Блокировать вращение камеры"
@@ -6116,6 +6390,11 @@ msgid "XForm Dialog"
msgstr "XForm диалоговое окно"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "ПривÑзать к полу"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Режим Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ (Q)"
@@ -6397,10 +6676,6 @@ msgid "Add Empty"
msgstr "Добавить пуÑтоту"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Изменить цикличноÑÑ‚ÑŒ анимации"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Изменить FPS анимации"
@@ -6729,6 +7004,11 @@ msgid "Erase bitmask."
msgstr "Стереть битовую маÑку."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Создать новый узел."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "Создать новый полигон."
@@ -6906,6 +7186,29 @@ msgid "TileSet"
msgstr "TileSet"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "УÑтановить по умолчанию Ð´Ð»Ñ '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "VisualShader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Дублировать узел(узлы)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Вершины"
@@ -6921,6 +7224,16 @@ msgstr "Свет"
msgid "VisualShader"
msgstr "VisualShader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Редактировать приоритет тайла"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑˆÐµÐ¹Ð´ÐµÑ€Ð¾Ð²"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Ðктивный"
@@ -6934,8 +7247,17 @@ msgid "Delete preset '%s'?"
msgstr "Удалить '%s'?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "Шаблоны ÑкÑпорта Ð´Ð»Ñ Ñтой платформы отÑутÑтвуют/повреждены:"
+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"
@@ -6946,6 +7268,10 @@ msgid "Exporting All"
msgstr "ЭкÑпорт вÑех"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "Шаблоны ÑкÑпорта Ð´Ð»Ñ Ñтой платформы отÑутÑтвуют/повреждены:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "ПредуÑтановки"
@@ -7971,6 +8297,11 @@ msgid "Instantiated scenes can't become root"
msgstr "Мгновенные Ñцены не могут быть корневыми"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Создать корневой узел Ñцены"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Удалить узел(узлы)?"
@@ -8007,6 +8338,11 @@ msgid "Make Local"
msgstr "Сделать локальным"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "Создать корневой узел Ñцены"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "Создать корневой узел:"
@@ -8438,6 +8774,21 @@ msgid "Set From Tree"
msgstr "УÑтановить из дерева"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Переход ИЗ"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "ГорÑчие клавиши"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Изменить привÑзку"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "ГорÑчие клавиши"
@@ -8643,6 +8994,10 @@ msgid "GridMap Duplicate Selection"
msgstr "Дублировать выделенную Ñетку"
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr "РиÑование Ñетки"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Ð¡ÐµÑ‚Ð¾Ñ‡Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°"
@@ -8943,10 +9298,6 @@ msgid "Change Expression"
msgstr "Изменить выражение"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Добавить узел"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Удалить узлы VisualScript"
@@ -9031,6 +9382,11 @@ msgid "Change Input Value"
msgstr "Изменить входное значение"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Изменить размер CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "Ðе удаётÑÑ Ñкопировать узел функцию."
@@ -9897,6 +10253,9 @@ msgstr "Ðазначить форму"
msgid "Varyings can only be assigned in vertex function."
msgstr "Переменные могут быть назначены только в функции вершин."
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#~ msgid "Warnings:"
#~ msgstr "ПредупреждениÑ:"
@@ -10068,9 +10427,6 @@ msgstr "Переменные могут быть назначены только
#~ msgid "Convert To Lowercase"
#~ msgstr "Конвертировать в нижний региÑÑ‚Ñ€"
-#~ msgid "Snap To Floor"
-#~ msgstr "ПривÑзать к полу"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "Поворот на 0 градуÑов"
@@ -10603,9 +10959,6 @@ msgstr "Переменные могут быть назначены только
#~ msgid "Added:"
#~ msgstr "Добавлено:"
-#~ msgid "Removed:"
-#~ msgstr "Удалено:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "Ðевозможно Ñохранить текÑтуру атлаÑа:"
@@ -10874,9 +11227,6 @@ msgstr "Переменные могут быть назначены только
#~ msgid "Error importing:"
#~ msgstr "Ошибка импортированиÑ:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "Только один файл необходим Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¾Ð¹ текÑтуры."
-
#~ msgid "Max Texture Size:"
#~ msgstr "МакÑимальный размер текÑтуры:"
@@ -11106,9 +11456,6 @@ msgstr "Переменные могут быть назначены только
#~ msgid "Edit Groups"
#~ msgstr "Редактировать группы"
-#~ msgid "GridMap Paint"
-#~ msgstr "РиÑование Ñетки"
-
#~ msgid "Tiles"
#~ msgstr "Тайлы"
diff --git a/editor/translations/si.po b/editor/translations/si.po
index edceca5c8b..d792087871 100644
--- a/editor/translations/si.po
+++ b/editor/translations/si.po
@@ -82,6 +82,14 @@ msgstr "තà·à¶»à·à¶œà¶­à·Š යතුරු පිටපත් කරන්න
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 "Anim යතුරු පිටපත් කරන්න"
@@ -111,6 +119,16 @@ msgid "Anim Change Call"
msgstr "Anim කà·à¶¯à·€à·“ම් වෙනස් කරන්න"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 "ලක්ෂණය ලුහුබදින්න"
@@ -160,6 +178,10 @@ msgid "Anim Clips:"
msgstr "Anim පසුරු:"
#: editor/animation_track_editor.cpp
+msgid "Change Track Path"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "ලුහුබදින්න෠සක්â€à¶»à·’ය/අක්â€à¶»à·’ය."
@@ -184,6 +206,10 @@ msgid "Time (s): "
msgstr "කà·à¶½à¶º (තත්): "
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "අඛණ්ඩව"
@@ -234,6 +260,20 @@ msgid "Delete Key(s)"
msgstr "යතුරු මක෠දමන්න"
#: editor/animation_track_editor.cpp
+msgid "Change Animation Update Mode"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "නිවේà·à¶± මà·à¶¯à·’ලිය"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "සජීවීකරණ පුනරà·à·€à¶»à·Šà¶®à¶±à¶º"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Anim ලුහුබදින්න෠ඉවත් කරන්න"
@@ -275,6 +315,15 @@ msgid "Anim Insert Key"
msgstr "Anim යතුරක් ඇතුලත් කරන්න"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 "Spatial පà·à¶¯à¶š පුරුක් සදහ෠පමණක් රූපà·à¶±à·Šà¶­à¶» ලුහුබදින්නන් එක් කළ à·„à·à¶š."
@@ -303,6 +352,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "ලුහුබදින්නෙක් එක් කරන්න"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -311,10 +365,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "3D රූපà·à¶±à·Šà¶­à¶»à¶«à¶º ලුහුබදින්න"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "ඇමතීම් ක්â€à¶»à¶¸à¶º ලුහුබදින්න"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -327,6 +396,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -369,10 +442,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -472,6 +541,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 ""
@@ -1264,6 +1346,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1804,6 +1892,14 @@ 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 ""
@@ -3379,12 +3475,44 @@ 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
+#, fuzzy
+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 ""
@@ -3424,6 +3552,27 @@ msgid "Triangle already exists"
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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 ""
@@ -3432,6 +3581,10 @@ 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 ""
@@ -3449,6 +3602,10 @@ 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 ""
@@ -3458,11 +3615,50 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+#, fuzzy
+msgid "Set Animation"
+msgstr "සජීවීකරණ පුනරà·à·€à¶»à·Šà¶®à¶±à¶º"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "යතුරු මක෠දමන්න"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+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 ""
@@ -3478,6 +3674,11 @@ msgid ""
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 ""
@@ -3703,6 +3904,20 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Move Node"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Anim සංක්රමණය වෙනස් කරන්න"
+
+#: 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 ""
@@ -3731,6 +3946,18 @@ 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"
@@ -4529,6 +4756,10 @@ msgstr ""
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 ""
@@ -5667,6 +5898,14 @@ 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 ""
@@ -5775,10 +6014,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5823,7 +6058,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -5915,6 +6150,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5923,6 +6164,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6199,10 +6444,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6531,6 +6772,10 @@ 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 ""
@@ -6695,6 +6940,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "යතුරු පිටපත් කරන්න"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6710,6 +6976,14 @@ msgstr ""
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 ""
@@ -6723,7 +6997,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6735,6 +7018,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7711,6 +7998,10 @@ 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 Node(s)?"
msgstr ""
@@ -7745,6 +8036,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr ""
@@ -8157,6 +8452,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8361,6 +8668,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8655,10 +8966,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8739,6 +9046,10 @@ 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 ""
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index afe61af6ce..af5966a37d 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -85,6 +85,16 @@ msgstr "DuplikovaÅ¥ kľúÄ(e)"
msgid "Delete Selected Key(s)"
msgstr "ZmazaÅ¥ kľúÄ(e)"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Signály:"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Všetky vybrané"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr ""
@@ -115,6 +125,15 @@ msgid "Anim Change Call"
msgstr "Animácia Zmeniť Hovor"
#: 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 ""
@@ -164,6 +183,10 @@ 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 ""
@@ -189,6 +212,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Priebežný"
@@ -241,6 +268,18 @@ msgid "Delete Key(s)"
msgstr "Všetky vybrané"
#: 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 ""
@@ -282,6 +321,16 @@ msgid "Anim Insert Key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Animácia zmeniť prechod"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Vložiť"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -306,6 +355,10 @@ msgid "Not possible to add a new track without a root"
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 ""
@@ -314,10 +367,22 @@ 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 ""
@@ -330,6 +395,11 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "Vložiť"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -372,11 +442,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Vložiť"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Zmeniť veľkosť výberu"
@@ -479,6 +544,18 @@ msgstr ""
msgid "Copy"
msgstr "Kopírovať"
+#: 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 ""
@@ -1279,6 +1356,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1840,6 +1923,14 @@ 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 ""
@@ -3446,12 +3537,47 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Všetky vybrané"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Signály:"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Popis:"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Všetky vybrané"
+
+#: 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 ""
@@ -3491,6 +3617,28 @@ msgid "Triangle already exists"
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Signály:"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Všetky vybrané"
+
+#: 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 ""
@@ -3499,6 +3647,10 @@ 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 ""
@@ -3516,6 +3668,10 @@ 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
#, fuzzy
msgid "Edit Filters"
@@ -3526,11 +3682,49 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+#, fuzzy
+msgid "Set Animation"
+msgstr "Popis:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Všetky vybrané"
+
+#: 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 ""
@@ -3546,6 +3740,11 @@ msgid ""
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 ""
@@ -3776,6 +3975,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Vložiť"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Prechody"
+
+#: 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 ""
@@ -3804,6 +4018,19 @@ 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
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Prechody"
+
+#: 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"
@@ -4617,6 +4844,10 @@ msgstr ""
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 ""
@@ -5779,6 +6010,14 @@ 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 ""
@@ -5887,10 +6126,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5935,8 +6170,9 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
-msgstr ""
+#, fuzzy
+msgid "Align with View"
+msgstr "Všetky vybrané"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "No parent to instance a child at."
@@ -6028,6 +6264,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6036,6 +6278,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6316,10 +6562,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6657,6 +6899,11 @@ msgstr "Všetky vybrané"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Vytvoriť adresár"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Vytvoriť adresár"
@@ -6839,6 +7086,27 @@ msgid "TileSet"
msgstr "Súbor:"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Input Default Port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Duplikovať výber"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6854,6 +7122,15 @@ msgstr ""
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Súbor:"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Mode Changed"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -6867,7 +7144,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6879,6 +7165,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7869,6 +8159,10 @@ 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 Node(s)?"
msgstr ""
@@ -7903,6 +8197,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Create Root Node:"
msgstr "Vytvoriť adresár"
@@ -8328,6 +8626,19 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Všetky vybrané"
+
+#: editor/settings_config_dialog.cpp
+msgid "Restore Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Change Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr ""
@@ -8536,6 +8847,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8836,10 +9151,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8921,6 +9232,10 @@ 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 ""
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index 1974908006..3af3c9d835 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -90,6 +90,16 @@ msgstr "Podvoji Izbran/e KljuÄ/e"
msgid "Delete Selected Key(s)"
msgstr "IzbriÅ¡i Izbran/e KljuÄ/e"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Dodaj toÄko"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Odstrani toÄko"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Animiraj Podvojene kljuÄe"
@@ -119,6 +129,16 @@ msgid "Anim Change Call"
msgstr "Animacija Spremeni klic"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Spremeni Ime Animacije:"
+
+#: 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 ""
@@ -174,6 +194,11 @@ msgstr ""
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Track Path"
+msgstr "Spremeni Vrednost Niza"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Toggle this track on/off."
msgstr "Preklop naÄin pisanja brez motenj."
@@ -201,6 +226,10 @@ msgid "Time (s): "
msgstr "ÄŒas X-Bledenja (s):"
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Neprekinjeno"
@@ -254,6 +283,21 @@ msgid "Delete Key(s)"
msgstr "Animacija IzbriÅ¡i kljuÄe"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Spremeni Ime Animacije:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Animacijski Gradnik"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Spremeni Zanko Animacije"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Odstrani animacijsko sled"
@@ -295,6 +339,16 @@ msgid "Anim Insert Key"
msgstr "V Animacijo Vstavi KljuÄ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Spremeni Ime Animacije:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Preuredi SamodejnoNalaganje"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -319,6 +373,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Animacija Dodaj sled"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -327,11 +386,26 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Preoblikovanje"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Animacija Dodaj sled"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Add Method Track Key"
+msgstr "V Animacijo Vstavi Sled & KljuÄ"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Method not found in object: "
msgstr "VariableGet ni najden v skripti: "
@@ -344,6 +418,11 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "Prilepi Parametre"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Spremeni Obseg KljuÄev"
@@ -390,11 +469,6 @@ msgid "Copy Tracks"
msgstr "Kopiraj Parametre"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Prilepi Parametre"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "PoveÄaj izbiro"
@@ -497,6 +571,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Animacija Dodaj sled"
+
+#: 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 "PoveÄaj Niz"
@@ -1312,6 +1399,12 @@ msgstr ""
msgid "Packing"
msgstr "Pakiranje"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1902,6 +1995,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Shranim spremembe v '%s' pred zapiranjem?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Napaka pri nalaganju vira."
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Shrani Sceno Kot..."
@@ -3586,12 +3688,49 @@ msgstr "Naloži"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Odstrani toÄko"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Spremeni Mešalni Čas"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Spremeni Mešalni Čas"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Dodaj vozliÅ¡Äe"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Dodaj Animacijo"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Odstrani Poligon in ToÄko"
+
+#: 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 ""
@@ -3633,6 +3772,31 @@ msgid "Triangle already exists"
msgstr "NAPAKA: Animacija s tem imenom že obstaja!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Dodaj Spremenljivko"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Spremeni Mešalni Čas"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Spremeni Mešalni Čas"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Odstrani Poligon in ToÄko"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Odstrani Spremenljivko"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
@@ -3641,6 +3805,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Preklopi na Globalno SamodejnoNalaganje"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3658,6 +3827,11 @@ msgid "Blend:"
msgstr "Zmešaj:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Spremebe v Shader"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Uredi Filtre"
@@ -3667,11 +3841,55 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "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"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Povezano"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Nepovezano"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animacija"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Izberi Gradnik"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Preklop naÄin pisanja brez motenj."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Spremeni Dolžino Animacije"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3687,6 +3905,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Ime Gradnika:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -3922,6 +4146,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Navzkrižna Animacija Časa Mešanice"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "NaÄin Premika"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Prehod"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Dodaj vozliÅ¡Äe"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr ""
@@ -3951,6 +4190,20 @@ msgid "No playback resource set at path: %s."
msgstr "Ni na poti virov."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Odstrani"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Gradnik Prehod"
+
+#: 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"
@@ -4783,6 +5036,10 @@ msgstr ""
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 ""
@@ -5963,6 +6220,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Zaženi Prizor po Meri"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "Posameznik"
@@ -6073,10 +6339,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -6121,7 +6383,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6214,6 +6476,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6222,6 +6490,11 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Pripni na mrežo"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Izberite NaÄin (Q)"
@@ -6505,10 +6778,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6849,6 +7118,11 @@ msgstr "IzbriÅ¡i toÄke"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Ustvari Nov %s"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Ustvarite Poligon"
@@ -7033,6 +7307,28 @@ msgid "TileSet"
msgstr "Izvozi PloÅ¡Äno Zbirko"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Nastavi kot Privzeto za '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Animacija Podvoji kljuÄe"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -7048,6 +7344,16 @@ msgstr ""
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Uredi Filtre"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Spremebe v Shader"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -7061,7 +7367,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -7074,6 +7389,10 @@ msgid "Exporting All"
msgstr "Izvozi"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -8070,6 +8389,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Shrani Prizor"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8105,6 +8429,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Shrani Prizor"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Ustvarite Mapo"
@@ -8527,6 +8856,19 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+msgid "Erase Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Restore Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Spremeni SidriÅ¡Äa"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr ""
@@ -8737,6 +9079,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -9040,10 +9386,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Dodaj vozliÅ¡Äe"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Odstrani Gradnike VizualnaSkripta"
@@ -9126,6 +9468,11 @@ msgid "Change Input Value"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Uredi Platno Stvari"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
@@ -10013,10 +10360,6 @@ msgstr ""
#~ msgid "Search in files"
#~ msgstr "IÅ¡Äi Razrede"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "Pripni na mrežo"
-
#~ msgid "Disabled"
#~ msgstr "OnemogoÄen"
@@ -10053,12 +10396,6 @@ msgstr ""
#~ msgid "Out"
#~ msgstr "Ven"
-#~ msgid "Change Anim Len"
-#~ msgstr "Spremeni Dolžino Animacije"
-
-#~ msgid "Change Anim Loop"
-#~ msgstr "Spremeni Zanko Animacije"
-
#~ msgid "Anim Create Typed Value Key"
#~ msgstr "V Animaciji Ustvari Vneseno Vrednost KljuÄa"
diff --git a/editor/translations/sq.po b/editor/translations/sq.po
index de9644d780..23c2f02d7a 100644
--- a/editor/translations/sq.po
+++ b/editor/translations/sq.po
@@ -81,6 +81,14 @@ msgstr "Dyfisho Key(s) të Selektuar"
msgid "Delete Selected Key(s)"
msgstr "Fshi Key(s) të Selektuar"
+#: 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 ""
@@ -110,6 +118,16 @@ msgid "Anim Change Call"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Përsëritje Animacioni"
+
+#: 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 ""
@@ -159,6 +177,10 @@ 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 ""
@@ -183,6 +205,10 @@ msgid "Time (s): "
msgstr "Koha (s): "
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "I vazhdueshëm:"
@@ -233,6 +259,19 @@ msgid "Delete Key(s)"
msgstr "Fshi Key(s)"
#: 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
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Përsëritje Animacioni"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr ""
@@ -274,6 +313,15 @@ msgid "Anim Insert Key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Pastro Animacionin"
+
+#: editor/animation_track_editor.cpp
+msgid "Rearrange Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -298,6 +346,10 @@ msgid "Not possible to add a new track without a root"
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 ""
@@ -306,10 +358,22 @@ 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 "Metoda nuk u gjet në objekt: "
@@ -322,6 +386,10 @@ msgid "Clipboard is empty"
msgstr "Clipboard-i është bosh"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -364,10 +432,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -467,6 +531,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Klipe Audio:"
+
+#: 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 ""
@@ -1259,6 +1336,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1799,6 +1882,14 @@ 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 ""
@@ -3374,12 +3465,44 @@ 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
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Përsëritje Animacioni"
+
+#: 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 ""
@@ -3419,6 +3542,26 @@ 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 ""
@@ -3427,6 +3570,10 @@ 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 ""
@@ -3444,6 +3591,10 @@ 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 ""
@@ -3453,11 +3604,49 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+#, fuzzy
+msgid "Set Animation"
+msgstr "Përmirëso Animacionin"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Fshi Key(s)"
+
+#: 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 ""
@@ -3473,6 +3662,11 @@ msgid ""
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 ""
@@ -3698,6 +3892,19 @@ 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 "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 ""
@@ -3726,6 +3933,18 @@ 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"
@@ -4524,6 +4743,10 @@ msgstr ""
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 ""
@@ -5661,6 +5884,14 @@ 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 ""
@@ -5769,10 +6000,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5817,7 +6044,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -5909,6 +6136,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5917,6 +6150,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6193,10 +6430,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6525,6 +6758,10 @@ 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 ""
@@ -6689,6 +6926,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Dyfisho Key(s)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6704,6 +6962,14 @@ msgstr ""
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 ""
@@ -6717,7 +6983,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6729,6 +7004,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7705,6 +7984,10 @@ 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 Node(s)?"
msgstr ""
@@ -7739,6 +8022,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr ""
@@ -8151,6 +8438,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8355,6 +8654,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8649,10 +8952,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8733,6 +9032,10 @@ 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 ""
diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po
index a4271de16b..fd45d7d072 100644
--- a/editor/translations/sr_Cyrl.po
+++ b/editor/translations/sr_Cyrl.po
@@ -87,6 +87,16 @@ msgstr "Дуплирај одабрано"
msgid "Delete Selected Key(s)"
msgstr "Обриши одабране датотеке?"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Додај тачку"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Помери тачку"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Дуплирај кључеве"
@@ -118,6 +128,16 @@ msgid "Anim Change Call"
msgstr "Промени позив анимације"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 ""
@@ -174,6 +194,11 @@ msgstr ""
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Track Path"
+msgstr "Промени вредноÑÑ‚ низа"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Toggle this track on/off."
msgstr "Укљ./ИÑкљ. режим без Ñметње."
@@ -201,6 +226,11 @@ msgid "Time (s): "
msgstr "X-Fade време (Ñек.):"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "„Doppler“ режим"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Трајан"
@@ -254,6 +284,21 @@ msgid "Delete Key(s)"
msgstr "Уколни кључеве"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Измени име анимације:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Ðнимациони чвор"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Промени Ñ†Ð¸ÐºÐ»ÑƒÑ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ˜Ðµ"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Обриши траку анимације"
@@ -295,6 +340,16 @@ msgid "Anim Insert Key"
msgstr "Уметни кључ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Промени број Ñлика у Ñекунди (FPS)"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Преуреди аутоматÑка учитавања"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -319,6 +374,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Додај нову траку"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -327,10 +387,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Тип транÑформације"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Уметни траку и кључ"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -344,6 +419,11 @@ msgid "Clipboard is empty"
msgstr "Ðема реÑурÑа за копирање!"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "Ðалепи параметре"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Увећај кључеве"
@@ -390,11 +470,6 @@ msgid "Copy Tracks"
msgstr "Копирај параметре"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Ðалепи параметре"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Увећај одабрано"
@@ -497,6 +572,19 @@ msgstr ""
msgid "Copy"
msgstr "Копирај"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "Промени величину низа"
@@ -1317,6 +1405,12 @@ msgstr ""
msgid "Packing"
msgstr "Паковање"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1913,6 +2007,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Сачувај промене '%s' пре излаÑка?"
#: editor/editor_node.cpp
+#, fuzzy
+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 "Сачувај Ñцену као..."
@@ -3613,12 +3716,49 @@ msgstr "Учитај"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Помери тачку"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Промени време мешања"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Промени време мешања"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Додај тачку"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Додај анимацију"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3661,6 +3801,30 @@ msgid "Triangle already exists"
msgstr "Грешка: име анимације већ поÑтоји!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Додај нову траку"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Промени време мешања"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Промени време мешања"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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 ""
@@ -3669,6 +3833,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Укљ./ИÑкљ. глобале аутоматÑког учитавања"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3686,6 +3855,11 @@ msgid "Blend:"
msgstr "Мешавина:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Промене материјала"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Уреди филтере"
@@ -3695,11 +3869,54 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Режим померања"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Повезан"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Веза прекинута"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Ðнимација"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Ðаправи чвор"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Укљ./ИÑкљ. режим без Ñметње."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Измени дужину анимације"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3715,6 +3932,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Име чвора:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr ""
@@ -3949,6 +4172,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Вишеанимационо време мешања"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Режим померања"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "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 ""
@@ -3978,6 +4216,20 @@ msgid "No playback resource set at path: %s."
msgstr "Ðије на пут реÑурÑа."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Обриши"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Transition чвор"
+
+#: 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"
@@ -4808,6 +5060,10 @@ msgstr "Држи Shift за уређивање појединачних танг
msgid "Bake GI Probe"
msgstr "ИÑпечи Ñонде глобалног оÑветљења (GI)"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Ствар %d"
@@ -6008,6 +6264,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+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
+#, fuzzy
msgid "Skeleton2D"
msgstr "Синглетон"
@@ -6120,10 +6385,6 @@ msgid "Vertices"
msgstr "Тачке"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Поглед одозго."
@@ -6168,7 +6429,8 @@ msgid "Rear"
msgstr "Бок"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Поравнавање Ñа погледом"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6262,6 +6524,12 @@ msgid "Freelook Speed Modifier"
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
#, fuzzy
msgid "View Rotation Locked"
msgstr "Прикажи информације"
@@ -6272,6 +6540,11 @@ msgstr "XForm дијалог"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Залепи за мрежу"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid "Select Mode (Q)"
msgstr "Режим Ñелекције (Q)\n"
@@ -6560,10 +6833,6 @@ msgid "Add Empty"
msgstr "Додај празан"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Промени Ñ†Ð¸ÐºÐ»ÑƒÑ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ˜Ðµ"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Промени број Ñлика у Ñекунди (FPS)"
@@ -6917,6 +7186,11 @@ msgstr "ДеÑни таÑтер миша: обриши тачку."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Ðаправи нов"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Ðаправи нови полигон од почетка."
@@ -7103,6 +7377,29 @@ msgid "TileSet"
msgstr "TileSet..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "ПоÑтави као уобичајено за „%s“"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "Шејдер"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Дуплирај чвор/ове графа"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vertex"
msgstr "Тачке"
@@ -7121,6 +7418,16 @@ msgstr "деÑно"
msgid "VisualShader"
msgstr "Шејдер"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Уреди филтере"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Промене шејдера"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Покретљива"
@@ -7135,8 +7442,17 @@ msgid "Delete preset '%s'?"
msgstr "Обриши поÑтавку „%s“?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "Извозни шаблони за ову платформу или ниÑу пронађени или Ñу иÑкварене:"
+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"
@@ -7148,6 +7464,10 @@ msgid "Exporting All"
msgstr "Извоз"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "Извозни шаблони за ову платформу или ниÑу пронађени или Ñу иÑкварене:"
+
+#: editor/project_export.cpp
#, fuzzy
msgid "Presets"
msgstr "ПоÑтавке"
@@ -8154,6 +8474,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Сачувај Ñцену"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8190,6 +8515,11 @@ msgstr "Ðаправи коÑти"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Сачувај Ñцену"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Ðаправи чвор"
@@ -8614,6 +8944,20 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Излазна транзиција"
+
+#: editor/settings_config_dialog.cpp
+msgid "Restore Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Промени Ñидра"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr ""
@@ -8825,6 +9169,11 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "Мапа мреже"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Мапа мреже"
@@ -9128,10 +9477,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -9214,6 +9559,11 @@ msgid "Change Input Value"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Уреди CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
@@ -9991,6 +10341,9 @@ msgstr ""
msgid "Varyings can only be assigned in vertex function."
msgstr ""
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#, fuzzy
#~ msgid "Font Size:"
#~ msgstr "Поглед иÑпред"
@@ -10132,10 +10485,6 @@ msgstr ""
#~ msgid "Convert To Lowercase"
#~ msgstr "Претвори у мала Ñлова"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "Залепи за мрежу"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "Ротирај 0 Ñтепени"
@@ -10236,9 +10585,6 @@ msgstr ""
#~ msgid "Move Shader Graph Node"
#~ msgstr "Помери чвор графа шејдера"
-#~ msgid "Duplicate Graph Node(s)"
-#~ msgstr "Дуплирај чвор/ове графа"
-
#~ msgid "Delete Shader Graph Node(s)"
#~ msgstr "Обриши чвор/ове графа шејдера"
@@ -10296,9 +10642,6 @@ msgstr ""
#~ msgid "Out-In"
#~ msgstr "Из-У"
-#~ msgid "Change Anim Len"
-#~ msgstr "Измени дужину анимације"
-
#~ msgid "Change Anim Loop"
#~ msgstr "Измени лупинг анимације"
diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po
index 46073472f7..1a75fd637d 100644
--- a/editor/translations/sr_Latn.po
+++ b/editor/translations/sr_Latn.po
@@ -87,6 +87,14 @@ msgstr "Uduplaj Selekciju"
msgid "Delete Selected Key(s)"
msgstr "IzbriÅ¡i oznaÄeni kljuÄ(eve)"
+#: 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 "Animacija Uduplaj KljuÄeve"
@@ -116,6 +124,16 @@ msgid "Anim Change Call"
msgstr "Animacija Promjeni Poziv"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Promijeni Dužinu Animacije"
+
+#: 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 ""
@@ -166,6 +184,10 @@ 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 ""
@@ -191,6 +213,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Neprekidna"
@@ -243,6 +269,21 @@ msgid "Delete Key(s)"
msgstr "Animacija ObriÅ¡i KljuÄeve"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Promijeni Dužinu Animacije"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Promijeni Dužinu Animacije"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Optimizuj Animaciju"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Odstrani Kanal Animacije"
@@ -284,6 +325,15 @@ msgid "Anim Insert Key"
msgstr "Animacija dodaj kljuÄ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "PoÄisti Animaciju"
+
+#: editor/animation_track_editor.cpp
+msgid "Rearrange Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -308,6 +358,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Animacija Dodaj Kanal"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -316,10 +371,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Animacija Dodaj kanal i kljuÄ"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Animacija Dodaj Kanal"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Animacija Dodaj kanal i kljuÄ"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -332,6 +402,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Animacija Skaliraj KljuÄeve"
@@ -374,10 +448,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Skaliraj Selekciju"
@@ -480,6 +550,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Animacija Dodaj Kanal"
+
+#: 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 ""
@@ -1273,6 +1356,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1814,6 +1903,14 @@ 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 ""
@@ -3392,12 +3489,44 @@ 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
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Optimizuj Animaciju"
+
+#: 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 ""
@@ -3438,6 +3567,27 @@ msgid "Triangle already exists"
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Animacija Dodaj Kanal"
+
+#: 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 ""
@@ -3446,6 +3596,10 @@ 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 ""
@@ -3463,6 +3617,10 @@ 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 ""
@@ -3472,11 +3630,49 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+#, fuzzy
+msgid "Set Animation"
+msgstr "Optimizuj Animaciju"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Animacija ObriÅ¡i KljuÄeve"
+
+#: 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 ""
@@ -3492,6 +3688,11 @@ msgid ""
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 ""
@@ -3718,6 +3919,20 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Move Node"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Tranzicije"
+
+#: 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 ""
@@ -3746,6 +3961,19 @@ 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
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Tranzicije"
+
+#: 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"
@@ -4548,6 +4776,10 @@ msgstr ""
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 ""
@@ -5693,6 +5925,14 @@ 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 ""
@@ -5801,10 +6041,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5849,7 +6085,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -5941,6 +6177,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5949,6 +6191,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6226,10 +6472,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6563,6 +6805,11 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Napravi"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Napravi"
@@ -6736,6 +6983,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Animacija Uduplaj KljuÄeve"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6751,6 +7019,14 @@ msgstr ""
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 ""
@@ -6764,7 +7040,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6776,6 +7061,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7755,6 +8044,10 @@ 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 Node(s)?"
msgstr ""
@@ -7789,6 +8082,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr ""
@@ -8201,6 +8498,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8406,6 +8715,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8701,10 +9014,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8785,6 +9094,10 @@ 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 ""
diff --git a/editor/translations/sv.po b/editor/translations/sv.po
index 98c2593d34..4de14cba75 100644
--- a/editor/translations/sv.po
+++ b/editor/translations/sv.po
@@ -92,6 +92,15 @@ msgstr "Duplicera urval"
msgid "Delete Selected Key(s)"
msgstr "Ta bort valda filer?"
+#: editor/animation_bezier_editor.cpp
+msgid "Add Bezier Point"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Flytta Ner"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Anim Duplicera Nycklar"
@@ -121,6 +130,16 @@ msgid "Anim Change Call"
msgstr "Anim Ändra Anrop"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Ändra Animationsnamn:"
+
+#: 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 ""
@@ -176,6 +195,11 @@ msgstr ""
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Track Path"
+msgstr "Ändra Arrays Värde"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Toggle this track on/off."
msgstr "Växla distraktionsfritt läge."
@@ -203,6 +227,10 @@ msgid "Time (s): "
msgstr "Tid:"
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Kontinuerlig"
@@ -256,6 +284,21 @@ msgid "Delete Key(s)"
msgstr "Ta bort Nod(er)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Ändra Animationsnamn:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Animations-Node"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Ändra Anim Loop"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Ta bort Anim spår"
@@ -297,6 +340,16 @@ msgid "Anim Insert Key"
msgstr "Anim Infoga Nyckel"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Ändra Animationsnamn:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Ändra ordning på Autoloads"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -321,6 +374,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Anim Lägg till spår"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -329,11 +387,26 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Transformera"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Anim Lägg till spår"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Anim Infoga Spår & Nyckel"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Method not found in object: "
msgstr "VariableGet hittades inte i Skript: "
@@ -347,6 +420,11 @@ msgid "Clipboard is empty"
msgstr "Sökvägen är tom"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "Klistra in Params"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Anim Skala Nycklar"
@@ -393,11 +471,6 @@ msgid "Copy Tracks"
msgstr "Kopiera Params"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Klistra in Params"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Skala urval"
@@ -510,6 +583,19 @@ msgstr ""
msgid "Copy"
msgstr "Kopiera"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Ljud-Lyssnare"
+
+#: 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
#, fuzzy
msgid "Resize Array"
@@ -1443,6 +1529,12 @@ msgstr ""
msgid "Packing"
msgstr "Packar"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -2094,6 +2186,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Spara ändringar i '%s' innan stängning?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Misslyckades att ladda resurs."
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Spara Scen Som..."
@@ -3847,12 +3948,47 @@ msgstr "Ladda"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Flytta Ner"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Lägg Till Node"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Lägg till Animation"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Ta bort Polygon och Punkt"
+
+#: 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 ""
@@ -3894,6 +4030,29 @@ msgid "Triangle already exists"
msgstr "ERROR: Animationsnamn finns redan!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Lägg till Variabel"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Ta bort Polygon och Punkt"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Ta bort Variabeln"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
@@ -3902,6 +4061,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Växla AutoLoad Globals"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3919,6 +4083,11 @@ msgid "Blend:"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Uppdatera Ändringar"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#, fuzzy
msgid "Edit Filters"
@@ -3929,11 +4098,54 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Node Namn:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Ansluten"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Frånkopplad"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animation"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Ta bort Nod(er)"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Växla distraktionsfritt läge."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Ändra Typ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3949,6 +4161,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Node Namn:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -4192,6 +4410,22 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Flytta Nod(er)"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Lägg Till Översättning"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Add Node"
+msgstr "Lägg Till Node"
+
+#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
msgstr ""
@@ -4221,6 +4455,20 @@ msgid "No playback resource set at path: %s."
msgstr "Inte i resursens sökväg."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Ta bort"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Övergång"
+
+#: 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"
@@ -5055,6 +5303,10 @@ msgstr "Håll Skift för att redigera tangenter individuellt"
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 ""
@@ -6270,6 +6522,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Skapa från Scen"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "Singleton"
@@ -6388,10 +6649,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Top View."
msgstr "Vy Ovanifrån."
@@ -6447,8 +6704,9 @@ msgid "Rear"
msgstr "Baksida"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
-msgstr ""
+#, fuzzy
+msgid "Align with View"
+msgstr "Vy från höger"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
#, fuzzy
@@ -6544,6 +6802,12 @@ msgid "Freelook Speed Modifier"
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
#, fuzzy
msgid "View Rotation Locked"
msgstr "Visa Information"
@@ -6553,6 +6817,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Select Mode (Q)"
msgstr "Välj Node"
@@ -6842,10 +7110,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -7198,6 +7462,11 @@ msgstr "Radera punkter"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Skapa Ny"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Skapa Prenumeration"
@@ -7381,6 +7650,27 @@ msgid "TileSet"
msgstr "TileSet..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Input Default Port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Duplicera Nod(er)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -7397,6 +7687,15 @@ msgstr "Höger"
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Redigera Filter"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Mode Changed"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -7410,7 +7709,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -7423,6 +7731,10 @@ msgid "Exporting All"
msgstr "Exportera"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -8472,6 +8784,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Make node as Root"
+msgstr "Vettigt!"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete Node(s)?"
msgstr "Ta bort Nod(er)?"
@@ -8510,6 +8827,11 @@ msgstr "Gör Patch"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Vettigt!"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Skapa Node"
@@ -8967,6 +9289,21 @@ msgstr ""
#: editor/settings_config_dialog.cpp
#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Genvägar"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Genvägar"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Genvägar"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
msgid "Shortcuts"
msgstr "Genvägar"
@@ -9182,6 +9519,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -9497,11 +9838,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
-msgid "Add Node"
-msgstr "Lägg Till Node"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -9587,6 +9923,11 @@ msgid "Change Input Value"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Ändra Kommentar"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr ""
@@ -10409,6 +10750,9 @@ msgstr ""
msgid "Varyings can only be assigned in vertex function."
msgstr ""
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#, fuzzy
#~ msgid "Warnings:"
#~ msgstr "Varning"
@@ -10570,10 +10914,6 @@ msgstr ""
#~ msgid "Errors:"
#~ msgstr "Fel:"
-#, fuzzy
-#~ msgid "Change Comment"
-#~ msgstr "Ändra Kommentar"
-
#~ msgid "Disabled"
#~ msgstr "Avaktiverad"
@@ -10620,9 +10960,6 @@ msgstr ""
#~ msgid "Change Anim Len"
#~ msgstr "Ändra Anim Längd"
-#~ msgid "Change Anim Loop"
-#~ msgstr "Ändra Anim Loop"
-
#~ msgid "Length (s):"
#~ msgstr "Längd (s):"
diff --git a/editor/translations/ta.po b/editor/translations/ta.po
index f1011a2a42..ef56649851 100644
--- a/editor/translations/ta.po
+++ b/editor/translations/ta.po
@@ -85,6 +85,14 @@ msgstr "அசைவூடà¯à®Ÿà¯ போலிபசà¯à®šà®¾à®µà®¿à®•à®³à¯"
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 "அசைவூடà¯à®Ÿà¯ போலிபசà¯à®šà®¾à®µà®¿à®•à®³à¯"
@@ -116,6 +124,15 @@ msgid "Anim 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 ""
@@ -166,6 +183,10 @@ 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 ""
@@ -191,6 +212,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -242,6 +267,19 @@ msgid "Delete Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Change Animation Update Mode"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதை [interpolation]யை மாறà¯à®±à¯"
+
+#: editor/animation_track_editor.cpp
+msgid "Change Animation Loop Mode"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "அசைவூடà¯à®Ÿà¯ பாதையை நீகà¯à®•à¯"
@@ -283,6 +321,15 @@ msgid "Anim Insert Key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 ""
@@ -307,6 +354,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதை சேரà¯"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -315,10 +367,24 @@ 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
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதை சேரà¯"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -331,6 +397,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -373,10 +443,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -477,6 +543,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 ""
@@ -1270,6 +1349,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1810,6 +1895,14 @@ 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 ""
@@ -3386,12 +3479,44 @@ 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
+#, fuzzy
+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 ""
@@ -3431,6 +3556,27 @@ msgid "Triangle already exists"
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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 ""
@@ -3439,6 +3585,10 @@ 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 ""
@@ -3456,6 +3606,10 @@ 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 ""
@@ -3465,11 +3619,49 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+#, fuzzy
+msgid "Set Animation"
+msgstr "மாறà¯à®±à®™à¯à®•à®³à¯ˆ இதறà¯à®•à¯ அமை:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+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 ""
@@ -3485,6 +3677,11 @@ msgid ""
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 ""
@@ -3711,6 +3908,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "சேர௠மà¯à®•à¯à®•à®¿à®¯à®ªà¯à®ªà¯à®³à¯à®³à®¿à®¯à¯ˆ நகரà¯à®¤à¯à®¤à¯"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "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 ""
@@ -3739,6 +3951,19 @@ 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
+#, fuzzy
+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"
@@ -4538,6 +4763,10 @@ msgstr ""
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 ""
@@ -5676,6 +5905,14 @@ 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 ""
@@ -5784,10 +6021,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5832,7 +6065,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -5924,6 +6157,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5932,6 +6171,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6208,10 +6451,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6541,6 +6780,10 @@ 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 ""
@@ -6705,6 +6948,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "அசைவூடà¯à®Ÿà¯ போலிபசà¯à®šà®¾à®µà®¿à®•à®³à¯"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6720,6 +6984,14 @@ msgstr ""
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 ""
@@ -6733,7 +7005,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6745,6 +7026,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7723,6 +8008,10 @@ 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 Node(s)?"
msgstr ""
@@ -7757,6 +8046,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr ""
@@ -8169,6 +8462,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8374,6 +8679,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8669,10 +8978,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8753,6 +9058,10 @@ 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 ""
@@ -9518,14 +9827,8 @@ msgstr ""
#~ msgid "Move Anim Track Down"
#~ msgstr "அசைவூடà¯à®Ÿà¯ பாதையை கீழே நகரà¯à®¤à¯à®¤à¯"
-#~ msgid "Anim Track Change Interpolation"
-#~ msgstr "அசைவூடà¯à®Ÿà¯ பாதை [interpolation]யை மாறà¯à®±à¯"
-
#~ msgid "Anim Track Change Value Mode"
#~ msgstr "அசைவூடà¯à®Ÿà¯ பாதை மதிபà¯à®ªà¯[value] விதம௠மாறà¯à®±à¯"
#~ msgid "Anim Track Change Wrap Mode"
#~ msgstr "அசைவூடà¯à®Ÿà¯ பாதை மறை[wrap] விதம௠மாறà¯à®±à¯"
-
-#~ msgid "Move Add Key"
-#~ msgstr "சேர௠மà¯à®•à¯à®•à®¿à®¯à®ªà¯à®ªà¯à®³à¯à®³à®¿à®¯à¯ˆ நகரà¯à®¤à¯à®¤à¯"
diff --git a/editor/translations/te.po b/editor/translations/te.po
index ac7d358ee0..c0b3ef05a8 100644
--- a/editor/translations/te.po
+++ b/editor/translations/te.po
@@ -82,6 +82,14 @@ msgstr ""
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 ""
@@ -111,6 +119,15 @@ msgid "Anim 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 ""
@@ -160,6 +177,10 @@ 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 ""
@@ -184,6 +205,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -234,6 +259,18 @@ 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 ""
@@ -275,6 +312,14 @@ 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 ""
@@ -299,6 +344,10 @@ msgid "Not possible to add a new track without a root"
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 ""
@@ -307,10 +356,22 @@ 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 ""
@@ -323,6 +384,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -365,10 +430,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -468,6 +529,18 @@ msgstr ""
msgid "Copy"
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 ""
@@ -1260,6 +1333,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1800,6 +1879,14 @@ 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 ""
@@ -3375,12 +3462,43 @@ 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 ""
@@ -3420,6 +3538,26 @@ 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 ""
@@ -3428,6 +3566,10 @@ 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 ""
@@ -3445,6 +3587,10 @@ 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 ""
@@ -3454,11 +3600,47 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+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 ""
@@ -3474,6 +3656,11 @@ msgid ""
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 ""
@@ -3699,6 +3886,19 @@ 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 "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 ""
@@ -3727,6 +3927,18 @@ 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"
@@ -4525,6 +4737,10 @@ msgstr ""
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 ""
@@ -5662,6 +5878,14 @@ 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 ""
@@ -5770,10 +5994,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5818,7 +6038,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -5910,6 +6130,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5918,6 +6144,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6194,10 +6424,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6523,6 +6749,10 @@ 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 ""
@@ -6685,6 +6915,26 @@ msgid "TileSet"
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 "Duplicate Nodes"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6700,6 +6950,14 @@ msgstr ""
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 ""
@@ -6713,7 +6971,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6725,6 +6992,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7701,6 +7972,10 @@ 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 Node(s)?"
msgstr ""
@@ -7735,6 +8010,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr ""
@@ -8147,6 +8426,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8351,6 +8642,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8645,10 +8940,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8729,6 +9020,10 @@ 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 ""
diff --git a/editor/translations/th.po b/editor/translations/th.po
index 62bf2f8594..9637545869 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -92,6 +92,16 @@ msgstr "ทำซ้ำที่เลือà¸"
msgid "Delete Selected Key(s)"
msgstr "ลบสิ่งที่เลือà¸"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "เพิ่มจุด"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "ย้ายจุด"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "ทำซ้ำคีย์à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
@@ -122,6 +132,16 @@ msgstr "à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¹€à¸£à¸µà¸¢à¸à¸Ÿà¸±à¸‡à¸à¹Œà¸Šà¸±à¸™à¹à¸­à¸™
#: editor/animation_track_editor.cpp
#, fuzzy
+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
+#, fuzzy
msgid "Property Track"
msgstr "คุณสมบัติ:"
@@ -179,6 +199,11 @@ msgstr "คลิป"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Track Path"
+msgstr "เปลี่ยนค่าในอาร์เรย์"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Toggle this track on/off."
msgstr "โหมดไร้สิ่งรบà¸à¸§à¸™"
@@ -206,6 +231,11 @@ msgid "Time (s): "
msgstr "ระยะเวลาเฟด (วิ):"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "เปิดดอปเพลอร์"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "ต่อเนื่อง"
@@ -259,6 +289,21 @@ msgid "Delete Key(s)"
msgstr "ลบโหนด"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "เปลี่ยนชื่อà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "โหนดà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¸§à¸™à¸‹à¹‰à¸³à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "ลบà¹à¸—ร็à¸à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
@@ -300,6 +345,16 @@ msgid "Anim Insert Key"
msgstr "à¹à¸—รà¸à¸„ีย์à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "à¹à¸à¹‰à¹„ขความเร็วà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "จัดลำดับออโต้โหลด"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -324,6 +379,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "เพิ่มà¹à¸—ร็à¸à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -332,11 +392,26 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "ประเภทà¸à¸²à¸£à¹€à¸„ลื่อนย้าย"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
#, fuzzy
+msgid "Add Method Track Key"
+msgstr "เพิ่มà¹à¸—ร็à¸à¹à¸¥à¸°à¸„ีย์à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Method not found in object: "
msgstr "ไม่พบ VariableGet ในสคริปต์: "
@@ -350,6 +425,11 @@ msgid "Clipboard is empty"
msgstr "คลิปบอร์ดว่างเปล่า!"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "วางตัวà¹à¸›à¸£"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "ปรับคีย์à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
@@ -396,11 +476,6 @@ msgid "Copy Tracks"
msgstr "คัดลอà¸à¸•à¸±à¸§à¹à¸›à¸£"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "วางตัวà¹à¸›à¸£"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "ปรับอัตราส่วนเวลาคีย์ที่เลือà¸"
@@ -503,6 +578,19 @@ msgstr ""
msgid "Copy"
msgstr "คัดลอà¸"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "ปรับขนาดอาร์เรย์"
@@ -1317,6 +1405,12 @@ msgstr ""
msgid "Packing"
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸£à¸§à¸šà¸£à¸§à¸¡"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1897,6 +1991,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "บันทึภ'%s' à¸à¹ˆà¸­à¸™à¸›à¸´à¸”โปรà¹à¸à¸£à¸¡à¸«à¸£à¸·à¸­à¹„ม่?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "โหลดรีซอร์สไม่ได้"
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "Texture ขนาดใหà¸à¹ˆà¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¹à¸„่ไฟล์เดียว"
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "บันทึà¸à¸‰à¸²à¸à¹€à¸›à¹‡à¸™..."
@@ -3558,12 +3662,49 @@ msgstr "โหลด"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "ย้ายจุด"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "à¹à¸à¹‰à¹„ขระยะเวลาà¸à¸²à¸£à¸œà¸ªà¸²à¸™"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "à¹à¸à¹‰à¹„ขระยะเวลาà¸à¸²à¸£à¸œà¸ªà¸²à¸™"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "เพิ่มโหนด"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "เพิ่มà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3606,6 +3747,31 @@ msgid "Triangle already exists"
msgstr "มีà¸à¸²à¸£à¸à¸£à¸°à¸—ำ '%s' อยู่à¹à¸¥à¹‰à¸§!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "เพิ่มตัวà¹à¸›à¸£"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "à¹à¸à¹‰à¹„ขระยะเวลาà¸à¸²à¸£à¸œà¸ªà¸²à¸™"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "à¹à¸à¹‰à¹„ขระยะเวลาà¸à¸²à¸£à¸œà¸ªà¸²à¸™"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "ลบจุด"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "ลบตัวà¹à¸›à¸£"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
@@ -3614,6 +3780,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "เปิด/ปิดซิงเà¸à¸´à¸¥à¸•à¸±à¸™"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3632,6 +3803,11 @@ msgid "Blend:"
msgstr "ผสม:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "จำนวนครั้งที่เปลี่ยนวัสดุ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "à¹à¸à¹‰à¹„ขตัวà¸à¸£à¸­à¸‡"
@@ -3641,11 +3817,55 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "เพิ่มโหนดจาà¸à¸œà¸±à¸‡"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "โหมดเคลื่อนย้าย"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "เชื่อมต่อà¹à¸¥à¹‰à¸§"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­à¸ªà¸´à¹‰à¸™à¸ªà¸¸à¸”"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "ลบโหนด"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "โหมดไร้สิ่งรบà¸à¸§à¸™"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "à¹à¸à¹‰à¹„ขตัวà¸à¸£à¸­à¸‡à¸ à¸¹à¸¡à¸´à¸ à¸²à¸„"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3661,6 +3881,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "ชื่อโหนด:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -3898,6 +4124,21 @@ msgstr "ระยะเวลาà¸à¸²à¸£à¸œà¸ªà¸²à¸™ Cross-Animation"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
+msgid "Move Node"
+msgstr "โหมดเคลื่อนย้าย"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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
+#, fuzzy
msgid "End"
msgstr "จบ"
@@ -3927,6 +4168,20 @@ msgid "No playback resource set at path: %s."
msgstr "ไม่อยู่ในโฟลเดอร์รีซอร์ส"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "ลบ:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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"
@@ -4758,6 +5013,10 @@ msgstr "à¸à¸” Shift ค้างเพื่อปรับเส้นสัà¸
msgid "Bake GI Probe"
msgstr "สร้าง GI Probe"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "ไอเทม %d"
@@ -5949,6 +6208,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "สร้างจุดปะทุจาภMesh"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "โครงà¸à¸£à¸°à¸”ูà¸..."
@@ -6061,10 +6329,6 @@ msgid "Vertices"
msgstr "มุมรูปทรง"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "เฟรมต่อวินาที"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "มุมบน"
@@ -6109,7 +6373,8 @@ msgid "Rear"
msgstr "หลัง"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "ย้ายมาที่à¸à¸¥à¹‰à¸­à¸‡"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6203,6 +6468,12 @@ msgid "Freelook Speed Modifier"
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
#, fuzzy
msgid "View Rotation Locked"
msgstr "à¹à¸ªà¸”งข้อมูล"
@@ -6212,6 +6483,11 @@ msgid "XForm Dialog"
msgstr "เครื่องมือเคลื่อนย้าย"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "จำà¸à¸±à¸”ด้วยเส้นตาราง"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "โหมดเลือภ(Q)"
@@ -6499,10 +6775,6 @@ msgid "Add Empty"
msgstr "เพิ่มà¹à¸šà¸šà¸§à¹ˆà¸²à¸‡à¹€à¸›à¸¥à¹ˆà¸²"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¸§à¸™à¸‹à¹‰à¸³à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "à¹à¸à¹‰à¹„ขความเร็วà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
@@ -6849,6 +7121,11 @@ msgstr "คลิà¸à¸‚วา: ลบจุด"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "สร้าง %s ใหม่"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "สร้างรูปหลายเหลี่ยมจาà¸à¸„วามว่างเปล่า"
@@ -7038,6 +7315,29 @@ msgid "TileSet"
msgstr "Tile Set"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "à¸à¸³à¸«à¸™à¸”เป็นค่าเริ่มต้นของ '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "Shader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "ทำซ้ำโหนด"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vertex"
msgstr "มุมรูปทรง"
@@ -7057,6 +7357,16 @@ msgstr "ขวา"
msgid "VisualShader"
msgstr "Shader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "à¹à¸à¹‰à¹„ขตัวà¸à¸£à¸­à¸‡"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "จำนวนครั้งที่เปลี่ยน Shader"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "รันได้"
@@ -7070,8 +7380,17 @@ msgid "Delete preset '%s'?"
msgstr "ลบ '%s'?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "à¹à¸¡à¹ˆà¹à¸šà¸šà¸ªà¹ˆà¸‡à¸­à¸­à¸à¸ªà¸³à¸«à¸£à¸±à¸šà¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡à¸™à¸µà¹‰à¸ªà¸¹à¸à¸«à¸²à¸¢/เสียหาย:"
+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
#, fuzzy
@@ -7084,6 +7403,10 @@ msgid "Exporting All"
msgstr "ส่งออà¸à¸ªà¸³à¸«à¸£à¸±à¸š %s"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "à¹à¸¡à¹ˆà¹à¸šà¸šà¸ªà¹ˆà¸‡à¸­à¸­à¸à¸ªà¸³à¸«à¸£à¸±à¸šà¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡à¸™à¸µà¹‰à¸ªà¸¹à¸à¸«à¸²à¸¢/เสียหาย:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "à¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸"
@@ -8097,6 +8420,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "เข้าใจ!"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "ลบโหนด?"
@@ -8133,6 +8461,11 @@ msgstr "ระยะใà¸à¸¥à¹‰"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "เข้าใจ!"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "สร้างโหนด"
@@ -8570,6 +8903,21 @@ msgid "Set From Tree"
msgstr "à¸à¸³à¸«à¸™à¸”จาà¸à¸œà¸±à¸‡"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "ออà¸à¸™à¸¸à¹ˆà¸¡à¸™à¸§à¸¥"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "ทางลัด"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¸•à¸£à¸¶à¸‡"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "ทางลัด"
@@ -8783,6 +9131,10 @@ msgid "GridMap Duplicate Selection"
msgstr "ทำซ้ำใน GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr "วาด GridMap"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "จำà¸à¸±à¸”ด้วยเส้นตาราง"
@@ -9080,10 +9432,6 @@ msgid "Change Expression"
msgstr "à¹à¸à¹‰à¹„ขสมà¸à¸²à¸£"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "เพิ่มโหนด"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "ลบโหนด"
@@ -9166,6 +9514,11 @@ msgid "Change Input Value"
msgstr "à¹à¸à¹‰à¹„ขค่าอินพุต"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "à¹à¸à¹‰à¹„ข CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "คัดลอà¸à¹‚หนดฟังà¸à¹Œà¸Šà¸±à¸™à¹„ม่ได้"
@@ -9978,6 +10331,9 @@ msgstr ""
msgid "Varyings can only be assigned in vertex function."
msgstr ""
+#~ msgid "FPS"
+#~ msgstr "เฟรมต่อวินาที"
+
#, fuzzy
#~ msgid "Warnings:"
#~ msgstr "คำเตือน"
@@ -10152,10 +10508,6 @@ msgstr ""
#~ msgid "Convert To Lowercase"
#~ msgstr "à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™à¸•à¸±à¸§à¸žà¸´à¸¡à¸žà¹Œà¹€à¸¥à¹‡à¸"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "จำà¸à¸±à¸”ด้วยเส้นตาราง"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "หมุน 0 องศา"
@@ -10675,9 +11027,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "เพิ่ม:"
-#~ msgid "Removed:"
-#~ msgstr "ลบ:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "บันทึภtexture ย่อยของ atlas ไม่ได้:"
@@ -10938,9 +11287,6 @@ msgstr ""
#~ msgid "Error importing:"
#~ msgstr "ผิดพลาดขณะนำเข้า:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "Texture ขนาดใหà¸à¹ˆà¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¹à¸„่ไฟล์เดียว"
-
#~ msgid "Max Texture Size:"
#~ msgstr "ขนาด Texture ที่ใหà¸à¹ˆà¸—ี่สุด:"
@@ -11159,9 +11505,6 @@ msgstr ""
#~ msgid "Resource Tools"
#~ msgstr "เครื่องมือรีซอร์ส"
-#~ msgid "GridMap Paint"
-#~ msgstr "วาด GridMap"
-
#~ msgid "Areas"
#~ msgstr "พื้นที่"
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index ccb0acce73..8111bff345 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -108,6 +108,16 @@ msgstr "Seçimi Çoğalt"
msgid "Delete Selected Key(s)"
msgstr "Seçilenleri Sil"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Nokta Ekle"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Noktayı Taşı"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Animasyon Anahtarlarını Çoğalt"
@@ -138,6 +148,16 @@ msgstr "Animasyon Değişikliği Çağrısı"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Animation Length"
+msgstr "Animasyon Döngüsünü Değiştir"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "Animasyon Döngüsünü Değiştir"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Property Track"
msgstr "Özellik:"
@@ -195,6 +215,11 @@ msgstr "Parçalar"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Change Track Path"
+msgstr "Dizi DeÄŸerini DeÄŸiÅŸtir"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Toggle this track on/off."
msgstr "Dikkat-Dağıtmayan Kipine geç."
@@ -222,6 +247,11 @@ msgid "Time (s): "
msgstr "X-Sönülme Süresi (sn):"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Çoğaltıcı Aktif"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Kesintisiz"
@@ -275,6 +305,21 @@ msgid "Delete Key(s)"
msgstr "Düğümleri Sil"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Animasyonun Adını Değiştir:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Animasyon Düğümü"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Animasyon Döngüsünü Değiştir"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Animasyon İzini Kaldır"
@@ -316,6 +361,16 @@ msgid "Anim Insert Key"
msgstr "Animasyon Anahtar Gir"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Animasyon FPS'sini DeÄŸiÅŸtir"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "KendindenYüklenme'leri Yeniden Sırala"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -340,6 +395,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Animasyon Ä°z Ekle"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -348,11 +408,26 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Dönüştürme Türü"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Animasyon Ä°z Ekle"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Animasyon Ä°z & Anahtar Gir"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Method not found in object: "
msgstr "VariableGet betikte bulunamadı: "
@@ -366,6 +441,11 @@ msgid "Clipboard is empty"
msgstr "Pano boÅŸ!"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "Parametreleri Yapıştır"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "Animasyon Anahtarı Ölçekle"
@@ -412,11 +492,6 @@ msgid "Copy Tracks"
msgstr "Değişkenleri Tıpkıla"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "Parametreleri Yapıştır"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Seçimi Ölçekle"
@@ -519,6 +594,19 @@ msgstr ""
msgid "Copy"
msgstr "Tıpkıla"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Ses Dinleyici"
+
+#: 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 "Diziyi Yeniden Boyutlandır"
@@ -1336,6 +1424,12 @@ msgstr ""
msgid "Packing"
msgstr "Çıkınla"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1933,6 +2027,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "Kapatmadan önce değişklikler buraya '%s' kaydedilsin mi?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Kaynak yükleme başarısız oldu."
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "Büyük doku için yalnızca bir dizeç gereklidir."
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Sahneyi Farklı Kaydet..."
@@ -3620,12 +3724,49 @@ msgstr "Yükle"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Noktayı Taşı"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Karışım Süresini Değiştir"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Karışım Süresini Değiştir"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Düğüm Ekle"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Animasyon Ekle"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace1D Point"
+msgstr "Yol Noktasını Kaldır"
+
+#: 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 ""
@@ -3668,6 +3809,31 @@ msgid "Triangle already exists"
msgstr "Ä°ÅŸlem '%s' zaten var!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "DeÄŸiÅŸken Ekle"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Karışım Süresini Değiştir"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Karışım Süresini Değiştir"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Yol Noktasını Kaldır"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Değişkeni Kaldır"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
@@ -3676,6 +3842,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "KendindenYüklenme Bütünsellerini Aç / Kapat"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3694,6 +3865,11 @@ msgid "Blend:"
msgstr "Karışma:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Materyal DeÄŸiÅŸiklikleri"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Süzgeçleri Düzenle"
@@ -3703,11 +3879,55 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Ağaçtan Düğüm(ler) Ekle"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Biçimi Taşı"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Bağlı"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Bağlantı kesildi"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Animasyon"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Düğümleri Sil"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Dikkat-Dağıtmayan Kipine geç."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Değiştirilen Yerel Süzgeç"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3723,6 +3943,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Düğüm adı:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -3960,6 +4186,21 @@ msgstr "Çapraz-Animasyon Karışma Süreleri"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
+msgid "Move Node"
+msgstr "Biçimi Taşı"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Çeviri Ekle"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr "Düğüm Ekle"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
msgid "End"
msgstr "Son(lar)"
@@ -3989,6 +4230,20 @@ msgid "No playback resource set at path: %s."
msgstr "Kaynak yolunda deÄŸil."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Silinen:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Geçiş Düğümü"
+
+#: 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"
@@ -4824,6 +5079,10 @@ msgstr "Tanjantları tek tek düzenlemek için Shift'e basılı tut"
msgid "Bake GI Probe"
msgstr "GI Prob PiÅŸir"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Öğe%d"
@@ -6015,6 +6274,15 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Örüntüden Emisyon Noktaları Oluştur"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
msgid "Skeleton2D"
msgstr "Ä°skelet..."
@@ -6127,10 +6395,6 @@ msgid "Vertices"
msgstr "Köşenoktalar"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "FPS"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "Üstten Görünüm."
@@ -6175,7 +6439,8 @@ msgid "Rear"
msgstr "Arka"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "Görünüme Ayarla"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6269,6 +6534,12 @@ msgid "Freelook Speed Modifier"
msgstr "Serbestbakış Hız Değiştirici"
#: 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
#, fuzzy
msgid "View Rotation Locked"
msgstr "Bilgi Göster"
@@ -6278,6 +6549,11 @@ msgid "XForm Dialog"
msgstr "XForm Ä°letiÅŸim Kutusu"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Izgaraya yapış"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Seçim Kipi (Q)"
@@ -6565,10 +6841,6 @@ msgid "Add Empty"
msgstr "BoÅŸ Ekle"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Animasyon Döngüsünü Değiştir"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Animasyon FPS'sini DeÄŸiÅŸtir"
@@ -6912,6 +7184,11 @@ msgstr "RMB: Noktayı Sil."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Yeni %s oluÅŸtur"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Sıfırdan yeni bir çokgen oluşturun."
@@ -7103,6 +7380,29 @@ msgid "TileSet"
msgstr "Karo Takımı"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "'%s' için Varsayılanı Ayarla"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "Gölgelendirici"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Düğüm(leri) Çoğalt"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vertex"
msgstr "Köşenoktalar"
@@ -7121,6 +7421,16 @@ msgstr "SaÄŸ"
msgid "VisualShader"
msgstr "Gölgelendirici"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Süzgeçleri Düzenle"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Shader DeÄŸiÅŸiklikleri"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "KoÅŸturulabilir"
@@ -7134,8 +7444,17 @@ msgid "Delete preset '%s'?"
msgstr "'%s' önayarı silinsin mi?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "Bu platform için dışa aktarma şablonu eksik/bozuk:"
+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
#, fuzzy
@@ -7148,6 +7467,10 @@ msgid "Exporting All"
msgstr "%s için Dışa Aktarım"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "Bu platform için dışa aktarma şablonu eksik/bozuk:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Önayarlar"
@@ -8172,6 +8495,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Anlamlı!"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Düğüm(ler) Silinsin mi?"
@@ -8207,6 +8535,11 @@ msgstr "YerelleÅŸtir"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "Anlamlı!"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "Düğüm Oluştur"
@@ -8647,6 +8980,21 @@ msgid "Set From Tree"
msgstr "Ağaçtan Ayarla"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Kararma"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Kısayollar"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Çapaları Değiştir"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Kısayollar"
@@ -8860,6 +9208,11 @@ msgid "GridMap Duplicate Selection"
msgstr "IzgaraHaritası Seçimi Çoğalt"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "IzgaraHaritası Ayarları"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Izgara Haritası"
@@ -9162,10 +9515,6 @@ msgid "Change Expression"
msgstr "Ä°fadeyi DeÄŸiÅŸtir"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Düğüm Ekle"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "GörselBetik Düğümlerini Kaldır"
@@ -9252,6 +9601,11 @@ msgid "Change Input Value"
msgstr "Girdi DeÄŸerini DeÄŸiÅŸtir"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "CanvasItem Düzenle"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "Fonksiyon düğümü kopyalanamıyor."
@@ -10116,6 +10470,9 @@ msgstr ""
msgid "Varyings can only be assigned in vertex function."
msgstr ""
+#~ msgid "FPS"
+#~ msgstr "FPS"
+
#, fuzzy
#~ msgid "Warnings:"
#~ msgstr "Uyarılar"
@@ -10295,10 +10652,6 @@ msgstr ""
#~ msgid "Convert To Lowercase"
#~ msgstr "Küçük Harfe Dönüştür"
-#, fuzzy
-#~ msgid "Snap To Floor"
-#~ msgstr "Izgaraya yapış"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "0 Düzeyde Döndür"
@@ -10820,9 +11173,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "Eklenen:"
-#~ msgid "Removed:"
-#~ msgstr "Silinen:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "Atlas alt dokusu kaydedilemedi:"
@@ -11082,9 +11432,6 @@ msgstr ""
#~ msgid "Error importing:"
#~ msgstr "İçe aktarırken sorun:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "Büyük doku için yalnızca bir dizeç gereklidir."
-
#~ msgid "Max Texture Size:"
#~ msgstr "En üst Doku Boyutu:"
diff --git a/editor/translations/uk.po b/editor/translations/uk.po
index f617cf3fc4..944fa20e28 100644
--- a/editor/translations/uk.po
+++ b/editor/translations/uk.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ukrainian (Godot Engine)\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-02-13 07:10+0000\n"
+"PO-Revision-Date: 2019-02-21 21:18+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/"
"godot/uk/>\n"
@@ -93,6 +93,16 @@ msgstr "Дублювати позначені ключі"
msgid "Delete Selected Key(s)"
msgstr "Вилучити позначені ключі"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "Додати точку"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "ПереміÑтити точки"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Дублювати ключі"
@@ -122,6 +132,16 @@ msgid "Anim Change Call"
msgstr "Змінити виклик анімації"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 "Доріжка влаÑтивоÑтей"
@@ -171,6 +191,11 @@ msgid "Anim Clips:"
msgstr "Кліпи анімації:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Змінити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñиву"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "Увімкнути або вимкнути цю доріжку."
@@ -195,6 +220,11 @@ msgid "Time (s): "
msgstr "Ð§Ð°Ñ (Ñ): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "Ефект Доплера"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Ðеперервна"
@@ -245,6 +275,21 @@ msgid "Delete Key(s)"
msgstr "Вилучити ключі"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Змінити ім'Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ñ—:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Режим інтерполÑції"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Змінити цикл анімації"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Видалити доріжку"
@@ -286,6 +331,16 @@ msgid "Anim Insert Key"
msgstr "Ð’Ñтавити ключ анімації"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Змінити чаÑтоту кадрів анімації"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Змінити порÑдок автозавантажень"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "Доріжки Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°ÑтоÑовуютьÑÑ Ð»Ð¸ÑˆÐµ до вузлів на оÑнові Spatial."
@@ -316,6 +371,11 @@ msgid "Not possible to add a new track without a root"
msgstr "Ðе можна додавати нові доріжки без кореневого запиÑу"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Додати доріжку"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "ШлÑÑ… доріжки Ñ” некоректним, отже не можна додавати ключ."
@@ -324,10 +384,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "Доріжка не належить до типу Spatial, не можна вÑтавлÑти ключ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Доріжка проÑторового перетвореннÑ"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Доріжка виклику методів"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "Ðе знайдено метод у об'єкті: "
@@ -340,6 +415,10 @@ msgid "Clipboard is empty"
msgstr "Буфер обміну порожній"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "Ð’Ñтавити доріжки"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "МаÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ»ÑŽÑ‡Ñ–Ð² анімації"
@@ -385,10 +464,6 @@ msgid "Copy Tracks"
msgstr "Копіювати доріжки"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "Ð’Ñтавити доріжки"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Вибір маÑштабу"
@@ -488,6 +563,19 @@ msgstr "Виберіть доріжки Ð´Ð»Ñ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ:"
msgid "Copy"
msgstr "Копіювати"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "Змінити розмір маÑиву"
@@ -557,9 +645,8 @@ msgid "Warnings"
msgstr "ПопередженнÑ"
#: editor/code_editor.cpp
-#, fuzzy
msgid "Line and column numbers."
-msgstr "Ðомери Ñ€Ñдків Ñ– позицій"
+msgstr "Ðомери Ñ€Ñдків Ñ– позицій."
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
@@ -1118,9 +1205,8 @@ msgid "Add Bus"
msgstr "Додати шину"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "Зберегти ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð°ÑƒÐ´Ñ–Ð¾ шини Ñк..."
+msgstr "Додати нову аудіошину до цього компонуваннÑ."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1299,6 +1385,12 @@ msgstr "У очікуваному каталозі не знайдено шабÐ
msgid "Packing"
msgstr "ПакуваннÑ"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1875,6 +1967,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Зберегти зміни, внеÑені до '%s' перед закриттÑм?"
#: editor/editor_node.cpp
+#, fuzzy
+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 "Зберегти Ñцену Ñк..."
@@ -2398,9 +2499,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 Always"
@@ -3514,6 +3614,22 @@ msgstr "Завантажити…"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "ПереміÑтити точки"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Змінити Ñ‡Ð°Ñ Ð·Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3522,6 +3638,27 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Додати вузол"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ñ—"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3566,6 +3703,31 @@ msgid "Triangle already exists"
msgstr "Трикутник вже Ñ–Ñнує"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Додати змінну"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Змінити Ñ‡Ð°Ñ Ð·Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Змінити Ñ‡Ð°Ñ Ð·Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "Видалити точку шлÑху"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Вилучити змінну"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D не належить до вузла AnimationTree."
@@ -3574,6 +3736,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "Трикутників не Ñ–Ñнує, отже Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð½Ðµ Ñ” можливим."
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Увімкнути Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñкриптів"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "Створити трикутники з'єднаннÑм точок."
@@ -3591,6 +3758,11 @@ msgid "Blend:"
msgstr "Змішувати:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "Зміни матеріалу"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "Редагувати фільтри"
@@ -3600,6 +3772,17 @@ msgid "Output node can't be added to the blend tree."
msgstr "Вузол Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð½Ðµ можна додавати до дерева злиттÑ."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "Додати вузли з дерева"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Режим переміщеннÑ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
@@ -3607,6 +3790,39 @@ msgstr ""
"некоректним."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "З’єднано"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Роз'єднано"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Ðова анімаціÑ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Вилучити вузли"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Увімкнути або вимкнути цю доріжку."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Змінено фільтр локалі"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
"Ðе вÑтановлено відтворювача анімації, отже неможливо отримати назви доріжок."
@@ -3627,6 +3843,12 @@ msgstr ""
"неможливо отримати назви доріжок."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Ðазва вузла"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "Додати вузол…"
@@ -3853,6 +4075,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Ð§Ð°Ñ Ð¼Ñ–Ð¶ анімаціÑми"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Режим переміщеннÑ"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "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 "Кінець"
@@ -3881,6 +4118,20 @@ msgid "No playback resource set at path: %s."
msgstr "Ðе вÑтановлено реÑурÑу Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñƒ шлÑху: %s."
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Вилучити"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Вузол переходу"
+
+#: 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"
@@ -4702,6 +4953,10 @@ msgstr "Утримуйте Shift, щоб змінити дотичні окреÐ
msgid "Bake GI Probe"
msgstr "Запекти пробу GI"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "Елемент %d"
@@ -5227,6 +5482,8 @@ 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"
@@ -5847,6 +6104,16 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr "У цього каркаÑа немає кіÑток, Ñтворіть хоч ÑкіÑÑŒ дочірні вузли Bone2D."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Створити вільну позу (з кіÑток)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Set Rest Pose to Bones"
+msgstr "Створити вільну позу (з кіÑток)"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "ПлоÑкий каркаÑ"
@@ -5955,10 +6222,6 @@ msgid "Vertices"
msgstr "Вершини"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "Кадри за Ñекунду"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "ВиглÑд згори."
@@ -6003,7 +6266,8 @@ msgid "Rear"
msgstr "Ззаду"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "ВирівнÑти з переглÑдом"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6095,6 +6359,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr "ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду заблоковано"
@@ -6103,6 +6373,11 @@ msgid "XForm Dialog"
msgstr "Вікно XForm"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "Приліпити до підлоги"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "Режим Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ (Q)"
@@ -6384,10 +6659,6 @@ msgid "Add Empty"
msgstr "Додати порожній"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "Змінити цикл анімації"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "Змінити чаÑтоту кадрів анімації"
@@ -6713,6 +6984,11 @@ msgid "Erase bitmask."
msgstr "Витерти бітову маÑку."
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Створити вузли."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "Створити новий полігон."
@@ -6894,6 +7170,29 @@ msgid "TileSet"
msgstr "Ðабір плиток"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "Ð’Ñтановити Ñк типове Ð´Ð»Ñ '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "VisualShader"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Дублювати вузли"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "Вершина"
@@ -6909,6 +7208,16 @@ msgstr "Світло"
msgid "VisualShader"
msgstr "VisualShader"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "Редагувати пріоритетніÑÑ‚ÑŒ плитки"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "Зміни шейдерів"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Ðктивний"
@@ -6922,9 +7231,17 @@ msgid "Delete preset '%s'?"
msgstr "Вилучити набір «%s»?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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"
@@ -6935,6 +7252,11 @@ msgid "Exporting All"
msgstr "ЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑього"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+"Ðе виÑтачає шаблонів екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ð¸ або шаблони пошкоджено:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "Ðабори"
@@ -7973,6 +8295,11 @@ msgid "Instantiated scenes can't become root"
msgstr "Сцени зі Ñтвореними екземплÑрами не можуть Ñтавати кореневими"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "Зробити кореневим Ð´Ð»Ñ Ñцени"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "Вилучити вузли?"
@@ -8009,6 +8336,11 @@ msgid "Make Local"
msgstr "Зробити локальним"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "Зробити кореневим Ð´Ð»Ñ Ñцени"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "Створити кореневий вузол:"
@@ -8437,6 +8769,21 @@ msgid "Set From Tree"
msgstr "Ð’Ñтановити з дерева"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "Перейти з"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "Клавіатурні ÑкороченнÑ"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "Змінити прив'Ñзки"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "Клавіатурні ÑкороченнÑ"
@@ -8643,6 +8990,11 @@ msgid "GridMap Duplicate Selection"
msgstr "Ð”ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "Параметри GridMap"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "Карта Ñітки"
@@ -8943,10 +9295,6 @@ msgid "Change Expression"
msgstr "Змінити вираз"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "Додати вузол"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "Вилучити вузли VisualScript"
@@ -9031,6 +9379,11 @@ msgid "Change Input Value"
msgstr "Зміна вхідного значеннÑ"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "Змінити розмір CanvasItem"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "Ðеможливо Ñкопіювати вузол функції."
@@ -9819,9 +10172,8 @@ msgid "Switch between hexadecimal and code values."
msgstr "ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¼Ñ–Ð¶ шіÑтнадцÑтковими значеннÑми Ñ– кодами."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Add current color as a preset."
-msgstr "Додати поточний колір в ÑкоÑÑ‚Ñ– преÑету"
+msgstr "Додати поточний колір Ñк шаблон."
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -9916,6 +10268,9 @@ msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð´Ð½Ð¾Ñ€Ñ–Ð´Ð½Ð¾Ð³Ð¾."
msgid "Varyings can only be assigned in vertex function."
msgstr "Змінні величини можна пов'Ñзувати лише із функцією вузлів."
+#~ msgid "FPS"
+#~ msgstr "Кадри за Ñекунду"
+
#~ msgid "Warnings:"
#~ msgstr "ПопередженнÑ:"
@@ -10081,9 +10436,6 @@ msgstr "Змінні величини можна пов'Ñзувати лише
#~ msgid "Convert To Lowercase"
#~ msgstr "Конвертувати в нижній регіÑÑ‚Ñ€"
-#~ msgid "Snap To Floor"
-#~ msgstr "Приліпити до підлоги"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° 0 градуÑів"
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index d77307b020..f3367675ef 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -87,6 +87,15 @@ msgstr ""
msgid "Delete Selected Key(s)"
msgstr ""
+#: editor/animation_bezier_editor.cpp
+msgid "Add Bezier Point"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr ".تمام کا انتخاب"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr ""
@@ -116,6 +125,15 @@ msgid "Anim 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 ""
@@ -165,6 +183,10 @@ 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 ""
@@ -190,6 +212,10 @@ msgid "Time (s): "
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr ""
@@ -241,6 +267,18 @@ 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 ""
@@ -282,6 +320,14 @@ 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 ""
@@ -306,6 +352,10 @@ msgid "Not possible to add a new track without a root"
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 ""
@@ -314,10 +364,22 @@ 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 ""
@@ -330,6 +392,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -372,10 +438,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr ""
@@ -476,6 +538,18 @@ msgstr ""
msgid "Copy"
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 ""
@@ -1275,6 +1349,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1826,6 +1906,14 @@ 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 ""
@@ -3417,12 +3505,46 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+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
+#, fuzzy
+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 ""
@@ -3462,6 +3584,27 @@ 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
+#, fuzzy
+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 ""
@@ -3470,6 +3613,10 @@ 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 ""
@@ -3487,6 +3634,10 @@ 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 ""
@@ -3496,11 +3647,50 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "ایکشن منتقل کریں"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_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
+#, fuzzy
+msgid "Delete Node"
+msgstr ".اینیمیشن کی کیز کو ڈیلیٹ کرو"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Toggle Filter On/Off"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr ".نوٹÙئر Ú©Û’ اکسٹنٹ Ú©Ùˆ تبدیل کیجیۓ"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3516,6 +3706,11 @@ msgid ""
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 ""
@@ -3743,6 +3938,20 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "ایکشن منتقل کریں"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+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 ""
@@ -3772,6 +3981,18 @@ 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"
@@ -4584,6 +4805,10 @@ msgstr ""
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 ""
@@ -5738,6 +5963,14 @@ 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 ""
@@ -5847,10 +6080,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5895,8 +6124,9 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
-msgstr ""
+#, fuzzy
+msgid "Align with View"
+msgstr ".تمام کا انتخاب"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "No parent to instance a child at."
@@ -5987,6 +6217,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -5995,6 +6231,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6275,10 +6515,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6614,6 +6850,11 @@ msgstr ".تمام کا انتخاب"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "سب سکریپشن بنائیں"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "سب سکریپشن بنائیں"
@@ -6790,6 +7031,26 @@ msgid "TileSet"
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 "Duplicate Nodes"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6805,6 +7066,14 @@ msgstr ""
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 ""
@@ -6818,7 +7087,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6830,6 +7108,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7814,6 +8096,10 @@ 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 Node(s)?"
msgstr ""
@@ -7848,6 +8134,10 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Create Root Node:"
msgstr "سب سکریپشن بنائیں"
@@ -8270,6 +8560,19 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+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 "Shortcuts"
msgstr ""
@@ -8480,6 +8783,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8778,10 +9085,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8863,6 +9166,10 @@ 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 ""
diff --git a/editor/translations/vi.po b/editor/translations/vi.po
index e7ae7be36f..f51007b85c 100644
--- a/editor/translations/vi.po
+++ b/editor/translations/vi.po
@@ -8,12 +8,13 @@
# Nguyễn Tuấn Anh <anhnt.fami@gmail.com>, 2017.
# Tung Le <tungkradle@gmail.com>, 2017.
# 38569459 <xxx38569459@gmail.com>, 2018.
+# TyTYct Hihi <tytyct@gmail.com>, 2019.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2018-12-13 14:44+0100\n"
-"Last-Translator: 01lifeleft <01lifeleft@gmail.com>\n"
+"PO-Revision-Date: 2019-03-01 11:59+0000\n"
+"Last-Translator: TyTYct Hihi <tytyct@gmail.com>\n"
"Language-Team: Vietnamese <https://hosted.weblate.org/projects/godot-engine/"
"godot/vi/>\n"
"Language: vi\n"
@@ -21,7 +22,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 2.2\n"
+"X-Generator: Weblate 3.5-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -89,6 +90,15 @@ msgstr "Nhân đôi lá»±a chá»n"
msgid "Delete Selected Key(s)"
msgstr "Xoá Key(s) được chá»n"
+#: editor/animation_bezier_editor.cpp
+msgid "Add Bezier Point"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "Di chuyển đến..."
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "Nhân đôi Các Key của Animation"
@@ -118,6 +128,16 @@ msgid "Anim Change Call"
msgstr "Äổi Function Gá»i Animation"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Length"
+msgstr "Äổi vòng lặp Anim"
+
+#: 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 ""
@@ -171,6 +191,11 @@ msgid "Anim Clips:"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "Äổi giá trị Array"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr ""
@@ -197,6 +222,10 @@ msgid "Time (s): "
msgstr "BÆ°á»›c (s):"
#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "Liên tục"
@@ -250,6 +279,21 @@ msgid "Delete Key(s)"
msgstr "Xóa phím Anim"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "Äổi Ä‘á»™ dài Anim"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "Äổi Ä‘á»™ dài Anim"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "Äổi vòng lặp Anim"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "Xóa Anim Track"
@@ -291,6 +335,16 @@ msgid "Anim Insert Key"
msgstr "Chèn Key Anim"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "Äổi vòng lặp Anim"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "Sắp xếp lại Autoloads"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -315,6 +369,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "Thêm Track Animation"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -323,10 +382,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "Chèn Track & Key Anim"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Track Key"
+msgstr "Thêm Track Animation"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "Chèn Track & Key Anim"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -339,6 +413,10 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Anim Scale Keys"
msgstr "Anim Scale Keys"
@@ -385,10 +463,6 @@ msgid "Copy Tracks"
msgstr ""
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr ""
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "Chá»n Scale"
@@ -492,6 +566,19 @@ msgstr ""
msgid "Copy"
msgstr "Copy"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+msgid "Add Audio Track Clip"
+msgstr "Thêm Track Animation"
+
+#: 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 "Äổi lại size Array"
@@ -1296,6 +1383,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1856,6 +1949,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "Lưu thay đổi vào '%s' trước khi đóng?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "Lưu animation này"
+
+#: editor/editor_node.cpp
+msgid "A root node is required to save the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Lưu Scene với tên..."
@@ -2296,12 +2398,10 @@ msgid "Issue Tracker"
msgstr ""
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Community"
msgstr "Cộng đồng"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About"
msgstr "Thông tin"
@@ -3475,12 +3575,48 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "Di chuyển đến..."
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "Äổi Thá»i gian Chuyển Animation"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "Äổi Thá»i gian Chuyển Animation"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "Di chuyển đến..."
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "Thêm Animation"
+
+#: 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 ""
@@ -3522,6 +3658,30 @@ msgid "Triangle already exists"
msgstr "LỖI: Tên animation trùng lặp!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "Thêm Biến"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "Äổi Thá»i gian Chuyển Animation"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "Äổi Thá»i gian Chuyển Animation"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Remove BlendSpace2D Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "Xoá Variable"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
@@ -3530,6 +3690,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "Bật tắt Ưa thích"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3547,6 +3712,10 @@ 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 ""
@@ -3556,11 +3725,54 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "Äổi tên"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "Äứt kết nối"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "Äứt kết nối"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "Tạo Animation mới"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "Xóa Node(s)"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "Bật tắt Ưa thích"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "Äổi"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3576,6 +3788,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "Äổi tên"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr ""
@@ -3809,6 +4027,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "Di chuyển Node(s)"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Add Transition"
+msgstr "Chuyển tiếp: "
+
+#: 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 ""
@@ -3837,6 +4070,20 @@ msgid "No playback resource set at path: %s."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "Xóa"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "Chuyển tiếp: "
+
+#: 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"
@@ -4650,6 +4897,10 @@ msgstr ""
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 ""
@@ -5812,6 +6063,15 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "Tạo từ Scene"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr ""
@@ -5921,10 +6181,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -5969,7 +6225,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6061,6 +6317,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6069,6 +6331,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr ""
@@ -6346,10 +6612,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6686,6 +6948,11 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "Tạo nodes mới."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "Tạo"
@@ -6863,6 +7130,27 @@ msgid "TileSet"
msgstr "Xuất Tile Set"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Input Default Port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "Nhân đôi Node(s)"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6878,6 +7166,14 @@ msgstr ""
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 ""
@@ -6891,7 +7187,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -6903,6 +7208,10 @@ msgid "Exporting All"
msgstr ""
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -7527,7 +7836,6 @@ msgid "Project Settings (project.godot)"
msgstr ""
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
-#, fuzzy
msgid "General"
msgstr "Tổng quan"
@@ -7896,6 +8204,10 @@ 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 Node(s)?"
msgstr "Xóa Node(s)?"
@@ -7930,6 +8242,11 @@ msgid "Make Local"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "Tạo Scene Mới"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "Tạo Root Node:"
@@ -8344,6 +8661,18 @@ msgid "Set From Tree"
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 "Shortcuts"
msgstr ""
@@ -8552,6 +8881,10 @@ msgid "GridMap Duplicate Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -8847,10 +9180,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -8933,6 +9262,10 @@ 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 ""
@@ -9799,9 +10132,6 @@ msgstr ""
#~ msgid "Out-In"
#~ msgstr "Ngoài-Trong"
-#~ msgid "Change Anim Loop"
-#~ msgstr "Äổi vòng lặp Anim"
-
#~ msgid "Anim Create Typed Value Key"
#~ msgstr "Tạo Key để nhập giá trị Anim"
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index 770b249d11..f4fa330de9 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -45,7 +45,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Chinese (Simplified) (Godot Engine)\n"
"POT-Creation-Date: 2018-01-20 12:15+0200\n"
-"PO-Revision-Date: 2019-02-18 08:54+0000\n"
+"PO-Revision-Date: 2019-02-21 21:17+0000\n"
"Last-Translator: yzt <834950797@qq.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hans/>\n"
@@ -120,6 +120,16 @@ msgstr "å¤åˆ¶å·²é€‰å¸§"
msgid "Delete Selected Key(s)"
msgstr "删除已选帧"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "添加顶点"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "移动点"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "å¤åˆ¶å…³é”®å¸§"
@@ -149,6 +159,16 @@ msgid "Anim Change Call"
msgstr "修改回调"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 "属性轨é“"
@@ -198,6 +218,11 @@ msgid "Anim Clips:"
msgstr "动画剪辑:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "修改数组值"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr "切æ¢å½“å‰è½¨é“开关。"
@@ -222,6 +247,11 @@ msgid "Time (s): "
msgstr "时间(秒): "
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "å¯ç”¨å¤šæ™®å‹’效应"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "è¿žç»­"
@@ -272,6 +302,21 @@ msgid "Delete Key(s)"
msgstr "删除帧"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "é‡å‘½å动画:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "æ’值模å¼"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "修改循环"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "移除轨é“"
@@ -313,6 +358,16 @@ msgid "Anim Insert Key"
msgstr "æ’入关键帧"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "修改FPS"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "é‡æŽ’åºAutoload"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr "å˜æ¢è½¨è¿¹ä»…适用于基于空间的节点。"
@@ -341,6 +396,11 @@ msgid "Not possible to add a new track without a root"
msgstr "无法在没有root的情况下添加新轨é“"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "添加轨é“"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr "轨é“路径无效,因此无法添加键。"
@@ -349,10 +409,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr "Trackä¸æ˜¯Spatial类型,ä¸èƒ½ä½œä¸ºé”®å€¼æ’å…¥"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "3Då˜æ¢è½¨é“"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "调用方法轨é“"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr "方法未找到: "
@@ -365,6 +440,10 @@ msgid "Clipboard is empty"
msgstr "剪贴æ¿æ˜¯ç©ºçš„"
#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr "粘贴轨é“"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr "缩放关键帧"
@@ -407,10 +486,6 @@ msgid "Copy Tracks"
msgstr "å¤åˆ¶è½¨é“"
#: editor/animation_track_editor.cpp
-msgid "Paste Tracks"
-msgstr "粘贴轨é“"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "缩放选中项"
@@ -510,6 +585,19 @@ msgstr "选择è¦å¤åˆ¶çš„轨é“:"
msgid "Copy"
msgstr "å¤åˆ¶"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "修改数组大å°"
@@ -579,9 +667,8 @@ msgid "Warnings"
msgstr "警告"
#: editor/code_editor.cpp
-#, fuzzy
msgid "Line and column numbers."
-msgstr "è¡Œå·å’Œåˆ—å·"
+msgstr "è¡Œå·å’Œåˆ—å·ã€‚"
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
@@ -1129,9 +1216,8 @@ msgid "Add Bus"
msgstr "添加Bus"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "将音频Bus布局ä¿å­˜ä¸º..."
+msgstr "将新的音频总线添加到此布局。"
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1306,6 +1392,12 @@ msgstr "目标路径找ä¸åˆ°å¯¼å‡ºæ¨¡ç‰ˆï¼š"
msgid "Packing"
msgstr "打包中"
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1870,6 +1962,16 @@ msgid "Save changes to '%s' before closing?"
msgstr "在关闭å‰ä¿å­˜æ›´æ”¹åˆ° %s å—?"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Saved %s modified resource(s)."
+msgstr "加载资æºå¤±è´¥ã€‚"
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "A root node is required to save the scene."
+msgstr "大图导入仅支æŒä¸€ä¸ªè¾“入文件。"
+
+#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "场景å¦å­˜ä¸º..."
@@ -2369,9 +2471,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 Always"
@@ -3469,12 +3570,49 @@ msgstr "加载..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Move Node Point"
+msgstr "移动点"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Limits"
+msgstr "更改混åˆæ—¶é—´"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace1D Labels"
+msgstr "更改混åˆæ—¶é—´"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "This type of node can't be used. Only root nodes are allowed."
msgstr "此类型的节点ä¸èƒ½è¢«ä½¿ç”¨ã€‚ä»…å…许使用根节点。"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Node Point"
+msgstr "添加节点"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "添加动画"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3516,6 +3654,31 @@ msgid "Triangle already exists"
msgstr "三角形已ç»å­˜åœ¨"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Triangle"
+msgstr "添加å˜é‡"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Limits"
+msgstr "更改混åˆæ—¶é—´"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Change BlendSpace2D Labels"
+msgstr "更改混åˆæ—¶é—´"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Point"
+msgstr "移除路径顶点"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Remove BlendSpace2D Triangle"
+msgstr "删除å˜é‡"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr "BlendSpace2D ä¸å±žäºŽä»»ä½• AnimationTree 节点。"
@@ -3524,6 +3687,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr "ä¸å­˜åœ¨ä»»ä½•ä¸‰è§’形,因此ä¸ä¼šæœ‰ä»»ä½•æ··æ•ˆæžœåˆäº§ç”Ÿã€‚"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "切æ¢å…¨å±€AutoLoad"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr "通过连接点创建三角形。"
@@ -3541,6 +3709,11 @@ msgid "Blend:"
msgstr "æ··åˆ:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "æè´¨å˜æ›´"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
msgstr "编辑筛选器"
@@ -3550,11 +3723,55 @@ msgid "Output node can't be added to the blend tree."
msgstr "输出节点ä¸èƒ½è¢«æ·»åŠ åˆ°æ··åˆæ ‘。"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "从树中添加节点"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "移动模å¼"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr "无法连接,端å£å¯èƒ½è¢«å ç”¨æˆ–者连接无效。"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "已连接"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "已断开"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "新建动画"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "删除节点"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "切æ¢å½“å‰è½¨é“开关。"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "修改区域设置筛选模å¼"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr "没有设置动画播放器,因此无法获å–轨é“å称。"
@@ -3570,6 +3787,12 @@ msgid ""
msgstr "动画播放器没有åˆæ³•çš„根节点路径,因此无法获å–轨é“å称。"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "节点å称"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr "添加节点.."
@@ -3795,6 +4018,21 @@ msgid "Cross-Animation Blend Times"
msgstr "跨动画时间混åˆ"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "移动模å¼"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "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 "终点"
@@ -3823,6 +4061,20 @@ msgid "No playback resource set at path: %s."
msgstr "在路径: %s 下没有任何播放资æºã€‚"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "已移除:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Transition Removed"
+msgstr "过渡节点"
+
+#: 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"
@@ -4629,6 +4881,10 @@ msgstr "æŒ‰ä½ Shift å¯å•ç‹¬ç¼–辑切线"
msgid "Bake GI Probe"
msgstr "渲染GI Probe"
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
msgstr "第%d项"
@@ -5150,7 +5406,7 @@ msgstr "创建UV贴图"
msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
-msgstr ""
+msgstr "多边形2d 具有内部顶点, å› æ­¤ä¸èƒ½å†åœ¨è§†å£ä¸­å¯¹å…¶è¿›è¡Œç¼–辑。"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon & UV"
@@ -5768,6 +6024,16 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr "该骨架没有骨骼绑定,请创建一些 Bone2D 骨骼å­èŠ‚点。"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "制作放æ¾å§¿åŠ¿ï¼ˆä»Žéª¨éª¼ï¼‰"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Set Rest Pose to Bones"
+msgstr "制作放æ¾å§¿åŠ¿ï¼ˆä»Žéª¨éª¼ï¼‰"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr "2D 骨骼节点"
@@ -5876,10 +6142,6 @@ msgid "Vertices"
msgstr "顶点"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr "帧数"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr "俯视图(Top View)。"
@@ -5924,7 +6186,8 @@ msgid "Rear"
msgstr "åŽæ–¹"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+#, fuzzy
+msgid "Align with View"
msgstr "与视图对é½"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6016,6 +6279,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr "é”定视角旋转"
@@ -6024,6 +6293,11 @@ msgid "XForm Dialog"
msgstr "XForm对è¯æ¡†"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Nodes To Floor"
+msgstr "å¸é™„到地é¢"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)"
msgstr "é€‰æ‹©æ¨¡å¼ (Q)"
@@ -6303,10 +6577,6 @@ msgid "Add Empty"
msgstr "添加空白帧"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr "修改循环"
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr "修改FPS"
@@ -6632,6 +6902,11 @@ msgid "Erase bitmask."
msgstr "擦除ä½æŽ©ç ã€‚"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Create a new rectangle."
+msgstr "创建新节点。"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
msgstr "创建新多边形。"
@@ -6809,6 +7084,29 @@ msgid "TileSet"
msgstr "瓦片集"
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Set Input Default Port"
+msgstr "将默认设置为 '%s'"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to Visual Shader"
+msgstr "å¯è§†ç€è‰²å™¨"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "å¤åˆ¶èŠ‚点"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr "顶点"
@@ -6824,6 +7122,16 @@ msgstr "ç¯å…‰"
msgid "VisualShader"
msgstr "å¯è§†ç€è‰²å™¨"
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "编辑ç£è´´ä¼˜å…ˆçº§"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "ç€è‰²å™¨å˜æ›´"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "å¯æ‰§è¡Œçš„"
@@ -6837,8 +7145,17 @@ msgid "Delete preset '%s'?"
msgstr "删除当å‰çš„ '%s' ?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
-msgstr "没有此平å°çš„导出模æ¿:"
+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"
@@ -6849,6 +7166,10 @@ msgid "Exporting All"
msgstr "全部导出"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr "没有此平å°çš„导出模æ¿:"
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr "预设"
@@ -7857,6 +8178,11 @@ msgid "Instantiated scenes can't become root"
msgstr "实例化的场景ä¸èƒ½æˆä¸ºæ ¹èŠ‚点"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "创建场景根节点"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr "确定è¦åˆ é™¤èŠ‚点å—?"
@@ -7891,6 +8217,11 @@ msgid "Make Local"
msgstr "使用本地"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "New Scene Root"
+msgstr "创建场景根节点"
+
+#: editor/scene_tree_dock.cpp
msgid "Create Root Node:"
msgstr "创建根节点:"
@@ -8315,6 +8646,21 @@ msgid "Set From Tree"
msgstr "从场景树设置"
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "æ¸å‡º"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "å¿«æ·é”®"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "编辑锚点"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "å¿«æ·é”®"
@@ -8519,6 +8865,10 @@ msgid "GridMap Duplicate Selection"
msgstr "å¤åˆ¶é€‰ä¸­é¡¹"
#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr "绘制栅格图"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr "网格映射"
@@ -8814,10 +9164,6 @@ msgid "Change Expression"
msgstr "更改表达å¼"
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "添加节点"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr "删除 VisualScript 节点"
@@ -8898,6 +9244,11 @@ msgid "Change Input Value"
msgstr "更改输入值"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
+msgid "Resize Comment"
+msgstr "调整 CanvasItem 尺寸"
+
+#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
msgstr "无法å¤åˆ¶å‡½æ•°èŠ‚点。"
@@ -9615,9 +9966,8 @@ msgid "Switch between hexadecimal and code values."
msgstr "在å六进制值和代ç å€¼ä¹‹é—´åˆ‡æ¢ã€‚"
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Add current color as a preset."
-msgstr "将当å‰é¢œè‰²æ·»åŠ ä¸ºé¢„设"
+msgstr "将当å‰é¢œè‰²æ·»åŠ ä¸ºé¢„设。"
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -9706,6 +10056,9 @@ msgstr "对uniform的赋值。"
msgid "Varyings can only be assigned in vertex function."
msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸­æŒ‡å®šã€‚"
+#~ msgid "FPS"
+#~ msgstr "帧数"
+
#~ msgid "Warnings:"
#~ msgstr "警告:"
@@ -9876,9 +10229,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸­æŒ‡å®šã€‚"
#~ msgid "Convert To Lowercase"
#~ msgstr "转æ¢ä¸ºå°å†™"
-#~ msgid "Snap To Floor"
-#~ msgstr "å¸é™„到地é¢"
-
#~ msgid "Rotate 0 degrees"
#~ msgstr "旋转0度"
@@ -10414,9 +10764,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸­æŒ‡å®šã€‚"
#~ msgid "Added:"
#~ msgstr "已添加:"
-#~ msgid "Removed:"
-#~ msgstr "已移除:"
-
#~ msgid "Could not save atlas subtexture:"
#~ msgstr "无法ä¿å­˜ç²¾çµé›†å­è´´å›¾:"
@@ -10681,9 +11028,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸­æŒ‡å®šã€‚"
#~ msgid "Error importing:"
#~ msgstr "导入出错:"
-#~ msgid "Only one file is required for large texture."
-#~ msgstr "大图导入仅支æŒä¸€ä¸ªè¾“入文件。"
-
#~ msgid "Max Texture Size:"
#~ msgstr "最大纹ç†å°ºå¯¸:"
@@ -10912,9 +11256,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸­æŒ‡å®šã€‚"
#~ msgid "Edit Groups"
#~ msgstr "编辑分组"
-#~ msgid "GridMap Paint"
-#~ msgstr "绘制栅格图"
-
#~ msgid "Tiles"
#~ msgstr "ç –å—(Tiles)"
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index 6e72949b92..662dbaddf2 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -88,6 +88,16 @@ msgstr "複製 Selection"
msgid "Delete Selected Key(s)"
msgstr "刪除é¸ä¸­æª”案"
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Add Bezier Point"
+msgstr "新增訊號"
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "下移"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "複製動畫幀"
@@ -119,6 +129,16 @@ msgid "Anim Change Call"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 ""
@@ -172,6 +192,10 @@ 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 ""
@@ -199,6 +223,11 @@ msgid "Time (s): "
msgstr "時間:"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "啟用"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "連續"
@@ -253,6 +282,21 @@ msgid "Delete Key(s)"
msgstr "移除動畫幀"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "更改動畫å稱:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "無干擾模å¼"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "更改動畫循環"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "移除動畫軌跡"
@@ -301,6 +345,16 @@ msgid "Anim Insert Key"
msgstr "å‹•æ™æ’入關éµå¹€ï¼Ÿ"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "更改動畫å稱:"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "é‡æ–°æŽ’例Autoloads"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -325,6 +379,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "新增動畫軌跡"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -333,10 +392,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "æ’入軌跡和關éµå¹€"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "æ’入軌跡和關éµå¹€"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -350,6 +424,11 @@ msgid "Clipboard is empty"
msgstr "路徑為空"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "貼上åƒæ•¸"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -396,11 +475,6 @@ msgid "Copy Tracks"
msgstr "複製åƒæ•¸"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "貼上åƒæ•¸"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "縮放selection"
@@ -513,6 +587,19 @@ msgstr ""
msgid "Copy"
msgstr "複製"
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 ""
@@ -1357,6 +1444,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1952,6 +2045,15 @@ msgid "Save changes to '%s' before closing?"
msgstr "關閉å‰è¦å…ˆå„²å­˜å° '%s' 任何更改嗎?"
#: editor/editor_node.cpp
+#, fuzzy
+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 "把場景å¦å­˜ç‚º"
@@ -3641,12 +3743,47 @@ msgstr "載入"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Node Point"
+msgstr "新增節點"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "新增動畫"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3688,6 +3825,28 @@ msgid "Triangle already exists"
msgstr "錯誤:動畫å稱已存在ï¼"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+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 ""
@@ -3696,6 +3855,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "é–‹ï¼é—œè‡ªå‹•æ’­æ”¾"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3713,6 +3877,11 @@ msgid "Blend:"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "當改變時更新"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#, fuzzy
msgid "Edit Filters"
@@ -3723,11 +3892,55 @@ msgid "Output node can't be added to the blend tree."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Add Node to BlendTree"
+msgstr "由主幹新增節點"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "移動模å¼"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "連到"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "中斷"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "æ–°çš„å‹•ç•«å稱:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "ä¸é¸"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "(ä¸ï¼‰é¡¯ç¤ºæœ€æ„›"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "更改動畫長度"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3743,6 +3956,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "有效å稱"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Add Node..."
@@ -3982,6 +4201,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "移動模å¼"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "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 ""
@@ -4011,6 +4245,20 @@ msgid "No playback resource set at path: %s."
msgstr "ä¸åœ¨è³‡æºè·¯å¾‘。"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "已移除:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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"
@@ -4839,6 +5087,10 @@ msgstr ""
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 ""
@@ -6029,6 +6281,15 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Create Rest Pose from Bones"
+msgstr "é‹è¡Œå ´æ™¯"
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
msgstr ""
@@ -6143,10 +6404,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -6191,7 +6448,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6288,6 +6545,12 @@ msgid "Freelook Speed Modifier"
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
#, fuzzy
msgid "View Rotation Locked"
msgstr "本地化"
@@ -6297,6 +6560,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Select Mode (Q)"
msgstr "é¸æ“‡æ¨¡å¼"
@@ -6583,10 +6850,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6930,6 +7193,11 @@ msgstr "縮放selection"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "新增"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "縮放selection"
@@ -7114,6 +7382,27 @@ msgid "TileSet"
msgstr "TileSet..."
#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Input Default Port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "複製動畫幀"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -7129,6 +7418,16 @@ msgstr ""
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Edit Visual Property"
+msgstr "檔案"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Visual Shader Mode Changed"
+msgstr "當改變時更新"
+
#: editor/project_export.cpp
#, fuzzy
msgid "Runnable"
@@ -7145,7 +7444,16 @@ msgid "Delete preset '%s'?"
msgstr "è¦åˆªé™¤é¸ä¸­æª”案?"
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -7158,6 +7466,10 @@ msgid "Exporting All"
msgstr "匯出"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -8176,6 +8488,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "儲存場景"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8211,6 +8528,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "儲存場景"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "新增資料夾"
@@ -8649,6 +8971,19 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "縮放selection"
+
+#: editor/settings_config_dialog.cpp
+msgid "Restore Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Change Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr ""
@@ -8862,6 +9197,11 @@ msgid "GridMap Duplicate Selection"
msgstr "複製 Selection"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "設定"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -9171,10 +9511,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr "新增節點"
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -9261,6 +9597,10 @@ 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 ""
@@ -10157,17 +10497,6 @@ msgstr ""
#~ msgid "Anim Add Key"
#~ msgstr "新增動畫幀"
-#~ msgid "Transitions"
-#~ msgstr "éŽæ¸¡"
-
-#, fuzzy
-#~ msgid "Change Anim Len"
-#~ msgstr "更改動畫長度"
-
-#, fuzzy
-#~ msgid "Change Anim Loop"
-#~ msgstr "更改動畫循環"
-
#~ msgid "Length (s):"
#~ msgstr "時長(秒):"
@@ -10302,9 +10631,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "已加入:"
-#~ msgid "Removed:"
-#~ msgstr "已移除:"
-
#, fuzzy
#~ msgid "Tiles"
#~ msgstr "檔案"
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index 4d9b3b578f..e267264d11 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -93,6 +93,15 @@ msgstr "複製所é¸ç•«æ ¼"
msgid "Delete Selected Key(s)"
msgstr "刪除所é¸ç•«æ ¼"
+#: editor/animation_bezier_editor.cpp
+msgid "Add Bezier Point"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+#, fuzzy
+msgid "Move Bezier Points"
+msgstr "移除"
+
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
msgstr "複製關éµç•«æ ¼"
@@ -122,6 +131,16 @@ msgid "Anim Change Call"
msgstr "更改回調"
#: editor/animation_track_editor.cpp
+#, fuzzy
+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 ""
@@ -173,6 +192,11 @@ msgid "Anim Clips:"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Track Path"
+msgstr "調整陣列資料"
+
+#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
msgstr ""
@@ -199,6 +223,11 @@ msgid "Time (s): "
msgstr "步驟 :"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Toggle Track Enabled"
+msgstr "啟用"
+
+#: editor/animation_track_editor.cpp
msgid "Continuous"
msgstr "連續"
@@ -251,6 +280,21 @@ msgid "Delete Key(s)"
msgstr "刪除動畫關éµç•«æ ¼"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Update Mode"
+msgstr "改變字典 value"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Interpolation Mode"
+msgstr "改變字典 value"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Loop Mode"
+msgstr "變更動畫迴圈"
+
+#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
msgstr "刪除動畫軌"
@@ -293,6 +337,16 @@ msgid "Anim Insert Key"
msgstr "新增關éµç•«æ ¼"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Change Animation Step"
+msgstr "變更動畫長度"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Rearrange Tracks"
+msgstr "é‡æ–°æŽ’列 Autoload"
+
+#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
@@ -317,6 +371,11 @@ msgid "Not possible to add a new track without a root"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Bezier Track"
+msgstr "添加動畫軌"
+
+#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
msgstr ""
@@ -325,10 +384,25 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add Transform Track Key"
+msgstr "動畫新增軌跡與按éµ"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Method Track Key"
+msgstr "動畫新增軌跡與按éµ"
+
+#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
msgstr ""
@@ -341,6 +415,11 @@ msgid "Clipboard is empty"
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Paste Tracks"
+msgstr "貼上åƒæ•¸"
+
+#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
msgstr ""
@@ -387,11 +466,6 @@ msgid "Copy Tracks"
msgstr "複製åƒæ•¸"
#: editor/animation_track_editor.cpp
-#, fuzzy
-msgid "Paste Tracks"
-msgstr "貼上åƒæ•¸"
-
-#: editor/animation_track_editor.cpp
msgid "Scale Selection"
msgstr "縮放所é¸"
@@ -495,6 +569,19 @@ msgstr ""
msgid "Copy"
msgstr ""
+#: editor/animation_track_editor_plugins.cpp
+#, fuzzy
+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 "調整陣列大å°"
@@ -1324,6 +1411,12 @@ msgstr ""
msgid "Packing"
msgstr ""
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable support "
+"in Project Settings."
+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
@@ -1896,6 +1989,14 @@ 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 "å¦å­˜å ´æ™¯ç‚º..."
@@ -3545,12 +3646,47 @@ msgstr "載入"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "Add Node Point"
+msgstr "移除"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Add Animation Point"
+msgstr "動畫空間。"
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#, fuzzy
+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 ""
@@ -3592,6 +3728,28 @@ msgid "Triangle already exists"
msgstr "Autoload「%sã€å·²ç¶“存在!"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+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 ""
@@ -3600,6 +3758,11 @@ msgid "No triangles exist, so no blending can take place."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
+msgid "Toggle Auto Triangles"
+msgstr "切æ›æœ€æ„›"
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
msgstr ""
@@ -3617,6 +3780,11 @@ msgid "Blend:"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Parameter Changed"
+msgstr "正在儲存變更..."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#, fuzzy
msgid "Edit Filters"
@@ -3627,11 +3795,54 @@ 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
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Node Moved"
+msgstr "節點å稱:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Connected"
+msgstr "連接..."
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Nodes Disconnected"
+msgstr "æ–·ç·š"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Set Animation"
+msgstr "動畫最佳化"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+msgid "Delete Node"
+msgstr "刪除"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Toggle Filter On/Off"
+msgstr "切æ›æœ€æ„›"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#, fuzzy
+msgid "Change Filter"
+msgstr "變更é¡é ­å°ºå¯¸"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
@@ -3647,6 +3858,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Renamed"
+msgstr "節點å稱:"
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
msgstr ""
@@ -3880,6 +4097,21 @@ msgid "Cross-Animation Blend Times"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Move Node"
+msgstr "移動 Autoload"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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 ""
@@ -3909,6 +4141,20 @@ msgid "No playback resource set at path: %s."
msgstr "在資æºè·¯å¾‘中找ä¸åˆ°"
#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+msgid "Node Removed"
+msgstr "已刪除:"
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#, fuzzy
+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"
@@ -4728,6 +4974,10 @@ msgstr ""
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 ""
@@ -5911,6 +6161,14 @@ 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
#, fuzzy
msgid "Skeleton2D"
msgstr "單例"
@@ -6023,10 +6281,6 @@ msgid "Vertices"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "FPS"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
msgstr ""
@@ -6071,7 +6325,7 @@ msgid "Rear"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
+msgid "Align with View"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6166,6 +6420,12 @@ msgid "Freelook Speed Modifier"
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 "View Rotation Locked"
msgstr ""
@@ -6174,6 +6434,10 @@ msgid "XForm Dialog"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes To Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Select Mode (Q)"
msgstr "僅é¸æ“‡å€åŸŸ"
@@ -6456,10 +6720,6 @@ msgid "Add Empty"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
msgstr ""
@@ -6800,6 +7060,11 @@ msgstr "所有的é¸æ“‡"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
+msgid "Create a new rectangle."
+msgstr "新增 %s"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Create a new polygon."
msgstr "新增資料夾"
@@ -6981,6 +7246,27 @@ msgid "TileSet"
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
+#, fuzzy
+msgid "Duplicate Nodes"
+msgstr "複製動畫關éµç•«æ ¼"
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
msgstr ""
@@ -6997,6 +7283,15 @@ msgstr ""
msgid "VisualShader"
msgstr ""
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
+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 ""
@@ -7010,7 +7305,16 @@ msgid "Delete preset '%s'?"
msgstr ""
#: editor/project_export.cpp
-msgid "Export templates for this platform are missing/corrupted:"
+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
@@ -7023,6 +7327,10 @@ msgid "Exporting All"
msgstr "輸出"
#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
msgid "Presets"
msgstr ""
@@ -8029,6 +8337,11 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Make node as Root"
+msgstr "儲存場景"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
msgstr ""
@@ -8064,6 +8377,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "New Scene Root"
+msgstr "儲存場景"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Create Root Node:"
msgstr "新增資料夾"
@@ -8495,6 +8813,21 @@ msgid "Set From Tree"
msgstr ""
#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Erase Shortcut"
+msgstr "æ·å¾‘"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Restore Shortcut"
+msgstr "æ·å¾‘"
+
+#: editor/settings_config_dialog.cpp
+#, fuzzy
+msgid "Change Shortcut"
+msgstr "æ·å¾‘"
+
+#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
msgstr "æ·å¾‘"
@@ -8719,6 +9052,11 @@ msgid "GridMap Duplicate Selection"
msgstr "複製所é¸"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
+msgid "GridMap Paint"
+msgstr "專案設定"
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
msgstr ""
@@ -9024,10 +9362,6 @@ msgid "Change Expression"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
msgstr ""
@@ -9112,6 +9446,10 @@ 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 ""
@@ -10011,12 +10349,6 @@ msgstr ""
#~ msgid "Out-In"
#~ msgstr "外-內"
-#~ msgid "Change Anim Len"
-#~ msgstr "變更動畫長度"
-
-#~ msgid "Change Anim Loop"
-#~ msgstr "變更動畫迴圈"
-
#, fuzzy
#~ msgid "Anim Create Typed Value Key"
#~ msgstr "動畫新增具類別之éµå€¼"
@@ -10096,9 +10428,6 @@ msgstr ""
#~ msgid "Added:"
#~ msgstr "已新增:"
-#~ msgid "Removed:"
-#~ msgstr "已刪除:"
-
#~ msgid "Ctrl+"
#~ msgstr "Ctrl+"
diff --git a/modules/csg/csg.cpp b/modules/csg/csg.cpp
index fb7f829cf0..0eb539b182 100644
--- a/modules/csg/csg.cpp
+++ b/modules/csg/csg.cpp
@@ -953,13 +953,15 @@ void CSGBrushOperation::_merge_poly(MeshMerge &mesh, int p_face_idx, const Build
//duplicate point
int insert_at = with_outline_vertex;
- polys.write[i].points.insert(insert_at, polys[i].points[insert_at]);
+ int point = polys[i].points[insert_at];
+ polys.write[i].points.insert(insert_at, point);
insert_at++;
//insert all others, outline should be backwards (must check)
int holesize = polys[i].holes[j].size();
for (int k = 0; k <= holesize; k++) {
int idx = (from_hole_vertex + k) % holesize;
- polys.write[i].points.insert(insert_at, polys[i].holes[j][idx]);
+ int point2 = polys[i].holes[j][idx];
+ polys.write[i].points.insert(insert_at, point2);
insert_at++;
}
diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp
index dd9b36fd8c..e07911fa44 100644
--- a/modules/gdscript/gdscript.cpp
+++ b/modules/gdscript/gdscript.cpp
@@ -152,12 +152,13 @@ Variant GDScript::_new(const Variant **p_args, int p_argcount, Variant::CallErro
}
ERR_FAIL_COND_V(_baseptr->native.is_null(), Variant());
-
if (_baseptr->native.ptr()) {
owner = _baseptr->native->instance();
} else {
owner = memnew(Reference); //by default, no base means use reference
}
+ ERR_EXPLAIN("Can't inherit from a virtual class");
+ ERR_FAIL_COND_V(!owner, Variant());
Reference *r = Object::cast_to<Reference>(owner);
if (r) {
diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp
index a7ac7f46c5..47be3a9959 100644
--- a/modules/mono/csharp_script.cpp
+++ b/modules/mono/csharp_script.cpp
@@ -1528,6 +1528,15 @@ MonoObject *CSharpInstance::_internal_new_managed() {
CRASH_COND(!gchandle.is_valid());
#endif
+ // Search the constructor first, to fail with an error if it's not found before allocating anything else.
+ GDMonoMethod *ctor = script->script_class->get_method(CACHED_STRING_NAME(dotctor), 0);
+ if (ctor == NULL) {
+ ERR_PRINTS("Cannot create script instance because the class does not define a default constructor: " + script->get_path());
+
+ ERR_EXPLAIN("Constructor not found");
+ ERR_FAIL_V(NULL);
+ }
+
CSharpLanguage::get_singleton()->release_script_gchandle(gchandle);
ERR_FAIL_NULL_V(owner, NULL);
@@ -1557,7 +1566,6 @@ MonoObject *CSharpInstance::_internal_new_managed() {
CACHED_FIELD(GodotObject, ptr)->set_value_raw(mono_object, owner);
// Construct
- GDMonoMethod *ctor = script->script_class->get_method(CACHED_STRING_NAME(dotctor), 0);
ctor->invoke_raw(mono_object, NULL);
return mono_object;
@@ -1900,13 +1908,21 @@ bool CSharpScript::_update_exports() {
MonoObject *tmp_object = mono_object_new(SCRIPTS_DOMAIN, script_class->get_mono_ptr());
if (!tmp_object) {
- ERR_PRINT("Failed to create temporary MonoObject");
+ ERR_PRINT("Failed to allocate temporary MonoObject");
return false;
}
uint32_t tmp_pinned_gchandle = MonoGCHandle::new_strong_handle_pinned(tmp_object); // pin it (not sure if needed)
GDMonoMethod *ctor = script_class->get_method(CACHED_STRING_NAME(dotctor), 0);
+
+ if (ctor == NULL) {
+ ERR_PRINTS("Cannot construct temporary MonoObject because the class does not define a default constructor: " + get_path());
+
+ ERR_EXPLAIN("Constructor not found");
+ ERR_FAIL_V(NULL);
+ }
+
MonoException *ctor_exc = NULL;
ctor->invoke(tmp_object, NULL, &ctor_exc);
@@ -2387,6 +2403,18 @@ StringName CSharpScript::get_instance_base_type() const {
CSharpInstance *CSharpScript::_create_instance(const Variant **p_args, int p_argcount, Object *p_owner, bool p_isref, Variant::CallError &r_error) {
/* STEP 1, CREATE */
+
+ // Search the constructor first, to fail with an error if it's not found before allocating anything else.
+ GDMonoMethod *ctor = script_class->get_method(CACHED_STRING_NAME(dotctor), p_argcount);
+ if (ctor == NULL) {
+ if (p_argcount == 0) {
+ ERR_PRINTS("Cannot create script instance because the class does not define a default constructor: " + get_path());
+ }
+
+ ERR_EXPLAIN("Constructor not found");
+ ERR_FAIL_V(NULL);
+ }
+
Ref<Reference> ref;
if (p_isref) {
// Hold it alive. Important if we have to dispose a script instance binding before creating the CSharpInstance.
@@ -2453,7 +2481,6 @@ CSharpInstance *CSharpScript::_create_instance(const Variant **p_args, int p_arg
CACHED_FIELD(GodotObject, ptr)->set_value_raw(mono_object, instance->owner);
// Construct
- GDMonoMethod *ctor = script_class->get_method(CACHED_STRING_NAME(dotctor), p_argcount);
ctor->invoke(mono_object, p_args);
/* STEP 3, PARTY */
diff --git a/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj b/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj
index 9a5dd24bb1..2871c041f5 100644
--- a/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj
+++ b/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj
@@ -41,6 +41,7 @@
<Compile Include="Build\BuildSystem.cs" />
<Compile Include="Editor\MonoDevelopInstance.cs" />
<Compile Include="Project\ProjectExtensions.cs" />
+ <Compile Include="Project\IdentifierUtils.cs" />
<Compile Include="Project\ProjectGenerator.cs" />
<Compile Include="Project\ProjectUtils.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
diff --git a/modules/mono/editor/GodotSharpTools/Project/IdentifierUtils.cs b/modules/mono/editor/GodotSharpTools/Project/IdentifierUtils.cs
new file mode 100644
index 0000000000..83e2d2cf8d
--- /dev/null
+++ b/modules/mono/editor/GodotSharpTools/Project/IdentifierUtils.cs
@@ -0,0 +1,199 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+
+namespace GodotSharpTools.Project
+{
+ public static class IdentifierUtils
+ {
+ public static string SanitizeQualifiedIdentifier(string qualifiedIdentifier, bool allowEmptyIdentifiers)
+ {
+ if (string.IsNullOrEmpty(qualifiedIdentifier))
+ throw new ArgumentException($"{nameof(qualifiedIdentifier)} cannot be empty", nameof(qualifiedIdentifier));
+
+ string[] identifiers = qualifiedIdentifier.Split(new[] { '.' });
+
+ for (int i = 0; i < identifiers.Length; i++)
+ {
+ identifiers[i] = SanitizeIdentifier(identifiers[i], allowEmpty: allowEmptyIdentifiers);
+ }
+
+ return string.Join(".", identifiers);
+ }
+
+ public static string SanitizeIdentifier(string identifier, bool allowEmpty)
+ {
+ if (string.IsNullOrEmpty(identifier))
+ {
+ if (allowEmpty)
+ return "Empty"; // Default value for empty identifiers
+
+ throw new ArgumentException($"{nameof(identifier)} cannot be empty if {nameof(allowEmpty)} is false", nameof(identifier));
+ }
+
+ if (identifier.Length > 511)
+ identifier = identifier.Substring(0, 511);
+
+ var identifierBuilder = new StringBuilder();
+ int startIndex = 0;
+
+ if (identifier[0] == '@')
+ {
+ identifierBuilder.Append('@');
+ startIndex += 1;
+ }
+
+ for (int i = startIndex; i < identifier.Length; i++)
+ {
+ char @char = identifier[i];
+
+ switch (Char.GetUnicodeCategory(@char))
+ {
+ case UnicodeCategory.UppercaseLetter:
+ case UnicodeCategory.LowercaseLetter:
+ case UnicodeCategory.TitlecaseLetter:
+ case UnicodeCategory.ModifierLetter:
+ case UnicodeCategory.LetterNumber:
+ case UnicodeCategory.OtherLetter:
+ identifierBuilder.Append(@char);
+ break;
+ case UnicodeCategory.NonSpacingMark:
+ case UnicodeCategory.SpacingCombiningMark:
+ case UnicodeCategory.ConnectorPunctuation:
+ case UnicodeCategory.DecimalDigitNumber:
+ // Identifiers may start with underscore
+ if (identifierBuilder.Length > startIndex || @char == '_')
+ identifierBuilder.Append(@char);
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (identifierBuilder.Length == startIndex)
+ {
+ // All characters were invalid so now it's empty. Fill it with something.
+ identifierBuilder.Append("Empty");
+ }
+
+ identifier = identifierBuilder.ToString();
+
+ if (identifier[0] != '@' && IsKeyword(identifier, anyDoubleUnderscore: true))
+ identifier = '@' + identifier;
+
+ return identifier;
+ }
+
+ static bool IsKeyword(string value, bool anyDoubleUnderscore)
+ {
+ // Identifiers that start with double underscore are meant to be used for reserved keywords.
+ // Only existing keywords are enforced, but it may be useful to forbid any identifier
+ // that begins with double underscore to prevent issues with future C# versions.
+ if (anyDoubleUnderscore)
+ {
+ if (value.Length > 2 && value[0] == '_' && value[1] == '_' && value[2] != '_')
+ return true;
+ }
+ else
+ {
+ if (_doubleUnderscoreKeywords.Contains(value))
+ return true;
+ }
+
+ return _keywords.Contains(value);
+ }
+
+ static HashSet<string> _doubleUnderscoreKeywords = new HashSet<string>
+ {
+ "__arglist",
+ "__makeref",
+ "__reftype",
+ "__refvalue",
+ };
+
+ static HashSet<string> _keywords = new HashSet<string>
+ {
+ "as",
+ "do",
+ "if",
+ "in",
+ "is",
+ "for",
+ "int",
+ "new",
+ "out",
+ "ref",
+ "try",
+ "base",
+ "bool",
+ "byte",
+ "case",
+ "char",
+ "else",
+ "enum",
+ "goto",
+ "lock",
+ "long",
+ "null",
+ "this",
+ "true",
+ "uint",
+ "void",
+ "break",
+ "catch",
+ "class",
+ "const",
+ "event",
+ "false",
+ "fixed",
+ "float",
+ "sbyte",
+ "short",
+ "throw",
+ "ulong",
+ "using",
+ "where",
+ "while",
+ "yield",
+ "double",
+ "extern",
+ "object",
+ "params",
+ "public",
+ "return",
+ "sealed",
+ "sizeof",
+ "static",
+ "string",
+ "struct",
+ "switch",
+ "typeof",
+ "unsafe",
+ "ushort",
+ "checked",
+ "decimal",
+ "default",
+ "finally",
+ "foreach",
+ "partial",
+ "private",
+ "virtual",
+ "abstract",
+ "continue",
+ "delegate",
+ "explicit",
+ "implicit",
+ "internal",
+ "operator",
+ "override",
+ "readonly",
+ "volatile",
+ "interface",
+ "namespace",
+ "protected",
+ "unchecked",
+ "stackalloc",
+ };
+ }
+}
diff --git a/modules/mono/editor/GodotSharpTools/Project/ProjectGenerator.cs b/modules/mono/editor/GodotSharpTools/Project/ProjectGenerator.cs
index 9135006172..89279c69a6 100644
--- a/modules/mono/editor/GodotSharpTools/Project/ProjectGenerator.cs
+++ b/modules/mono/editor/GodotSharpTools/Project/ProjectGenerator.cs
@@ -140,6 +140,9 @@ namespace GodotSharpTools.Project
public static ProjectRootElement CreateLibraryProject(string name, out ProjectPropertyGroupElement mainGroup)
{
+ if (string.IsNullOrEmpty(name))
+ throw new ArgumentException($"{nameof(name)} cannot be empty", nameof(name));
+
var root = ProjectRootElement.Create();
root.DefaultTargets = "Build";
@@ -149,7 +152,7 @@ namespace GodotSharpTools.Project
mainGroup.AddProperty("ProjectGuid", "{" + Guid.NewGuid().ToString().ToUpper() + "}");
mainGroup.AddProperty("OutputType", "Library");
mainGroup.AddProperty("OutputPath", Path.Combine("bin", "$(Configuration)"));
- mainGroup.AddProperty("RootNamespace", name);
+ mainGroup.AddProperty("RootNamespace", IdentifierUtils.SanitizeQualifiedIdentifier(name, allowEmptyIdentifiers: true));
mainGroup.AddProperty("AssemblyName", name);
mainGroup.AddProperty("TargetFrameworkVersion", "v4.5");
diff --git a/modules/mono/editor/script_class_parser.cpp b/modules/mono/editor/script_class_parser.cpp
index fcc58c22e8..6b2ec5cc20 100644
--- a/modules/mono/editor/script_class_parser.cpp
+++ b/modules/mono/editor/script_class_parser.cpp
@@ -322,6 +322,15 @@ Error ScriptClassParser::_parse_type_full_name(String &r_full_name) {
r_full_name += String(value);
+ if (code[idx] == '<') {
+ idx++;
+
+ // We don't mind if the base is generic, but we skip it any ways since this information is not needed
+ Error err = _skip_generic_type_params();
+ if (err)
+ return err;
+ }
+
if (code[idx] != '.') // We only want to take the next token if it's a period
return OK;
@@ -344,16 +353,6 @@ Error ScriptClassParser::_parse_class_base(Vector<String> &r_base) {
Token tk = get_token();
- bool generic = false;
- if (tk == TK_OP_LESS) {
- err = _skip_generic_type_params();
- if (err)
- return err;
- // We don't add it to the base list if it's generic
- generic = true;
- tk = get_token();
- }
-
if (tk == TK_COMMA) {
err = _parse_class_base(r_base);
if (err)
@@ -373,9 +372,7 @@ Error ScriptClassParser::_parse_class_base(Vector<String> &r_base) {
return ERR_PARSE_ERROR;
}
- if (!generic) {
- r_base.push_back(name);
- }
+ r_base.push_back(name);
return OK;
}
@@ -567,7 +564,7 @@ Error ScriptClassParser::parse(const String &p_code) {
if (full_name.length())
full_name += ".";
full_name += class_decl.name;
- OS::get_singleton()->print("%s", String("Ignoring generic class declaration: " + class_decl.name).utf8().get_data());
+ OS::get_singleton()->print("Ignoring generic class declaration: %s\n", class_decl.name.utf8().get_data());
}
}
} else if (tk == TK_IDENTIFIER && String(value) == "struct") {
diff --git a/modules/mono/glue/Managed/Files/Array.cs b/modules/mono/glue/Managed/Files/Array.cs
index 9c804eba64..1ee64f3b71 100644
--- a/modules/mono/glue/Managed/Files/Array.cs
+++ b/modules/mono/glue/Managed/Files/Array.cs
@@ -155,6 +155,11 @@ namespace Godot.Collections
godot_icall_Array_RemoveAt(GetPtr(), index);
}
+ public Error Resize(int newSize)
+ {
+ return godot_icall_Array_Resize(GetPtr(), newSize);
+ }
+
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
@@ -203,6 +208,9 @@ namespace Godot.Collections
internal extern static void godot_icall_Array_RemoveAt(IntPtr ptr, int index);
[MethodImpl(MethodImplOptions.InternalCall)]
+ internal extern static Error godot_icall_Array_Resize(IntPtr ptr, int newSize);
+
+ [MethodImpl(MethodImplOptions.InternalCall)]
internal extern static void godot_icall_Array_Generic_GetElementTypeInfo(Type elemType, out int elemTypeEncoding, out IntPtr elemTypeClass);
}
@@ -339,6 +347,11 @@ namespace Godot.Collections
objectArray.RemoveAt(index);
}
+ public Error Resize(int newSize)
+ {
+ return objectArray.Resize(newSize);
+ }
+
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
diff --git a/modules/mono/glue/collections_glue.cpp b/modules/mono/glue/collections_glue.cpp
index d905810d66..1065ff0868 100644
--- a/modules/mono/glue/collections_glue.cpp
+++ b/modules/mono/glue/collections_glue.cpp
@@ -130,6 +130,10 @@ void godot_icall_Array_RemoveAt(Array *ptr, int index) {
ptr->remove(index);
}
+Error godot_icall_Array_Resize(Array *ptr, int new_size) {
+ return ptr->resize(new_size);
+}
+
void godot_icall_Array_Generic_GetElementTypeInfo(MonoReflectionType *refltype, uint32_t *type_encoding, GDMonoClass **type_class) {
MonoType *elem_type = mono_reflection_type_get_type(refltype);
@@ -274,6 +278,7 @@ void godot_register_collections_icalls() {
mono_add_internal_call("Godot.Collections.Array::godot_icall_Array_Insert", (void *)godot_icall_Array_Insert);
mono_add_internal_call("Godot.Collections.Array::godot_icall_Array_Remove", (void *)godot_icall_Array_Remove);
mono_add_internal_call("Godot.Collections.Array::godot_icall_Array_RemoveAt", (void *)godot_icall_Array_RemoveAt);
+ mono_add_internal_call("Godot.Collections.Array::godot_icall_Array_Resize", (void *)godot_icall_Array_Resize);
mono_add_internal_call("Godot.Collections.Array::godot_icall_Array_Generic_GetElementTypeInfo", (void *)godot_icall_Array_Generic_GetElementTypeInfo);
mono_add_internal_call("Godot.Collections.Dictionary::godot_icall_Dictionary_Ctor", (void *)godot_icall_Dictionary_Ctor);
diff --git a/modules/mono/glue/collections_glue.h b/modules/mono/glue/collections_glue.h
index 52ca98b7f9..c0056d3bce 100644
--- a/modules/mono/glue/collections_glue.h
+++ b/modules/mono/glue/collections_glue.h
@@ -67,6 +67,8 @@ bool godot_icall_Array_Remove(Array *ptr, MonoObject *item);
void godot_icall_Array_RemoveAt(Array *ptr, int index);
+Error godot_icall_Array_Resize(Array *ptr, int new_size);
+
void godot_icall_Array_Generic_GetElementTypeInfo(MonoReflectionType *refltype, uint32_t *type_encoding, GDMonoClass **type_class);
// Dictionary
diff --git a/modules/opus/SCsub b/modules/opus/SCsub
index 508aec7057..cd5da75bab 100644
--- a/modules/opus/SCsub
+++ b/modules/opus/SCsub
@@ -12,121 +12,128 @@ if env['builtin_opus']:
thirdparty_dir = "#thirdparty/opus/"
thirdparty_sources = [
- "silk/tables_other.c",
- "silk/sum_sqr_shift.c",
- "silk/PLC.c",
- "silk/dec_API.c",
- "silk/decode_pulses.c",
- "silk/inner_prod_aligned.c",
- "silk/init_encoder.c",
- "silk/interpolate.c",
- "silk/stereo_encode_pred.c",
- "silk/decode_frame.c",
- "silk/NLSF_del_dec_quant.c",
- "silk/VAD.c",
- "silk/resampler_private_AR2.c",
- "silk/NLSF_unpack.c",
- "silk/resampler_down2.c",
- "silk/sort.c",
- "silk/resampler_private_IIR_FIR.c",
- "silk/resampler_down2_3.c",
- "silk/resampler_private_up2_HQ.c",
- "silk/tables_gain.c",
- "silk/stereo_find_predictor.c",
- "silk/stereo_quant_pred.c",
- "silk/NLSF_stabilize.c",
- "silk/ana_filt_bank_1.c",
- "silk/check_control_input.c",
- "silk/bwexpander.c",
- "silk/A2NLSF.c",
- "silk/LPC_inv_pred_gain.c",
- "silk/log2lin.c",
- "silk/process_NLSFs.c",
- "silk/sigm_Q15.c",
- "silk/VQ_WMat_EC.c",
- "silk/quant_LTP_gains.c",
- "silk/resampler_private_down_FIR.c",
- "silk/NLSF_decode.c",
- "silk/control_codec.c",
- "silk/NLSF_VQ_weights_laroia.c",
- "silk/decode_pitch.c",
- "silk/stereo_decode_pred.c",
- "silk/tables_pulses_per_block.c",
+
+ # Sync with opus_sources.mk
+ "opus.c",
+ "opus_decoder.c",
+ "opus_encoder.c",
+ "opus_multistream.c",
+ "opus_multistream_encoder.c",
+ "opus_multistream_decoder.c",
+ "repacketizer.c",
+
+ "analysis.c",
+ "mlp.c",
+ "mlp_data.c",
+
+ # Sync with libopusfile Makefile.am
+ "info.c",
+ "internal.c",
+ "opusfile.c",
+ "stream.c",
+
+ # Sync with celt_sources.mk
+ "celt/bands.c",
+ "celt/celt.c",
+ "celt/celt_encoder.c",
+ "celt/celt_decoder.c",
+ "celt/cwrs.c",
+ "celt/entcode.c",
+ "celt/entdec.c",
+ "celt/entenc.c",
+ "celt/kiss_fft.c",
+ "celt/laplace.c",
+ "celt/mathops.c",
+ "celt/mdct.c",
+ "celt/modes.c",
+ "celt/pitch.c",
+ "celt/celt_lpc.c",
+ "celt/quant_bands.c",
+ "celt/rate.c",
+ "celt/vq.c",
+ #"celt/arm/arm_celt_map.c",
+ #"celt/arm/armcpu.c",
+ #"celt/arm/celt_ne10_fft.c",
+ #"celt/arm/celt_ne10_mdct.c",
+ #"celt/arm/celt_neon_intr.c",
+
+ # Sync with silk_sources.mk
+ "silk/CNG.c",
+ "silk/code_signs.c",
"silk/init_decoder.c",
- "silk/table_LSF_cos.c",
"silk/decode_core.c",
- "silk/code_signs.c",
- "silk/enc_API.c",
- "silk/tables_LTP.c",
- "silk/pitch_est_tables.c",
- "silk/biquad_alt.c",
- "silk/encode_indices.c",
- "silk/tables_NLSF_CB_WB.c",
- "silk/debug.c",
+ "silk/decode_frame.c",
"silk/decode_parameters.c",
- "silk/tables_pitch_lag.c",
- "silk/NLSF2A.c",
- "silk/resampler.c",
"silk/decode_indices.c",
- "silk/NLSF_VQ.c",
- "silk/bwexpander_32.c",
- "silk/tables_NLSF_CB_NB_MB.c",
+ "silk/decode_pulses.c",
+ "silk/decoder_set_fs.c",
+ "silk/dec_API.c",
+ "silk/enc_API.c",
+ "silk/encode_indices.c",
"silk/encode_pulses.c",
+ "silk/gain_quant.c",
+ "silk/interpolate.c",
+ "silk/LP_variable_cutoff.c",
+ "silk/NLSF_decode.c",
+ "silk/NSQ.c",
"silk/NSQ_del_dec.c",
- "silk/control_SNR.c",
+ "silk/PLC.c",
"silk/shell_coder.c",
+ "silk/tables_gain.c",
+ "silk/tables_LTP.c",
+ "silk/tables_NLSF_CB_NB_MB.c",
+ "silk/tables_NLSF_CB_WB.c",
+ "silk/tables_other.c",
+ "silk/tables_pitch_lag.c",
+ "silk/tables_pulses_per_block.c",
+ "silk/VAD.c",
+ "silk/control_audio_bandwidth.c",
+ "silk/quant_LTP_gains.c",
+ "silk/VQ_WMat_EC.c",
+ "silk/HP_variable_cutoff.c",
"silk/NLSF_encode.c",
- "silk/stereo_MS_to_LR.c",
+ "silk/NLSF_VQ.c",
+ "silk/NLSF_unpack.c",
+ "silk/NLSF_del_dec_quant.c",
+ "silk/process_NLSFs.c",
"silk/stereo_LR_to_MS.c",
- "silk/HP_variable_cutoff.c",
+ "silk/stereo_MS_to_LR.c",
+ "silk/check_control_input.c",
+ "silk/control_SNR.c",
+ "silk/init_encoder.c",
+ "silk/control_codec.c",
+ "silk/A2NLSF.c",
+ "silk/ana_filt_bank_1.c",
+ "silk/biquad_alt.c",
+ "silk/bwexpander_32.c",
+ "silk/bwexpander.c",
+ "silk/debug.c",
+ "silk/decode_pitch.c",
+ "silk/inner_prod_aligned.c",
+ "silk/lin2log.c",
+ "silk/log2lin.c",
"silk/LPC_analysis_filter.c",
- "silk/CNG.c",
- "silk/decoder_set_fs.c",
+ "silk/LPC_inv_pred_gain.c",
+ "silk/table_LSF_cos.c",
+ "silk/NLSF2A.c",
+ "silk/NLSF_stabilize.c",
+ "silk/NLSF_VQ_weights_laroia.c",
+ "silk/pitch_est_tables.c",
+ "silk/resampler.c",
+ "silk/resampler_down2_3.c",
+ "silk/resampler_down2.c",
+ "silk/resampler_private_AR2.c",
+ "silk/resampler_private_down_FIR.c",
+ "silk/resampler_private_IIR_FIR.c",
+ "silk/resampler_private_up2_HQ.c",
"silk/resampler_rom.c",
- "silk/control_audio_bandwidth.c",
- "silk/lin2log.c",
- "silk/LP_variable_cutoff.c",
- "silk/NSQ.c",
- "silk/gain_quant.c",
- "celt/laplace.c",
- "celt/vq.c",
- "celt/quant_bands.c",
- "celt/kiss_fft.c",
- "celt/entcode.c",
- "celt/entenc.c",
- "celt/celt_lpc.c",
- "celt/pitch.c",
- "celt/rate.c",
- "celt/mathops.c",
- #"celt/arm/armcpu.c",
- #"celt/arm/celt_neon_intr.c",
- #"celt/arm/celt_ne10_mdct.c",
- #"celt/arm/celt_ne10_fft.c",
- #"celt/arm/arm_celt_map.c",
- "celt/celt_encoder.c",
- "celt/celt.c",
- "celt/bands.c",
- "celt/cwrs.c",
- "celt/entdec.c",
- "celt/celt_decoder.c",
- "celt/mdct.c",
- "celt/modes.c",
- "repacketizer.c",
- "mlp_data.c",
- "opus_multistream.c",
- "opusfile.c",
- "opus_encoder.c",
- "analysis.c",
- "mlp.c",
- "info.c",
- "stream.c",
- "opus_decoder.c",
- "internal.c",
- "wincerts.c",
- "opus.c",
- "opus_multistream_encoder.c",
- "http.c",
- "opus_multistream_decoder.c"
+ "silk/sigm_Q15.c",
+ "silk/sort.c",
+ "silk/sum_sqr_shift.c",
+ "silk/stereo_decode_pred.c",
+ "silk/stereo_encode_pred.c",
+ "silk/stereo_find_predictor.c",
+ "silk/stereo_quant_pred.c",
]
opus_sources_silk = []
@@ -134,65 +141,65 @@ if env['builtin_opus']:
if("opus_fixed_point" in env and env.opus_fixed_point == "yes"):
env_opus.Append(CFLAGS=["-DFIXED_POINT"])
opus_sources_silk = [
- "silk/fixed/schur64_FIX.c",
- "silk/fixed/residual_energy16_FIX.c",
+ "silk/fixed/LTP_analysis_filter_FIX.c",
+ "silk/fixed/LTP_scale_ctrl_FIX.c",
+ "silk/fixed/corrMatrix_FIX.c",
"silk/fixed/encode_frame_FIX.c",
- "silk/fixed/regularize_correlations_FIX.c",
- "silk/fixed/apply_sine_window_FIX.c",
- "silk/fixed/solve_LS_FIX.c",
- "silk/fixed/schur_FIX.c",
- "silk/fixed/pitch_analysis_core_FIX.c",
- "silk/fixed/noise_shape_analysis_FIX.c",
+ "silk/fixed/find_LPC_FIX.c",
"silk/fixed/find_LTP_FIX.c",
- "silk/fixed/vector_ops_FIX.c",
- "silk/fixed/autocorr_FIX.c",
- "silk/fixed/warped_autocorrelation_FIX.c",
"silk/fixed/find_pitch_lags_FIX.c",
- "silk/fixed/k2a_Q16_FIX.c",
- "silk/fixed/LTP_scale_ctrl_FIX.c",
- "silk/fixed/corrMatrix_FIX.c",
+ "silk/fixed/find_pred_coefs_FIX.c",
+ "silk/fixed/noise_shape_analysis_FIX.c",
"silk/fixed/prefilter_FIX.c",
- "silk/fixed/find_LPC_FIX.c",
- "silk/fixed/residual_energy_FIX.c",
"silk/fixed/process_gains_FIX.c",
- "silk/fixed/LTP_analysis_filter_FIX.c",
- "silk/fixed/k2a_FIX.c",
+ "silk/fixed/regularize_correlations_FIX.c",
+ "silk/fixed/residual_energy16_FIX.c",
+ "silk/fixed/residual_energy_FIX.c",
+ "silk/fixed/solve_LS_FIX.c",
+ "silk/fixed/warped_autocorrelation_FIX.c",
+ "silk/fixed/apply_sine_window_FIX.c",
+ "silk/fixed/autocorr_FIX.c",
"silk/fixed/burg_modified_FIX.c",
- "silk/fixed/find_pred_coefs_FIX.c"
+ "silk/fixed/k2a_FIX.c",
+ "silk/fixed/k2a_Q16_FIX.c",
+ "silk/fixed/pitch_analysis_core_FIX.c",
+ "silk/fixed/vector_ops_FIX.c",
+ "silk/fixed/schur64_FIX.c",
+ "silk/fixed/schur_FIX.c",
]
else:
opus_sources_silk = [
- "silk/float/LTP_scale_ctrl_FLP.c",
- "silk/float/regularize_correlations_FLP.c",
+ "silk/float/apply_sine_window_FLP.c",
"silk/float/corrMatrix_FLP.c",
+ "silk/float/encode_frame_FLP.c",
+ "silk/float/find_LPC_FLP.c",
+ "silk/float/find_LTP_FLP.c",
+ "silk/float/find_pitch_lags_FLP.c",
+ "silk/float/find_pred_coefs_FLP.c",
"silk/float/LPC_analysis_filter_FLP.c",
- "silk/float/levinsondurbin_FLP.c",
- "silk/float/schur_FLP.c",
- "silk/float/scale_vector_FLP.c",
- "silk/float/apply_sine_window_FLP.c",
- "silk/float/pitch_analysis_core_FLP.c",
- "silk/float/wrappers_FLP.c",
- "silk/float/bwexpander_FLP.c",
- "silk/float/warped_autocorrelation_FLP.c",
+ "silk/float/LTP_analysis_filter_FLP.c",
+ "silk/float/LTP_scale_ctrl_FLP.c",
+ "silk/float/noise_shape_analysis_FLP.c",
+ "silk/float/prefilter_FLP.c",
+ "silk/float/process_gains_FLP.c",
+ "silk/float/regularize_correlations_FLP.c",
+ "silk/float/residual_energy_FLP.c",
"silk/float/solve_LS_FLP.c",
- "silk/float/find_LPC_FLP.c",
+ "silk/float/warped_autocorrelation_FLP.c",
+ "silk/float/wrappers_FLP.c",
"silk/float/autocorrelation_FLP.c",
- "silk/float/find_pred_coefs_FLP.c",
- "silk/float/find_pitch_lags_FLP.c",
"silk/float/burg_modified_FLP.c",
- "silk/float/find_LTP_FLP.c",
+ "silk/float/bwexpander_FLP.c",
"silk/float/energy_FLP.c",
- "silk/float/sort_FLP.c",
- "silk/float/LPC_inv_pred_gain_FLP.c",
- "silk/float/k2a_FLP.c",
- "silk/float/noise_shape_analysis_FLP.c",
"silk/float/inner_product_FLP.c",
- "silk/float/process_gains_FLP.c",
- "silk/float/encode_frame_FLP.c",
+ "silk/float/k2a_FLP.c",
+ "silk/float/levinsondurbin_FLP.c",
+ "silk/float/LPC_inv_pred_gain_FLP.c",
+ "silk/float/pitch_analysis_core_FLP.c",
"silk/float/scale_copy_vector_FLP.c",
- "silk/float/residual_energy_FLP.c",
- "silk/float/LTP_analysis_filter_FLP.c",
- "silk/float/prefilter_FLP.c"
+ "silk/float/scale_vector_FLP.c",
+ "silk/float/schur_FLP.c",
+ "silk/float/sort_FLP.c",
]
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources + opus_sources_silk]
diff --git a/platform/android/audio_driver_opensl.cpp b/platform/android/audio_driver_opensl.cpp
index e259380a63..0d62b242a8 100644
--- a/platform/android/audio_driver_opensl.cpp
+++ b/platform/android/audio_driver_opensl.cpp
@@ -211,6 +211,110 @@ void AudioDriverOpenSL::start() {
active = true;
}
+void AudioDriverOpenSL::_record_buffer_callback(SLAndroidSimpleBufferQueueItf queueItf) {
+
+ for (int i = 0; i < rec_buffer.size(); i++) {
+ int32_t sample = rec_buffer[i] << 16;
+ input_buffer_write(sample);
+ input_buffer_write(sample); // call twice to convert to Stereo
+ }
+
+ SLresult res = (*recordBufferQueueItf)->Enqueue(recordBufferQueueItf, rec_buffer.ptrw(), rec_buffer.size() * sizeof(int16_t));
+ ERR_FAIL_COND(res != SL_RESULT_SUCCESS);
+}
+
+void AudioDriverOpenSL::_record_buffer_callbacks(SLAndroidSimpleBufferQueueItf queueItf, void *pContext) {
+
+ AudioDriverOpenSL *ad = (AudioDriverOpenSL *)pContext;
+
+ ad->_record_buffer_callback(queueItf);
+}
+
+Error AudioDriverOpenSL::capture_start() {
+
+ SLDataLocator_IODevice loc_dev = {
+ SL_DATALOCATOR_IODEVICE,
+ SL_IODEVICE_AUDIOINPUT,
+ SL_DEFAULTDEVICEID_AUDIOINPUT,
+ NULL
+ };
+ SLDataSource recSource = { &loc_dev, NULL };
+
+ SLDataLocator_AndroidSimpleBufferQueue loc_bq = {
+ SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE,
+ 2
+ };
+ SLDataFormat_PCM format_pcm = {
+ SL_DATAFORMAT_PCM,
+ 1,
+ SL_SAMPLINGRATE_44_1,
+ SL_PCMSAMPLEFORMAT_FIXED_16,
+ SL_PCMSAMPLEFORMAT_FIXED_16,
+ SL_SPEAKER_FRONT_CENTER,
+ SL_BYTEORDER_LITTLEENDIAN
+ };
+ SLDataSink recSnk = { &loc_bq, &format_pcm };
+
+ const SLInterfaceID ids[2] = { SL_IID_ANDROIDSIMPLEBUFFERQUEUE, SL_IID_ANDROIDCONFIGURATION };
+ const SLboolean req[2] = { SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE };
+
+ SLresult res = (*EngineItf)->CreateAudioRecorder(EngineItf, &recorder, &recSource, &recSnk, 2, ids, req);
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+
+ res = (*recorder)->Realize(recorder, SL_BOOLEAN_FALSE);
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+
+ res = (*recorder)->GetInterface(recorder, SL_IID_RECORD, (void *)&recordItf);
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+
+ res = (*recorder)->GetInterface(recorder, SL_IID_ANDROIDSIMPLEBUFFERQUEUE, (void *)&recordBufferQueueItf);
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+
+ res = (*recordBufferQueueItf)->RegisterCallback(recordBufferQueueItf, _record_buffer_callbacks, this);
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+
+ SLuint32 state;
+ res = (*recordItf)->GetRecordState(recordItf, &state);
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+
+ if (state != SL_RECORDSTATE_STOPPED) {
+ res = (*recordItf)->SetRecordState(recordItf, SL_RECORDSTATE_STOPPED);
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+
+ res = (*recordBufferQueueItf)->Clear(recordBufferQueueItf);
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+ }
+
+ const int rec_buffer_frames = 2048;
+ rec_buffer.resize(rec_buffer_frames);
+ input_buffer_init(rec_buffer_frames);
+
+ res = (*recordBufferQueueItf)->Enqueue(recordBufferQueueItf, rec_buffer.ptrw(), rec_buffer.size() * sizeof(int16_t));
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+
+ res = (*recordItf)->SetRecordState(recordItf, SL_RECORDSTATE_RECORDING);
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+
+ return OK;
+}
+
+Error AudioDriverOpenSL::capture_stop() {
+
+ SLuint32 state;
+ SLresult res = (*recordItf)->GetRecordState(recordItf, &state);
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+
+ if (state != SL_RECORDSTATE_STOPPED) {
+ res = (*recordItf)->SetRecordState(recordItf, SL_RECORDSTATE_STOPPED);
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+
+ res = (*recordBufferQueueItf)->Clear(recordBufferQueueItf);
+ ERR_FAIL_COND_V(res != SL_RESULT_SUCCESS, ERR_CANT_OPEN);
+ }
+
+ return OK;
+}
+
int AudioDriverOpenSL::get_mix_rate() const {
return 44100;
diff --git a/platform/android/audio_driver_opensl.h b/platform/android/audio_driver_opensl.h
index 77e16e507a..9bd0d5e999 100644
--- a/platform/android/audio_driver_opensl.h
+++ b/platform/android/audio_driver_opensl.h
@@ -54,13 +54,18 @@ class AudioDriverOpenSL : public AudioDriver {
int32_t *mixdown_buffer;
int last_free;
+ Vector<int16_t> rec_buffer;
+
SLPlayItf playItf;
+ SLRecordItf recordItf;
SLObjectItf sl;
SLEngineItf EngineItf;
SLObjectItf OutputMix;
SLVolumeItf volumeItf;
SLObjectItf player;
+ SLObjectItf recorder;
SLAndroidSimpleBufferQueueItf bufferQueueItf;
+ SLAndroidSimpleBufferQueueItf recordBufferQueueItf;
SLDataSource audioSource;
SLDataFormat_PCM pcm;
SLDataSink audioSink;
@@ -76,6 +81,13 @@ class AudioDriverOpenSL : public AudioDriver {
SLAndroidSimpleBufferQueueItf queueItf,
void *pContext);
+ void _record_buffer_callback(
+ SLAndroidSimpleBufferQueueItf queueItf);
+
+ static void _record_buffer_callbacks(
+ SLAndroidSimpleBufferQueueItf queueItf,
+ void *pContext);
+
public:
void set_singleton();
@@ -91,6 +103,9 @@ public:
virtual void set_pause(bool p_pause);
+ virtual Error capture_start();
+ virtual Error capture_stop();
+
AudioDriverOpenSL();
};
diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp
index 6a09c507c6..b7fbb89edf 100644
--- a/platform/x11/os_x11.cpp
+++ b/platform/x11/os_x11.cpp
@@ -2355,7 +2355,7 @@ void OS_X11::process_xevents() {
Vector<String> files = String((char *)p.data).split("\n", false);
for (int i = 0; i < files.size(); i++) {
- files.write[i] = files[i].replace("file://", "").replace("%20", " ").strip_escapes();
+ files.write[i] = files[i].replace("file://", "").http_unescape().strip_escapes();
}
main_loop->drop_files(files);
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index 998e91cfc2..86894ce070 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -2721,7 +2721,7 @@ void Control::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_scale"), &Control::get_scale);
ClassDB::bind_method(D_METHOD("get_pivot_offset"), &Control::get_pivot_offset);
ClassDB::bind_method(D_METHOD("get_custom_minimum_size"), &Control::get_custom_minimum_size);
- ClassDB::bind_method(D_METHOD("get_parent_area_size"), &Control::get_size);
+ ClassDB::bind_method(D_METHOD("get_parent_area_size"), &Control::get_parent_area_size);
ClassDB::bind_method(D_METHOD("get_global_position"), &Control::get_global_position);
ClassDB::bind_method(D_METHOD("get_rect"), &Control::get_rect);
ClassDB::bind_method(D_METHOD("get_global_rect"), &Control::get_global_rect);
diff --git a/scene/gui/progress_bar.cpp b/scene/gui/progress_bar.cpp
index 2195ec9778..264eda4035 100644
--- a/scene/gui/progress_bar.cpp
+++ b/scene/gui/progress_bar.cpp
@@ -39,9 +39,12 @@ Size2 ProgressBar::get_minimum_size() const {
Size2 minimum_size = bg->get_minimum_size();
minimum_size.height = MAX(minimum_size.height, fg->get_minimum_size().height);
minimum_size.width = MAX(minimum_size.width, fg->get_minimum_size().width);
- //if (percent_visible) { this is needed, else the progressbar will collapse
- minimum_size.height = MAX(minimum_size.height, bg->get_minimum_size().height + font->get_height());
- //}
+ if (percent_visible) {
+ minimum_size.height = MAX(minimum_size.height, bg->get_minimum_size().height + font->get_height());
+ } else { // this is needed, else the progressbar will collapse
+ minimum_size.width = MAX(minimum_size.width, 1);
+ minimum_size.height = MAX(minimum_size.height, 1);
+ }
return minimum_size;
}
diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp
index d4b008e277..9bcf10d5e7 100644
--- a/scene/gui/rich_text_label.cpp
+++ b/scene/gui/rich_text_label.cpp
@@ -1133,12 +1133,13 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) {
}
Variant meta;
- if (item && !outside && _find_meta(item, &meta)) {
- if (meta_hovering != item) {
+ ItemMeta *item_meta;
+ if (item && !outside && _find_meta(item, &meta, &item_meta)) {
+ if (meta_hovering != item_meta) {
if (meta_hovering) {
emit_signal("meta_hover_ended", current_meta);
}
- meta_hovering = static_cast<ItemMeta *>(item);
+ meta_hovering = item_meta;
current_meta = meta;
emit_signal("meta_hover_started", meta);
}
@@ -1269,7 +1270,7 @@ bool RichTextLabel::_find_strikethrough(Item *p_item) {
return false;
}
-bool RichTextLabel::_find_meta(Item *p_item, Variant *r_meta) {
+bool RichTextLabel::_find_meta(Item *p_item, Variant *r_meta, ItemMeta **r_item) {
Item *item = p_item;
@@ -1280,6 +1281,8 @@ bool RichTextLabel::_find_meta(Item *p_item, Variant *r_meta) {
ItemMeta *meta = static_cast<ItemMeta *>(item);
if (r_meta)
*r_meta = meta->meta;
+ if (r_item)
+ *r_item = meta;
return true;
}
diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h
index bec2c5ac02..114c6103e2 100644
--- a/scene/gui/rich_text_label.h
+++ b/scene/gui/rich_text_label.h
@@ -285,7 +285,7 @@ private:
Color _find_color(Item *p_item, const Color &p_default_color);
bool _find_underline(Item *p_item);
bool _find_strikethrough(Item *p_item);
- bool _find_meta(Item *p_item, Variant *r_meta);
+ bool _find_meta(Item *p_item, Variant *r_meta, ItemMeta **r_item = NULL);
void _update_scroll();
void _scroll_changed(double);
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp
index 0d12d388ef..99440ff202 100644
--- a/scene/resources/packed_scene.cpp
+++ b/scene/resources/packed_scene.cpp
@@ -92,6 +92,8 @@ Node *SceneState::instance(GenEditState p_edit_state) const {
if (i > 0) {
+ ERR_EXPLAIN(vformat("Invalid scene: node %s does not specify its parent node.", snames[n.name]))
+ ERR_FAIL_COND_V(n.parent == -1, NULL)
NODE_FROM_ID(nparent, n.parent);
#ifdef DEBUG_ENABLED
if (!nparent && (n.parent & FLAG_ID_IS_PATH)) {
diff --git a/scene/resources/sky.cpp b/scene/resources/sky.cpp
index a473fe8b7f..dfbf619c01 100644
--- a/scene/resources/sky.cpp
+++ b/scene/resources/sky.cpp
@@ -156,7 +156,10 @@ Ref<Image> ProceduralSky::_generate_sky() {
Color ground_bottom_linear = ground_bottom_color.to_linear();
Color ground_horizon_linear = ground_horizon_color.to_linear();
- //Color sun_linear = sun_color.to_linear();
+ Color sun_linear;
+ sun_linear.r = sun_color.r * sun_energy;
+ sun_linear.g = sun_color.g * sun_energy;
+ sun_linear.b = sun_color.b * sun_energy;
Vector3 sun(0, 0, -1);
@@ -204,13 +207,13 @@ Ref<Image> ProceduralSky::_generate_sky() {
float sun_angle = Math::rad2deg(Math::acos(CLAMP(sun.dot(normal), -1.0, 1.0)));
if (sun_angle < sun_angle_min) {
- color = color.blend(sun_color);
+ color = color.blend(sun_linear);
} else if (sun_angle < sun_angle_max) {
float c2 = (sun_angle - sun_angle_min) / (sun_angle_max - sun_angle_min);
c2 = Math::ease(c2, sun_curve);
- color = color.blend(sun_color).linear_interpolate(color, c2);
+ color = color.blend(sun_linear).linear_interpolate(color, c2);
}
}
@@ -555,7 +558,7 @@ ProceduralSky::ProceduralSky() {
sun_angle_min = 1;
sun_angle_max = 100;
sun_curve = 0.05;
- sun_energy = 16;
+ sun_energy = 1;
texture_size = TEXTURE_SIZE_1024;
sky_thread = NULL;
diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp
index 692c28ed99..4e5909eb2e 100644
--- a/scene/resources/visual_shader.cpp
+++ b/scene/resources/visual_shader.cpp
@@ -1087,6 +1087,8 @@ const VisualShaderNodeInput::Port VisualShaderNodeInput::ports[] = {
{ Shader::MODE_SPATIAL, VisualShader::TYPE_LIGHT, VisualShaderNode::PORT_TYPE_VECTOR, "attenuation", "ATTENUATION" },
{ Shader::MODE_SPATIAL, VisualShader::TYPE_LIGHT, VisualShaderNode::PORT_TYPE_VECTOR, "albedo", "ALBEDO" },
{ Shader::MODE_SPATIAL, VisualShader::TYPE_LIGHT, VisualShaderNode::PORT_TYPE_VECTOR, "transmission", "TRANSMISSION" },
+ { Shader::MODE_SPATIAL, VisualShader::TYPE_LIGHT, VisualShaderNode::PORT_TYPE_VECTOR, "diffuse", "DIFFUSE_LIGHT" },
+ { Shader::MODE_SPATIAL, VisualShader::TYPE_LIGHT, VisualShaderNode::PORT_TYPE_VECTOR, "specular", "SPECULAR_LIGHT" },
{ Shader::MODE_SPATIAL, VisualShader::TYPE_LIGHT, VisualShaderNode::PORT_TYPE_SCALAR, "roughness", "ROUGHNESS" },
{ Shader::MODE_SPATIAL, VisualShader::TYPE_LIGHT, VisualShaderNode::PORT_TYPE_TRANSFORM, "world", "WORLD_MATRIX" },
diff --git a/servers/audio/audio_stream.cpp b/servers/audio/audio_stream.cpp
index 12ee98595d..a6c262d10f 100644
--- a/servers/audio/audio_stream.cpp
+++ b/servers/audio/audio_stream.cpp
@@ -186,6 +186,10 @@ float AudioStreamPlaybackMicrophone::get_stream_sampling_rate() {
void AudioStreamPlaybackMicrophone::start(float p_from_pos) {
+ if (active) {
+ return;
+ }
+
if (!GLOBAL_GET("audio/enable_audio_input")) {
WARN_PRINTS("Need to enable Project settings > Audio > Enable Audio Input option to use capturing.");
return;
@@ -193,15 +197,17 @@ void AudioStreamPlaybackMicrophone::start(float p_from_pos) {
input_ofs = 0;
- AudioDriver::get_singleton()->capture_start();
-
- active = true;
- _begin_resample();
+ if (AudioDriver::get_singleton()->capture_start() == OK) {
+ active = true;
+ _begin_resample();
+ }
}
void AudioStreamPlaybackMicrophone::stop() {
- AudioDriver::get_singleton()->capture_stop();
- active = false;
+ if (active) {
+ AudioDriver::get_singleton()->capture_stop();
+ active = false;
+ }
}
bool AudioStreamPlaybackMicrophone::is_playing() const {
diff --git a/servers/visual/visual_server_scene.cpp b/servers/visual/visual_server_scene.cpp
index 42be56cfdd..2590e29aef 100644
--- a/servers/visual/visual_server_scene.cpp
+++ b/servers/visual/visual_server_scene.cpp
@@ -445,6 +445,9 @@ void VisualServerScene::instance_set_base(RID p_instance, RID p_base) {
InstanceGeometryData *geom = memnew(InstanceGeometryData);
instance->base_data = geom;
+ if (instance->base_type == VS::INSTANCE_MESH) {
+ instance->blend_values.resize(VSG::storage->mesh_get_blend_shape_count(p_base));
+ }
} break;
case VS::INSTANCE_REFLECTION_PROBE: {
diff --git a/servers/visual/visual_server_viewport.cpp b/servers/visual/visual_server_viewport.cpp
index d6e43b0f00..2c6709662f 100644
--- a/servers/visual/visual_server_viewport.cpp
+++ b/servers/visual/visual_server_viewport.cpp
@@ -167,7 +167,7 @@ void VisualServerViewport::_draw_viewport(Viewport *p_viewport, ARVRInterface::E
RasterizerCanvas::Light *light = lights_with_shadow;
while (light) {
- VSG::canvas_render->canvas_light_shadow_buffer_update(light->shadow_buffer, light->xform_cache.affine_inverse(), light->item_mask, light->radius_cache / 1000.0, light->radius_cache * 1.1, occluders, &light->shadow_matrix_cache);
+ VSG::canvas_render->canvas_light_shadow_buffer_update(light->shadow_buffer, light->xform_cache.affine_inverse(), light->item_shadow_mask, light->radius_cache / 1000.0, light->radius_cache * 1.1, occluders, &light->shadow_matrix_cache);
light = light->shadows_next_ptr;
}
diff --git a/thirdparty/README.md b/thirdparty/README.md
index 4fd8b14f77..994a320122 100644
--- a/thirdparty/README.md
+++ b/thirdparty/README.md
@@ -423,9 +423,11 @@ Files extracted from the upstream source:
Files extracted from upstream source:
-- all .c and .h files in src/ (both opus and opusfile),
- except `opus_demo.c`
+- all .c and .h files in src/ (both opus and opusfile)
- all .h files in include/ (both opus and opusfile) as opus/
+- remove unused `opus_demo.c`,
+- remove `http.c`, `wincerts.c` and `winerrno.h` (part of
+ unused libopusurl)
- celt/ and silk/ subfolders
- COPYING
diff --git a/thirdparty/opus/http.c b/thirdparty/opus/http.c
deleted file mode 100644
index 99fa8c08e0..0000000000
--- a/thirdparty/opus/http.c
+++ /dev/null
@@ -1,3465 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE libopusfile SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE libopusfile SOURCE CODE IS (C) COPYRIGHT 2012 *
- * by the Xiph.Org Foundation and contributors http://www.xiph.org/ *
- * *
- ********************************************************************/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "internal.h"
-#include <ctype.h>
-#include <errno.h>
-#include <limits.h>
-#include <string.h>
-
-/*RFCs referenced in this file:
- RFC 761: DOD Standard Transmission Control Protocol
- RFC 1535: A Security Problem and Proposed Correction With Widely Deployed DNS
- Software
- RFC 1738: Uniform Resource Locators (URL)
- RFC 1945: Hypertext Transfer Protocol -- HTTP/1.0
- RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1
- RFC 2145: Use and Interpretation of HTTP Version Numbers
- RFC 2246: The TLS Protocol Version 1.0
- RFC 2459: Internet X.509 Public Key Infrastructure Certificate and
- Certificate Revocation List (CRL) Profile
- RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1
- RFC 2617: HTTP Authentication: Basic and Digest Access Authentication
- RFC 2817: Upgrading to TLS Within HTTP/1.1
- RFC 2818: HTTP Over TLS
- RFC 3492: Punycode: A Bootstring encoding of Unicode for Internationalized
- Domain Names in Applications (IDNA)
- RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
- RFC 3987: Internationalized Resource Identifiers (IRIs)
- RFC 4343: Domain Name System (DNS) Case Insensitivity Clarification
- RFC 5894: Internationalized Domain Names for Applications (IDNA):
- Background, Explanation, and Rationale
- RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions
- RFC 6125: Representation and Verification of Domain-Based Application Service
- Identity within Internet Public Key Infrastructure Using X.509 (PKIX)
- Certificates in the Context of Transport Layer Security (TLS)
- RFC 6555: Happy Eyeballs: Success with Dual-Stack Hosts*/
-
-typedef struct OpusParsedURL OpusParsedURL;
-typedef struct OpusStringBuf OpusStringBuf;
-typedef struct OpusHTTPConn OpusHTTPConn;
-typedef struct OpusHTTPStream OpusHTTPStream;
-
-static char *op_string_range_dup(const char *_start,const char *_end){
- size_t len;
- char *ret;
- OP_ASSERT(_start<=_end);
- len=_end-_start;
- /*This is to help avoid overflow elsewhere, later.*/
- if(OP_UNLIKELY(len>=INT_MAX))return NULL;
- ret=(char *)_ogg_malloc(sizeof(*ret)*(len+1));
- if(OP_LIKELY(ret!=NULL)){
- ret=(char *)memcpy(ret,_start,sizeof(*ret)*(len));
- ret[len]='\0';
- }
- return ret;
-}
-
-static char *op_string_dup(const char *_s){
- return op_string_range_dup(_s,_s+strlen(_s));
-}
-
-static char *op_string_tolower(char *_s){
- int i;
- for(i=0;_s[i]!='\0';i++){
- int c;
- c=_s[i];
- if(c>='A'&&c<='Z')c+='a'-'A';
- _s[i]=(char)c;
- }
- return _s;
-}
-
-/*URI character classes (from RFC 3986).*/
-#define OP_URL_ALPHA \
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
-#define OP_URL_DIGIT "0123456789"
-#define OP_URL_HEXDIGIT "0123456789ABCDEFabcdef"
-/*Not a character class, but the characters allowed in <scheme>.*/
-#define OP_URL_SCHEME OP_URL_ALPHA OP_URL_DIGIT "+-."
-#define OP_URL_GEN_DELIMS "#/:?@[]"
-#define OP_URL_SUB_DELIMS "!$&'()*+,;="
-#define OP_URL_RESERVED OP_URL_GEN_DELIMS OP_URL_SUB_DELIMS
-#define OP_URL_UNRESERVED OP_URL_ALPHA OP_URL_DIGIT "-._~"
-/*Not a character class, but the characters allowed in <pct-encoded>.*/
-#define OP_URL_PCT_ENCODED "%"
-/*Not a character class or production rule, but for convenience.*/
-#define OP_URL_PCHAR_BASE \
- OP_URL_UNRESERVED OP_URL_PCT_ENCODED OP_URL_SUB_DELIMS
-#define OP_URL_PCHAR OP_URL_PCHAR_BASE ":@"
-/*Not a character class, but the characters allowed in <userinfo> and
- <IP-literal>.*/
-#define OP_URL_PCHAR_NA OP_URL_PCHAR_BASE ":"
-/*Not a character class, but the characters allowed in <segment-nz-nc>.*/
-#define OP_URL_PCHAR_NC OP_URL_PCHAR_BASE "@"
-/*Not a character clsss, but the characters allowed in <path>.*/
-#define OP_URL_PATH OP_URL_PCHAR "/"
-/*Not a character class, but the characters allowed in <query> / <fragment>.*/
-#define OP_URL_QUERY_FRAG OP_URL_PCHAR "/?"
-
-/*Check the <% HEXDIG HEXDIG> escapes of a URL for validity.
- Return: 0 if valid, or a negative value on failure.*/
-static int op_validate_url_escapes(const char *_s){
- int i;
- for(i=0;_s[i];i++){
- if(_s[i]=='%'){
- if(OP_UNLIKELY(!isxdigit(_s[i+1]))
- ||OP_UNLIKELY(!isxdigit(_s[i+2]))
- /*RFC 3986 says %00 "should be rejected if the application is not
- expecting to receive raw data within a component."*/
- ||OP_UNLIKELY(_s[i+1]=='0'&&_s[i+2]=='0')){
- return OP_FALSE;
- }
- i+=2;
- }
- }
- return 0;
-}
-
-/*Convert a hex digit to its actual value.
- _c: The hex digit to convert.
- Presumed to be valid ('0'...'9', 'A'...'F', or 'a'...'f').
- Return: The value of the digit, in the range [0,15].*/
-static int op_hex_value(int _c){
- return _c>='a'?_c-'a'+10:_c>='A'?_c-'A'+10:_c-'0';
-}
-
-/*Unescape all the <% HEXDIG HEXDIG> sequences in a string in-place.
- This does no validity checking.*/
-static char *op_unescape_url_component(char *_s){
- int i;
- int j;
- for(i=j=0;_s[i];i++,j++){
- if(_s[i]=='%'){
- _s[i]=(char)(op_hex_value(_s[i+1])<<4|op_hex_value(_s[i+2]));
- i+=2;
- }
- }
- return _s;
-}
-
-/*Parse a file: URL.
- This code is not meant to be fast: strspn() with large sets is likely to be
- slow, but it is very convenient.
- It is meant to be RFC 1738-compliant (as updated by RFC 3986).*/
-static const char *op_parse_file_url(const char *_src){
- const char *scheme_end;
- const char *path;
- const char *path_end;
- scheme_end=_src+strspn(_src,OP_URL_SCHEME);
- if(OP_UNLIKELY(*scheme_end!=':')
- ||scheme_end-_src!=4||op_strncasecmp(_src,"file",4)!=0){
- /*Unsupported protocol.*/
- return NULL;
- }
- /*Make sure all escape sequences are valid to simplify unescaping later.*/
- if(OP_UNLIKELY(op_validate_url_escapes(scheme_end+1)<0))return NULL;
- if(scheme_end[1]=='/'&&scheme_end[2]=='/'){
- const char *host;
- /*file: URLs can have a host!
- Yeah, I was surprised, too, but that's what RFC 1738 says.
- It also says, "The file URL scheme is unusual in that it does not specify
- an Internet protocol or access method for such files; as such, its
- utility in network protocols between hosts is limited," which is a mild
- understatement.*/
- host=scheme_end+3;
- /*The empty host is what we expect.*/
- if(OP_LIKELY(*host=='/'))path=host;
- else{
- const char *host_end;
- char host_buf[28];
- /*RFC 1738 says localhost "is interpreted as `the machine from which the
- URL is being interpreted,'" so let's check for it.*/
- host_end=host+strspn(host,OP_URL_PCHAR_BASE);
- /*No <port> allowed.
- This also rejects IP-Literals.*/
- if(*host_end!='/')return NULL;
- /*An escaped "localhost" can take at most 27 characters.*/
- if(OP_UNLIKELY(host_end-host>27))return NULL;
- memcpy(host_buf,host,sizeof(*host_buf)*(host_end-host));
- host_buf[host_end-host]='\0';
- op_unescape_url_component(host_buf);
- op_string_tolower(host_buf);
- /*Some other host: give up.*/
- if(OP_UNLIKELY(strcmp(host_buf,"localhost")!=0))return NULL;
- path=host_end;
- }
- }
- else path=scheme_end+1;
- path_end=path+strspn(path,OP_URL_PATH);
- /*This will reject a <query> or <fragment> component, too.
- I don't know what to do with queries, but a temporal fragment would at
- least make sense.
- RFC 1738 pretty clearly defines a <searchpart> that's equivalent to the
- RFC 3986 <query> component for other schemes, but not the file: scheme,
- so I'm going to just reject it.*/
- if(*path_end!='\0')return NULL;
- return path;
-}
-
-#if defined(OP_ENABLE_HTTP)
-# if defined(_WIN32)
-# include <winsock2.h>
-# include <ws2tcpip.h>
-# include <openssl/ssl.h>
-# include "winerrno.h"
-
-typedef SOCKET op_sock;
-
-# define OP_INVALID_SOCKET (INVALID_SOCKET)
-
-/*Vista and later support WSAPoll(), but we don't want to rely on that.
- Instead we re-implement it badly using select().
- Unfortunately, they define a conflicting struct pollfd, so we only define our
- own if it looks like that one has not already been defined.*/
-# if !defined(POLLIN)
-/*Equivalent to POLLIN.*/
-# define POLLRDNORM (0x0100)
-/*Priority band data can be read.*/
-# define POLLRDBAND (0x0200)
-/*There is data to read.*/
-# define POLLIN (POLLRDNORM|POLLRDBAND)
-/*There is urgent data to read.*/
-# define POLLPRI (0x0400)
-/*Equivalent to POLLOUT.*/
-# define POLLWRNORM (0x0010)
-/*Writing now will not block.*/
-# define POLLOUT (POLLWRNORM)
-/*Priority data may be written.*/
-# define POLLWRBAND (0x0020)
-/*Error condition (output only).*/
-# define POLLERR (0x0001)
-/*Hang up (output only).*/
-# define POLLHUP (0x0002)
-/*Invalid request: fd not open (output only).*/
-# define POLLNVAL (0x0004)
-
-struct pollfd{
- /*File descriptor.*/
- op_sock fd;
- /*Requested events.*/
- short events;
- /*Returned events.*/
- short revents;
-};
-# endif
-
-/*But Winsock never defines nfds_t (it's simply hard-coded to ULONG).*/
-typedef unsigned long nfds_t;
-
-/*The usage of FD_SET() below is O(N^2).
- This is okay because select() is limited to 64 sockets in Winsock, anyway.
- In practice, we only ever call it with one or two sockets.*/
-static int op_poll_win32(struct pollfd *_fds,nfds_t _nfds,int _timeout){
- struct timeval tv;
- fd_set ifds;
- fd_set ofds;
- fd_set efds;
- nfds_t i;
- int ret;
- FD_ZERO(&ifds);
- FD_ZERO(&ofds);
- FD_ZERO(&efds);
- for(i=0;i<_nfds;i++){
- _fds[i].revents=0;
- if(_fds[i].events&POLLIN)FD_SET(_fds[i].fd,&ifds);
- if(_fds[i].events&POLLOUT)FD_SET(_fds[i].fd,&ofds);
- FD_SET(_fds[i].fd,&efds);
- }
- if(_timeout>=0){
- tv.tv_sec=_timeout/1000;
- tv.tv_usec=(_timeout%1000)*1000;
- }
- ret=select(-1,&ifds,&ofds,&efds,_timeout<0?NULL:&tv);
- if(ret>0){
- for(i=0;i<_nfds;i++){
- if(FD_ISSET(_fds[i].fd,&ifds))_fds[i].revents|=POLLIN;
- if(FD_ISSET(_fds[i].fd,&ofds))_fds[i].revents|=POLLOUT;
- /*This isn't correct: there are several different things that might have
- happened to a fd in efds, but I don't know a good way to distinguish
- them without more context from the caller.
- It's okay, because we don't actually check any of these bits, we just
- need _some_ bit set.*/
- if(FD_ISSET(_fds[i].fd,&efds))_fds[i].revents|=POLLHUP;
- }
- }
- return ret;
-}
-
-/*We define op_errno() to make it clear that it's not an l-value like normal
- errno is.*/
-# define op_errno() (WSAGetLastError()?WSAGetLastError()-WSABASEERR:0)
-# define op_reset_errno() (WSASetLastError(0))
-
-/*The remaining functions don't get an op_ prefix even though they only
- operate on sockets, because we don't use non-socket I/O here, and this
- minimizes the changes needed to deal with Winsock.*/
-# define close(_fd) closesocket(_fd)
-/*This relies on sizeof(u_long)==sizeof(int), which is always true on both
- Win32 and Win64.*/
-# define ioctl(_fd,_req,_arg) ioctlsocket(_fd,_req,(u_long *)(_arg))
-# define getsockopt(_fd,_level,_name,_val,_len) \
- getsockopt(_fd,_level,_name,(char *)(_val),_len)
-# define setsockopt(_fd,_level,_name,_val,_len) \
- setsockopt(_fd,_level,_name,(const char *)(_val),_len)
-# define poll(_fds,_nfds,_timeout) op_poll_win32(_fds,_nfds,_timeout)
-
-# if defined(_MSC_VER)
-typedef ptrdiff_t ssize_t;
-# endif
-
-/*Load certificates from the built-in certificate store.*/
-int SSL_CTX_set_default_verify_paths_win32(SSL_CTX *_ssl_ctx);
-# define SSL_CTX_set_default_verify_paths \
- SSL_CTX_set_default_verify_paths_win32
-
-# else
-/*Normal Berkeley sockets.*/
-# include <sys/ioctl.h>
-# include <sys/types.h>
-# include <sys/socket.h>
-# include <arpa/inet.h>
-# include <netinet/in.h>
-# include <netinet/tcp.h>
-# include <fcntl.h>
-# include <netdb.h>
-# include <poll.h>
-# include <unistd.h>
-# include <openssl/ssl.h>
-
-typedef int op_sock;
-
-# define OP_INVALID_SOCKET (-1)
-
-# define op_errno() (errno)
-# define op_reset_errno() (errno=0)
-
-# endif
-# include <sys/timeb.h>
-# include <openssl/x509v3.h>
-
-/*The maximum number of simultaneous connections.
- RFC 2616 says this SHOULD NOT be more than 2, but everyone on the modern web
- ignores that (e.g., IE 8 bumped theirs up from 2 to 6, Firefox uses 15).
- If it makes you feel better, we'll only ever actively read from one of these
- at a time.
- The others are kept around mainly to avoid slow-starting a new connection
- when seeking, and time out rapidly.*/
-# define OP_NCONNS_MAX (4)
-
-/*The amount of time before we attempt to re-resolve the host.
- This is 10 minutes, as recommended in RFC 6555 for expiring cached connection
- results for dual-stack hosts.*/
-# define OP_RESOLVE_CACHE_TIMEOUT_MS (10*60*(opus_int32)1000)
-
-/*The number of redirections at which we give up.
- The value here is the current default in Firefox.
- RFC 2068 mandated a maximum of 5, but RFC 2616 relaxed that to "a client
- SHOULD detect infinite redirection loops."
- Fortunately, 20 is less than infinity.*/
-# define OP_REDIRECT_LIMIT (20)
-
-/*The initial size of the buffer used to read a response message (before the
- body).*/
-# define OP_RESPONSE_SIZE_MIN (510)
-/*The maximum size of a response message (before the body).
- Responses larger than this will be discarded.
- I've seen a real server return 20 kB of data for a 302 Found response.
- Increasing this beyond 32kB will cause problems on platforms with a 16-bit
- int.*/
-# define OP_RESPONSE_SIZE_MAX (32766)
-
-/*The number of milliseconds we will allow a connection to sit idle before we
- refuse to resurrect it.
- Apache as of 2.2 has reduced its default timeout to 5 seconds (from 15), so
- that's what we'll use here.*/
-# define OP_CONNECTION_IDLE_TIMEOUT_MS (5*1000)
-
-/*The number of milliseconds we will wait to send or receive data before giving
- up.*/
-# define OP_POLL_TIMEOUT_MS (30*1000)
-
-/*We will always attempt to read ahead at least this much in preference to
- opening a new connection.*/
-# define OP_READAHEAD_THRESH_MIN (32*(opus_int32)1024)
-
-/*The amount of data to request after a seek.
- This is a trade-off between read throughput after a seek vs. the the ability
- to quickly perform another seek with the same connection.*/
-# define OP_PIPELINE_CHUNK_SIZE (32*(opus_int32)1024)
-/*Subsequent chunks are requested with larger and larger sizes until they pass
- this threshold, after which we just ask for the rest of the resource.*/
-# define OP_PIPELINE_CHUNK_SIZE_MAX (1024*(opus_int32)1024)
-/*This is the maximum number of requests we'll make with a single connection.
- Many servers will simply disconnect after we attempt some number of requests,
- possibly without sending a Connection: close header, meaning we won't
- discover it until we try to read beyond the end of the current chunk.
- We can reconnect when that happens, but this is slow.
- Instead, we impose a limit ourselves (set to the default for Apache
- installations and thus likely the most common value in use).*/
-# define OP_PIPELINE_MAX_REQUESTS (100)
-/*This should be the number of requests, starting from a chunk size of
- OP_PIPELINE_CHUNK_SIZE and doubling each time, until we exceed
- OP_PIPELINE_CHUNK_SIZE_MAX and just request the rest of the file.
- We won't reuse a connection when seeking unless it has at least this many
- requests left, to reduce the chances we'll have to open a new connection
- while reading forward afterwards.*/
-# define OP_PIPELINE_MIN_REQUESTS (7)
-
-/*Is this an https URL?
- For now we can simply check the last letter of the scheme.*/
-# define OP_URL_IS_SSL(_url) ((_url)->scheme[4]=='s')
-
-/*Does this URL use the default port for its scheme?*/
-# define OP_URL_IS_DEFAULT_PORT(_url) \
- (!OP_URL_IS_SSL(_url)&&(_url)->port==80 \
- ||OP_URL_IS_SSL(_url)&&(_url)->port==443)
-
-struct OpusParsedURL{
- /*Either "http" or "https".*/
- char *scheme;
- /*The user name from the <userinfo> component, or NULL.*/
- char *user;
- /*The password from the <userinfo> component, or NULL.*/
- char *pass;
- /*The <host> component.
- This may not be NULL.*/
- char *host;
- /*The <path> and <query> components.
- This may not be NULL.*/
- char *path;
- /*The <port> component.
- This is set to the default port if the URL did not contain one.*/
- unsigned port;
-};
-
-/*Parse a URL.
- This code is not meant to be fast: strspn() with large sets is likely to be
- slow, but it is very convenient.
- It is meant to be RFC 3986-compliant.
- We currently do not support IRIs (Internationalized Resource Identifiers,
- RFC 3987).
- Callers should translate them to URIs first.*/
-static int op_parse_url_impl(OpusParsedURL *_dst,const char *_src){
- const char *scheme_end;
- const char *authority;
- const char *userinfo_end;
- const char *user;
- const char *user_end;
- const char *pass;
- const char *hostport;
- const char *hostport_end;
- const char *host_end;
- const char *port;
- opus_int32 port_num;
- const char *port_end;
- const char *path;
- const char *path_end;
- const char *uri_end;
- scheme_end=_src+strspn(_src,OP_URL_SCHEME);
- if(OP_UNLIKELY(*scheme_end!=':')
- ||OP_UNLIKELY(scheme_end-_src<4)||OP_UNLIKELY(scheme_end-_src>5)
- ||OP_UNLIKELY(op_strncasecmp(_src,"https",scheme_end-_src)!=0)){
- /*Unsupported protocol.*/
- return OP_EIMPL;
- }
- if(OP_UNLIKELY(scheme_end[1]!='/')||OP_UNLIKELY(scheme_end[2]!='/')){
- /*We require an <authority> component.*/
- return OP_EINVAL;
- }
- authority=scheme_end+3;
- /*Make sure all escape sequences are valid to simplify unescaping later.*/
- if(OP_UNLIKELY(op_validate_url_escapes(authority)<0))return OP_EINVAL;
- /*Look for a <userinfo> component.*/
- userinfo_end=authority+strspn(authority,OP_URL_PCHAR_NA);
- if(*userinfo_end=='@'){
- /*Found one.*/
- user=authority;
- /*Look for a password (yes, clear-text passwords are deprecated, I know,
- but what else are people supposed to use? use SSL if you care).*/
- user_end=authority+strspn(authority,OP_URL_PCHAR_BASE);
- if(*user_end==':')pass=user_end+1;
- else pass=NULL;
- hostport=userinfo_end+1;
- }
- else{
- /*We shouldn't have to initialize user_end, but gcc is too dumb to figure
- out that user!=NULL below means we didn't take this else branch.*/
- user=user_end=NULL;
- pass=NULL;
- hostport=authority;
- }
- /*Try to figure out where the <host> component ends.*/
- if(hostport[0]=='['){
- hostport++;
- /*We have an <IP-literal>, which can contain colons.*/
- hostport_end=host_end=hostport+strspn(hostport,OP_URL_PCHAR_NA);
- if(OP_UNLIKELY(*hostport_end++!=']'))return OP_EINVAL;
- }
- /*Currently we don't support IDNA (RFC 5894), because I don't want to deal
- with the policy about which domains should not be internationalized to
- avoid confusing similarities.
- Give this API Punycode (RFC 3492) domain names instead.*/
- else hostport_end=host_end=hostport+strspn(hostport,OP_URL_PCHAR_BASE);
- /*TODO: Validate host.*/
- /*Is there a port number?*/
- port_num=-1;
- if(*hostport_end==':'){
- int i;
- port=hostport_end+1;
- port_end=port+strspn(port,OP_URL_DIGIT);
- path=port_end;
- /*Not part of RFC 3986, but require port numbers in the range 0...65535.*/
- if(OP_LIKELY(port_end-port>0)){
- while(*port=='0')port++;
- if(OP_UNLIKELY(port_end-port>5))return OP_EINVAL;
- port_num=0;
- for(i=0;i<port_end-port;i++)port_num=port_num*10+port[i]-'0';
- if(OP_UNLIKELY(port_num>65535))return OP_EINVAL;
- }
- }
- else path=hostport_end;
- path_end=path+strspn(path,OP_URL_PATH);
- /*If the path is not empty, it must begin with a '/'.*/
- if(OP_LIKELY(path_end>path)&&OP_UNLIKELY(path[0]!='/'))return OP_EINVAL;
- /*Consume the <query> component, if any (right now we don't split this out
- from the <path> component).*/
- if(*path_end=='?')path_end=path_end+strspn(path_end,OP_URL_QUERY_FRAG);
- /*Discard the <fragment> component, if any.
- This doesn't get sent to the server.
- Some day we should add support for Media Fragment URIs
- <http://www.w3.org/TR/media-frags/>.*/
- if(*path_end=='#')uri_end=path_end+1+strspn(path_end+1,OP_URL_QUERY_FRAG);
- else uri_end=path_end;
- /*If there's anything left, this was not a valid URL.*/
- if(OP_UNLIKELY(*uri_end!='\0'))return OP_EINVAL;
- _dst->scheme=op_string_range_dup(_src,scheme_end);
- if(OP_UNLIKELY(_dst->scheme==NULL))return OP_EFAULT;
- op_string_tolower(_dst->scheme);
- if(user!=NULL){
- _dst->user=op_string_range_dup(user,user_end);
- if(OP_UNLIKELY(_dst->user==NULL))return OP_EFAULT;
- op_unescape_url_component(_dst->user);
- /*Unescaping might have created a ':' in the username.
- That's not allowed by RFC 2617's Basic Authentication Scheme.*/
- if(OP_UNLIKELY(strchr(_dst->user,':')!=NULL))return OP_EINVAL;
- }
- else _dst->user=NULL;
- if(pass!=NULL){
- _dst->pass=op_string_range_dup(pass,userinfo_end);
- if(OP_UNLIKELY(_dst->pass==NULL))return OP_EFAULT;
- op_unescape_url_component(_dst->pass);
- }
- else _dst->pass=NULL;
- _dst->host=op_string_range_dup(hostport,host_end);
- if(OP_UNLIKELY(_dst->host==NULL))return OP_EFAULT;
- if(port_num<0){
- if(_src[4]=='s')port_num=443;
- else port_num=80;
- }
- _dst->port=(unsigned)port_num;
- /*RFC 2616 says an empty <abs-path> component is equivalent to "/", and we
- MUST use the latter in the Request-URI.
- Reserve space for the slash here.*/
- if(path==path_end||path[0]=='?')path--;
- _dst->path=op_string_range_dup(path,path_end);
- if(OP_UNLIKELY(_dst->path==NULL))return OP_EFAULT;
- /*And force-set it here.*/
- _dst->path[0]='/';
- return 0;
-}
-
-static void op_parsed_url_init(OpusParsedURL *_url){
- memset(_url,0,sizeof(*_url));
-}
-
-static void op_parsed_url_clear(OpusParsedURL *_url){
- _ogg_free(_url->scheme);
- _ogg_free(_url->user);
- _ogg_free(_url->pass);
- _ogg_free(_url->host);
- _ogg_free(_url->path);
-}
-
-static int op_parse_url(OpusParsedURL *_dst,const char *_src){
- OpusParsedURL url;
- int ret;
- op_parsed_url_init(&url);
- ret=op_parse_url_impl(&url,_src);
- if(OP_UNLIKELY(ret<0))op_parsed_url_clear(&url);
- else *_dst=*&url;
- return ret;
-}
-
-/*A buffer to hold growing strings.
- The main purpose of this is to consolidate allocation checks and simplify
- cleanup on a failed allocation.*/
-struct OpusStringBuf{
- char *buf;
- int nbuf;
- int cbuf;
-};
-
-static void op_sb_init(OpusStringBuf *_sb){
- _sb->buf=NULL;
- _sb->nbuf=0;
- _sb->cbuf=0;
-}
-
-static void op_sb_clear(OpusStringBuf *_sb){
- _ogg_free(_sb->buf);
-}
-
-/*Make sure we have room for at least _capacity characters (plus 1 more for the
- terminating NUL).*/
-static int op_sb_ensure_capacity(OpusStringBuf *_sb,int _capacity){
- char *buf;
- int cbuf;
- buf=_sb->buf;
- cbuf=_sb->cbuf;
- if(_capacity>=cbuf-1){
- if(OP_UNLIKELY(cbuf>INT_MAX-1>>1))return OP_EFAULT;
- if(OP_UNLIKELY(_capacity>=INT_MAX-1))return OP_EFAULT;
- cbuf=OP_MAX(2*cbuf+1,_capacity+1);
- buf=_ogg_realloc(buf,sizeof(*buf)*cbuf);
- if(OP_UNLIKELY(buf==NULL))return OP_EFAULT;
- _sb->buf=buf;
- _sb->cbuf=cbuf;
- }
- return 0;
-}
-
-/*Increase the capacity of the buffer, but not to more than _max_size
- characters (plus 1 more for the terminating NUL).*/
-static int op_sb_grow(OpusStringBuf *_sb,int _max_size){
- char *buf;
- int cbuf;
- buf=_sb->buf;
- cbuf=_sb->cbuf;
- OP_ASSERT(_max_size<=INT_MAX-1);
- cbuf=cbuf<=_max_size-1>>1?2*cbuf+1:_max_size+1;
- buf=_ogg_realloc(buf,sizeof(*buf)*cbuf);
- if(OP_UNLIKELY(buf==NULL))return OP_EFAULT;
- _sb->buf=buf;
- _sb->cbuf=cbuf;
- return 0;
-}
-
-static int op_sb_append(OpusStringBuf *_sb,const char *_s,int _len){
- char *buf;
- int nbuf;
- int ret;
- nbuf=_sb->nbuf;
- if(OP_UNLIKELY(nbuf>INT_MAX-_len))return OP_EFAULT;
- ret=op_sb_ensure_capacity(_sb,nbuf+_len);
- if(OP_UNLIKELY(ret<0))return ret;
- buf=_sb->buf;
- memcpy(buf+nbuf,_s,sizeof(*buf)*_len);
- nbuf+=_len;
- buf[nbuf]='\0';
- _sb->nbuf=nbuf;
- return 0;
-}
-
-static int op_sb_append_string(OpusStringBuf *_sb,const char *_s){
- return op_sb_append(_sb,_s,strlen(_s));
-}
-
-static int op_sb_append_port(OpusStringBuf *_sb,unsigned _port){
- char port_buf[7];
- OP_ASSERT(_port<=65535U);
- sprintf(port_buf,":%u",_port);
- return op_sb_append_string(_sb,port_buf);
-}
-
-static int op_sb_append_nonnegative_int64(OpusStringBuf *_sb,opus_int64 _i){
- char digit;
- int nbuf_start;
- int ret;
- OP_ASSERT(_i>=0);
- nbuf_start=_sb->nbuf;
- ret=0;
- do{
- digit='0'+_i%10;
- ret|=op_sb_append(_sb,&digit,1);
- _i/=10;
- }
- while(_i>0);
- if(OP_LIKELY(ret>=0)){
- char *buf;
- int nbuf_end;
- buf=_sb->buf;
- nbuf_end=_sb->nbuf-1;
- /*We've added the digits backwards.
- Reverse them.*/
- while(nbuf_start<nbuf_end){
- digit=buf[nbuf_start];
- buf[nbuf_start]=buf[nbuf_end];
- buf[nbuf_end]=digit;
- nbuf_start++;
- nbuf_end--;
- }
- }
- return ret;
-}
-
-static struct addrinfo *op_resolve(const char *_host,unsigned _port){
- struct addrinfo *addrs;
- struct addrinfo hints;
- char service[6];
- memset(&hints,0,sizeof(hints));
- hints.ai_socktype=SOCK_STREAM;
-#if defined(AI_NUMERICSERV)
- hints.ai_flags=AI_NUMERICSERV;
-#endif
- OP_ASSERT(_port<=65535U);
- sprintf(service,"%u",_port);
- if(OP_LIKELY(!getaddrinfo(_host,service,&hints,&addrs)))return addrs;
- return NULL;
-}
-
-static int op_sock_set_nonblocking(op_sock _fd,int _nonblocking){
-#if !defined(_WIN32)
- int flags;
- flags=fcntl(_fd,F_GETFL);
- if(OP_UNLIKELY(flags<0))return flags;
- if(_nonblocking)flags|=O_NONBLOCK;
- else flags&=~O_NONBLOCK;
- return fcntl(_fd,F_SETFL,flags);
-#else
- return ioctl(_fd,FIONBIO,&_nonblocking);
-#endif
-}
-
-/*Disable/enable write coalescing if we can.
- We always send whole requests at once and always parse the response headers
- before sending another one, so normally write coalescing just causes added
- delay.*/
-static void op_sock_set_tcp_nodelay(op_sock _fd,int _nodelay){
-# if defined(TCP_NODELAY)&&(defined(IPPROTO_TCP)||defined(SOL_TCP))
-# if defined(IPPROTO_TCP)
-# define OP_SO_LEVEL IPPROTO_TCP
-# else
-# define OP_SO_LEVEL SOL_TCP
-# endif
- /*It doesn't really matter if this call fails, but it would be interesting
- to hit a case where it does.*/
- OP_ALWAYS_TRUE(!setsockopt(_fd,OP_SO_LEVEL,TCP_NODELAY,
- &_nodelay,sizeof(_nodelay)));
-# endif
-}
-
-#if defined(_WIN32)
-static void op_init_winsock(){
- static LONG count;
- static WSADATA wsadata;
- if(InterlockedIncrement(&count)==1)WSAStartup(0x0202,&wsadata);
-}
-#endif
-
-/*A single physical connection to an HTTP server.
- We may have several of these open at once.*/
-struct OpusHTTPConn{
- /*The current position indicator for this connection.*/
- opus_int64 pos;
- /*The position where the current request will end, or -1 if we're reading
- until EOF (an unseekable stream or the initial HTTP/1.0 request).*/
- opus_int64 end_pos;
- /*The position where next request we've sent will start, or -1 if we haven't
- sent the next request yet.*/
- opus_int64 next_pos;
- /*The end of the next request or -1 if we requested the rest of the resource.
- This is only set to a meaningful value if next_pos is not -1.*/
- opus_int64 next_end;
- /*The SSL connection, if this is https.*/
- SSL *ssl_conn;
- /*The next connection in either the LRU or free list.*/
- OpusHTTPConn *next;
- /*The last time we blocked for reading from this connection.*/
- struct timeb read_time;
- /*The number of bytes we've read since the last time we blocked.*/
- opus_int64 read_bytes;
- /*The estimated throughput of this connection, in bytes/s.*/
- opus_int64 read_rate;
- /*The socket we're reading from.*/
- op_sock fd;
- /*The number of remaining requests we are allowed on this connection.*/
- int nrequests_left;
- /*The chunk size to use for pipelining requests.*/
- opus_int32 chunk_size;
-};
-
-static void op_http_conn_init(OpusHTTPConn *_conn){
- _conn->next_pos=-1;
- _conn->ssl_conn=NULL;
- _conn->next=NULL;
- _conn->fd=OP_INVALID_SOCKET;
-}
-
-static void op_http_conn_clear(OpusHTTPConn *_conn){
- if(_conn->ssl_conn!=NULL)SSL_free(_conn->ssl_conn);
- /*SSL frees the BIO for us.*/
- if(_conn->fd!=OP_INVALID_SOCKET)close(_conn->fd);
-}
-
-/*The global stream state.*/
-struct OpusHTTPStream{
- /*The list of connections.*/
- OpusHTTPConn conns[OP_NCONNS_MAX];
- /*The context object used as a framework for TLS/SSL functions.*/
- SSL_CTX *ssl_ctx;
- /*The cached session to reuse for future connections.*/
- SSL_SESSION *ssl_session;
- /*The LRU list (ordered from MRU to LRU) of currently connected
- connections.*/
- OpusHTTPConn *lru_head;
- /*The free list.*/
- OpusHTTPConn *free_head;
- /*The URL to connect to.*/
- OpusParsedURL url;
- /*Information about the address we connected to.*/
- struct addrinfo addr_info;
- /*The address we connected to.*/
- union{
- struct sockaddr s;
- struct sockaddr_in v4;
- struct sockaddr_in6 v6;
- } addr;
- /*The last time we re-resolved the host.*/
- struct timeb resolve_time;
- /*A buffer used to build HTTP requests.*/
- OpusStringBuf request;
- /*A buffer used to build proxy CONNECT requests.*/
- OpusStringBuf proxy_connect;
- /*A buffer used to receive the response headers.*/
- OpusStringBuf response;
- /*The Content-Length, if specified, or -1 otherwise.
- This will always be specified for seekable streams.*/
- opus_int64 content_length;
- /*The position indicator used when no connection is active.*/
- opus_int64 pos;
- /*The host we actually connected to.*/
- char *connect_host;
- /*The port we actually connected to.*/
- unsigned connect_port;
- /*The connection we're currently reading from.
- This can be -1 if no connection is active.*/
- int cur_conni;
- /*Whether or not the server supports range requests.*/
- int seekable;
- /*Whether or not the server supports HTTP/1.1 with persistent connections.*/
- int pipeline;
- /*Whether or not we should skip certificate checks.*/
- int skip_certificate_check;
- /*The offset of the tail of the request.
- Only the offset in the Range: header appears after this, allowing us to
- quickly edit the request to ask for a new range.*/
- int request_tail;
- /*The estimated time required to open a new connection, in milliseconds.*/
- opus_int32 connect_rate;
-};
-
-static void op_http_stream_init(OpusHTTPStream *_stream){
- OpusHTTPConn **pnext;
- int ci;
- pnext=&_stream->free_head;
- for(ci=0;ci<OP_NCONNS_MAX;ci++){
- op_http_conn_init(_stream->conns+ci);
- *pnext=_stream->conns+ci;
- pnext=&_stream->conns[ci].next;
- }
- _stream->ssl_ctx=NULL;
- _stream->ssl_session=NULL;
- _stream->lru_head=NULL;
- op_parsed_url_init(&_stream->url);
- op_sb_init(&_stream->request);
- op_sb_init(&_stream->proxy_connect);
- op_sb_init(&_stream->response);
- _stream->connect_host=NULL;
- _stream->seekable=0;
-}
-
-/*Close the connection and move it to the free list.
- _stream: The stream containing the free list.
- _conn: The connection to close.
- _pnext: The linked-list pointer currently pointing to this connection.
- _gracefully: Whether or not to shut down cleanly.*/
-static void op_http_conn_close(OpusHTTPStream *_stream,OpusHTTPConn *_conn,
- OpusHTTPConn **_pnext,int _gracefully){
- /*If we don't shut down gracefully, the server MUST NOT re-use our session
- according to RFC 2246, because it can't tell the difference between an
- abrupt close and a truncation attack.
- So we shut down gracefully if we can.
- However, we will not wait if this would block (it's not worth the savings
- from session resumption to do so).
- Clients (that's us) MAY resume a TLS session that ended with an incomplete
- close, according to RFC 2818, so there's no reason to make sure the server
- shut things down gracefully.*/
- if(_gracefully&&_conn->ssl_conn!=NULL)SSL_shutdown(_conn->ssl_conn);
- op_http_conn_clear(_conn);
- _conn->next_pos=-1;
- _conn->ssl_conn=NULL;
- _conn->fd=OP_INVALID_SOCKET;
- OP_ASSERT(*_pnext==_conn);
- *_pnext=_conn->next;
- _conn->next=_stream->free_head;
- _stream->free_head=_conn;
-}
-
-static void op_http_stream_clear(OpusHTTPStream *_stream){
- while(_stream->lru_head!=NULL){
- op_http_conn_close(_stream,_stream->lru_head,&_stream->lru_head,0);
- }
- if(_stream->ssl_session!=NULL)SSL_SESSION_free(_stream->ssl_session);
- if(_stream->ssl_ctx!=NULL)SSL_CTX_free(_stream->ssl_ctx);
- op_sb_clear(&_stream->response);
- op_sb_clear(&_stream->proxy_connect);
- op_sb_clear(&_stream->request);
- if(_stream->connect_host!=_stream->url.host)_ogg_free(_stream->connect_host);
- op_parsed_url_clear(&_stream->url);
-}
-
-static int op_http_conn_write_fully(OpusHTTPConn *_conn,
- const char *_buf,int _buf_size){
- struct pollfd fd;
- SSL *ssl_conn;
- fd.fd=_conn->fd;
- ssl_conn=_conn->ssl_conn;
- while(_buf_size>0){
- int err;
- if(ssl_conn!=NULL){
- int ret;
- ret=SSL_write(ssl_conn,_buf,_buf_size);
- if(ret>0){
- /*Wrote some data.*/
- _buf+=ret;
- _buf_size-=ret;
- continue;
- }
- /*Connection closed.*/
- else if(ret==0)return OP_FALSE;
- err=SSL_get_error(ssl_conn,ret);
- /*Yes, renegotiations can cause SSL_write() to block for reading.*/
- if(err==SSL_ERROR_WANT_READ)fd.events=POLLIN;
- else if(err==SSL_ERROR_WANT_WRITE)fd.events=POLLOUT;
- else return OP_FALSE;
- }
- else{
- ssize_t ret;
- op_reset_errno();
- ret=send(fd.fd,_buf,_buf_size,0);
- if(ret>0){
- _buf+=ret;
- _buf_size-=ret;
- continue;
- }
- err=op_errno();
- if(err!=EAGAIN&&err!=EWOULDBLOCK)return OP_FALSE;
- fd.events=POLLOUT;
- }
- if(poll(&fd,1,OP_POLL_TIMEOUT_MS)<=0)return OP_FALSE;
- }
- return 0;
-}
-
-static int op_http_conn_estimate_available(OpusHTTPConn *_conn){
- int available;
- int ret;
- ret=ioctl(_conn->fd,FIONREAD,&available);
- if(ret<0)available=0;
- /*This requires the SSL read_ahead flag to be unset to work.
- We ignore partial records as well as the protocol overhead for any pending
- bytes.
- This means we might return somewhat less than can truly be read without
- blocking (if there's a partial record).
- This is okay, because we're using this value to estimate network transfer
- time, and we _have_ already received those bytes.
- We also might return slightly more (due to protocol overhead), but that's
- small enough that it probably doesn't matter.*/
- if(_conn->ssl_conn!=NULL)available+=SSL_pending(_conn->ssl_conn);
- return available;
-}
-
-static opus_int32 op_time_diff_ms(const struct timeb *_end,
- const struct timeb *_start){
- opus_int64 dtime;
- dtime=_end->time-(opus_int64)_start->time;
- OP_ASSERT(_end->millitm<1000);
- OP_ASSERT(_start->millitm<1000);
- if(OP_UNLIKELY(dtime>(OP_INT32_MAX-1000)/1000))return OP_INT32_MAX;
- if(OP_UNLIKELY(dtime<(OP_INT32_MIN+1000)/1000))return OP_INT32_MIN;
- return (opus_int32)dtime*1000+_end->millitm-_start->millitm;
-}
-
-/*Update the read rate estimate for this connection.*/
-static void op_http_conn_read_rate_update(OpusHTTPConn *_conn){
- struct timeb read_time;
- opus_int32 read_delta_ms;
- opus_int64 read_delta_bytes;
- opus_int64 read_rate;
- read_delta_bytes=_conn->read_bytes;
- if(read_delta_bytes<=0)return;
- ftime(&read_time);
- read_delta_ms=op_time_diff_ms(&read_time,&_conn->read_time);
- read_rate=_conn->read_rate;
- read_delta_ms=OP_MAX(read_delta_ms,1);
- read_rate+=read_delta_bytes*1000/read_delta_ms-read_rate+4>>3;
- *&_conn->read_time=*&read_time;
- _conn->read_bytes=0;
- _conn->read_rate=read_rate;
-}
-
-/*Tries to read from the given connection.
- [out] _buf: Returns the data read.
- _buf_size: The size of the buffer.
- _blocking: Whether or not to block until some data is retrieved.
- Return: A positive number of bytes read on success.
- 0: The read would block, or the connection was closed.
- OP_EREAD: There was a fatal read error.*/
-static int op_http_conn_read(OpusHTTPConn *_conn,
- char *_buf,int _buf_size,int _blocking){
- struct pollfd fd;
- SSL *ssl_conn;
- int nread;
- int nread_unblocked;
- fd.fd=_conn->fd;
- ssl_conn=_conn->ssl_conn;
- nread=nread_unblocked=0;
- /*RFC 2818 says "client implementations MUST treat any premature closes as
- errors and the data received as potentially truncated," so we make very
- sure to report read errors upwards.*/
- do{
- int err;
- if(ssl_conn!=NULL){
- int ret;
- ret=SSL_read(ssl_conn,_buf+nread,_buf_size-nread);
- OP_ASSERT(ret<=_buf_size-nread);
- if(ret>0){
- /*Read some data.
- Keep going to see if there's more.*/
- nread+=ret;
- nread_unblocked+=ret;
- continue;
- }
- /*If we already read some data, return it right now.*/
- if(nread>0)break;
- err=SSL_get_error(ssl_conn,ret);
- if(ret==0){
- /*Connection close.
- Check for a clean shutdown to prevent truncation attacks.
- This check always succeeds for SSLv2, as it has no "close notify"
- message and thus can't verify an orderly shutdown.*/
- return err==SSL_ERROR_ZERO_RETURN?0:OP_EREAD;
- }
- if(err==SSL_ERROR_WANT_READ)fd.events=POLLIN;
- /*Yes, renegotiations can cause SSL_read() to block for writing.*/
- else if(err==SSL_ERROR_WANT_WRITE)fd.events=POLLOUT;
- /*Some other error.*/
- else return OP_EREAD;
- }
- else{
- ssize_t ret;
- op_reset_errno();
- ret=recv(fd.fd,_buf+nread,_buf_size-nread,0);
- OP_ASSERT(ret<=_buf_size-nread);
- if(ret>0){
- /*Read some data.
- Keep going to see if there's more.*/
- nread+=ret;
- nread_unblocked+=ret;
- continue;
- }
- /*If we already read some data or the connection was closed, return
- right now.*/
- if(ret==0||nread>0)break;
- err=op_errno();
- if(err!=EAGAIN&&err!=EWOULDBLOCK)return OP_EREAD;
- fd.events=POLLIN;
- }
- _conn->read_bytes+=nread_unblocked;
- op_http_conn_read_rate_update(_conn);
- nread_unblocked=0;
- if(!_blocking)break;
- /*Need to wait to get any data at all.*/
- if(poll(&fd,1,OP_POLL_TIMEOUT_MS)<=0)return OP_EREAD;
- }
- while(nread<_buf_size);
- _conn->read_bytes+=nread_unblocked;
- return nread;
-}
-
-/*Tries to look at the pending data for a connection without consuming it.
- [out] _buf: Returns the data at which we're peeking.
- _buf_size: The size of the buffer.*/
-static int op_http_conn_peek(OpusHTTPConn *_conn,char *_buf,int _buf_size){
- struct pollfd fd;
- SSL *ssl_conn;
- int ret;
- fd.fd=_conn->fd;
- ssl_conn=_conn->ssl_conn;
- for(;;){
- int err;
- if(ssl_conn!=NULL){
- ret=SSL_peek(ssl_conn,_buf,_buf_size);
- /*Either saw some data or the connection was closed.*/
- if(ret>=0)return ret;
- err=SSL_get_error(ssl_conn,ret);
- if(err==SSL_ERROR_WANT_READ)fd.events=POLLIN;
- /*Yes, renegotiations can cause SSL_peek() to block for writing.*/
- else if(err==SSL_ERROR_WANT_WRITE)fd.events=POLLOUT;
- else return 0;
- }
- else{
- op_reset_errno();
- ret=(int)recv(fd.fd,_buf,_buf_size,MSG_PEEK);
- /*Either saw some data or the connection was closed.*/
- if(ret>=0)return ret;
- err=op_errno();
- if(err!=EAGAIN&&err!=EWOULDBLOCK)return 0;
- fd.events=POLLIN;
- }
- /*Need to wait to get any data at all.*/
- if(poll(&fd,1,OP_POLL_TIMEOUT_MS)<=0)return 0;
- }
-}
-
-/*When parsing response headers, RFC 2616 mandates that all lines end in CR LF.
- However, even in the year 2012, I have seen broken servers use just a LF.
- This is the evil that Postel's advice from RFC 761 breeds.*/
-
-/*Reads the entirety of a response to an HTTP request into the response buffer.
- Actual parsing and validation is done later.
- Return: The number of bytes in the response on success, OP_EREAD if the
- connection was closed before reading any data, or another negative
- value on any other error.*/
-static int op_http_conn_read_response(OpusHTTPConn *_conn,
- OpusStringBuf *_response){
- int ret;
- _response->nbuf=0;
- ret=op_sb_ensure_capacity(_response,OP_RESPONSE_SIZE_MIN);
- if(OP_UNLIKELY(ret<0))return ret;
- for(;;){
- char *buf;
- int size;
- int capacity;
- int read_limit;
- int terminated;
- size=_response->nbuf;
- capacity=_response->cbuf-1;
- if(OP_UNLIKELY(size>=capacity)){
- ret=op_sb_grow(_response,OP_RESPONSE_SIZE_MAX);
- if(OP_UNLIKELY(ret<0))return ret;
- capacity=_response->cbuf-1;
- /*The response was too large.
- This prevents a bad server from running us out of memory.*/
- if(OP_UNLIKELY(size>=capacity))return OP_EIMPL;
- }
- buf=_response->buf;
- ret=op_http_conn_peek(_conn,buf+size,capacity-size);
- if(OP_UNLIKELY(ret<=0))return size<=0?OP_EREAD:OP_FALSE;
- /*We read some data.*/
- /*Make sure the starting characters are "HTTP".
- Otherwise we could wind up waiting forever for a response from
- something that is not an HTTP server.*/
- if(size<4&&op_strncasecmp(buf,"HTTP",OP_MIN(size+ret,4))!=0){
- return OP_FALSE;
- }
- /*How far can we read without passing the "\r\n\r\n" terminator?*/
- buf[size+ret]='\0';
- terminated=0;
- for(read_limit=OP_MAX(size-3,0);read_limit<size+ret;read_limit++){
- /*We don't look for the leading '\r' thanks to broken servers.*/
- if(buf[read_limit]=='\n'){
- if(buf[read_limit+1]=='\r'&&OP_LIKELY(buf[read_limit+2]=='\n')){
- terminated=3;
- break;
- }
- /*This case is for broken servers.*/
- else if(OP_UNLIKELY(buf[read_limit+1]=='\n')){
- terminated=2;
- break;
- }
- }
- }
- read_limit+=terminated;
- OP_ASSERT(size<=read_limit);
- OP_ASSERT(read_limit<=size+ret);
- /*Actually consume that data.*/
- ret=op_http_conn_read(_conn,buf+size,read_limit-size,1);
- if(OP_UNLIKELY(ret<=0))return OP_FALSE;
- size+=ret;
- buf[size]='\0';
- _response->nbuf=size;
- /*We found the terminator and read all the data up to and including it.*/
- if(terminated&&OP_LIKELY(size>=read_limit))return size;
- }
- return OP_EIMPL;
-}
-
-# define OP_HTTP_DIGIT "0123456789"
-
-/*The Reason-Phrase is not allowed to contain control characters, except
- horizontal tab (HT: \011).*/
-# define OP_HTTP_CREASON_PHRASE \
- "\001\002\003\004\005\006\007\010\012\013\014\015\016\017\020\021" \
- "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\177"
-
-# define OP_HTTP_CTLS \
- "\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020" \
- "\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\177"
-
-/*This also includes '\t', but we get that from OP_HTTP_CTLS.*/
-# define OP_HTTP_SEPARATORS " \"(),/:;<=>?@[\\]{}"
-
-/*TEXT can also include LWS, but that has structure, so we parse it
- separately.*/
-# define OP_HTTP_CTOKEN OP_HTTP_CTLS OP_HTTP_SEPARATORS
-
-/*Return: The amount of linear white space (LWS) at the start of _s.*/
-static int op_http_lwsspn(const char *_s){
- int i;
- for(i=0;;){
- if(_s[0]=='\r'&&_s[1]=='\n'&&(_s[2]=='\t'||_s[2]==' '))i+=3;
- /*This case is for broken servers.*/
- else if(_s[0]=='\n'&&(_s[1]=='\t'||_s[1]==' '))i+=2;
- else if(_s[i]=='\t'||_s[i]==' ')i++;
- else return i;
- }
-}
-
-static char *op_http_parse_status_line(int *_v1_1_compat,
- char **_status_code,char *_response){
- char *next;
- char *status_code;
- int v1_1_compat;
- size_t d;
- /*RFC 2616 Section 6.1 does not say that the tokens in the Status-Line cannot
- be separated by optional LWS, but since it specifically calls out where
- spaces are to be placed and that CR and LF are not allowed except at the
- end, I am assuming this to be true.*/
- /*We already validated that this starts with "HTTP"*/
- OP_ASSERT(op_strncasecmp(_response,"HTTP",4)==0);
- next=_response+4;
- if(OP_UNLIKELY(*next++!='/'))return NULL;
- d=strspn(next,OP_HTTP_DIGIT);
- /*"Leading zeros MUST be ignored by recipients."*/
- while(*next=='0'){
- next++;
- OP_ASSERT(d>0);
- d--;
- }
- /*We only support version 1.x*/
- if(OP_UNLIKELY(d!=1)||OP_UNLIKELY(*next++!='1'))return NULL;
- if(OP_UNLIKELY(*next++!='.'))return NULL;
- d=strspn(next,OP_HTTP_DIGIT);
- if(OP_UNLIKELY(d<=0))return NULL;
- /*"Leading zeros MUST be ignored by recipients."*/
- while(*next=='0'){
- next++;
- OP_ASSERT(d>0);
- d--;
- }
- /*We don't need to parse the version number.
- Any non-zero digit means it's greater than 1.*/
- v1_1_compat=d>0;
- next+=d;
- if(OP_UNLIKELY(*next++!=' '))return NULL;
- status_code=next;
- d=strspn(next,OP_HTTP_DIGIT);
- if(OP_UNLIKELY(d!=3))return NULL;
- next+=d;
- /*The Reason-Phrase can be empty, but the space must be here.*/
- if(OP_UNLIKELY(*next++!=' '))return NULL;
- next+=strcspn(next,OP_HTTP_CREASON_PHRASE);
- /*We are not mandating this be present thanks to broken servers.*/
- if(OP_LIKELY(*next=='\r'))next++;
- if(OP_UNLIKELY(*next++!='\n'))return NULL;
- if(_v1_1_compat!=NULL)*_v1_1_compat=v1_1_compat;
- *_status_code=status_code;
- return next;
-}
-
-/*Get the next response header.
- [out] _header: The header token, NUL-terminated, with leading and trailing
- whitespace stripped, and converted to lower case (to simplify
- case-insensitive comparisons), or NULL if there are no more
- response headers.
- [out] _cdr: The remaining contents of the header, excluding the initial
- colon (':') and the terminating CRLF ("\r\n"),
- NUL-terminated, and with leading and trailing whitespace
- stripped, or NULL if there are no more response headers.
- [inout] _s: On input, this points to the start of the current line of the
- response headers.
- On output, it points to the start of the first line following
- this header, or NULL if there are no more response headers.
- Return: 0 on success, or a negative value on failure.*/
-static int op_http_get_next_header(char **_header,char **_cdr,char **_s){
- char *header;
- char *header_end;
- char *cdr;
- char *cdr_end;
- char *next;
- size_t d;
- next=*_s;
- /*The second case is for broken servers.*/
- if(next[0]=='\r'&&next[1]=='\n'||OP_UNLIKELY(next[0]=='\n')){
- /*No more headers.*/
- *_header=NULL;
- *_cdr=NULL;
- *_s=NULL;
- return 0;
- }
- header=next+op_http_lwsspn(next);
- d=strcspn(header,OP_HTTP_CTOKEN);
- if(OP_UNLIKELY(d<=0))return OP_FALSE;
- header_end=header+d;
- next=header_end+op_http_lwsspn(header_end);
- if(OP_UNLIKELY(*next++!=':'))return OP_FALSE;
- next+=op_http_lwsspn(next);
- cdr=next;
- do{
- cdr_end=next+strcspn(next,OP_HTTP_CTLS);
- next=cdr_end+op_http_lwsspn(cdr_end);
- }
- while(next>cdr_end);
- /*We are not mandating this be present thanks to broken servers.*/
- if(OP_LIKELY(*next=='\r'))next++;
- if(OP_UNLIKELY(*next++!='\n'))return OP_FALSE;
- *header_end='\0';
- *cdr_end='\0';
- /*Field names are case-insensitive.*/
- op_string_tolower(header);
- *_header=header;
- *_cdr=cdr;
- *_s=next;
- return 0;
-}
-
-static opus_int64 op_http_parse_nonnegative_int64(const char **_next,
- const char *_cdr){
- const char *next;
- opus_int64 ret;
- int i;
- next=_cdr+strspn(_cdr,OP_HTTP_DIGIT);
- *_next=next;
- if(OP_UNLIKELY(next<=_cdr))return OP_FALSE;
- while(*_cdr=='0')_cdr++;
- if(OP_UNLIKELY(next-_cdr>19))return OP_EIMPL;
- ret=0;
- for(i=0;i<next-_cdr;i++){
- int digit;
- digit=_cdr[i]-'0';
- /*Check for overflow.*/
- if(OP_UNLIKELY(ret>(OP_INT64_MAX-9)/10+(digit<=7)))return OP_EIMPL;
- ret=ret*10+digit;
- }
- return ret;
-}
-
-static opus_int64 op_http_parse_content_length(const char *_cdr){
- const char *next;
- opus_int64 content_length;
- content_length=op_http_parse_nonnegative_int64(&next,_cdr);
- if(OP_UNLIKELY(*next!='\0'))return OP_FALSE;
- return content_length;
-}
-
-static int op_http_parse_content_range(opus_int64 *_first,opus_int64 *_last,
- opus_int64 *_length,const char *_cdr){
- opus_int64 first;
- opus_int64 last;
- opus_int64 length;
- size_t d;
- if(OP_UNLIKELY(op_strncasecmp(_cdr,"bytes",5)!=0))return OP_FALSE;
- _cdr+=5;
- d=op_http_lwsspn(_cdr);
- if(OP_UNLIKELY(d<=0))return OP_FALSE;
- _cdr+=d;
- if(*_cdr!='*'){
- first=op_http_parse_nonnegative_int64(&_cdr,_cdr);
- if(OP_UNLIKELY(first<0))return (int)first;
- _cdr+=op_http_lwsspn(_cdr);
- if(*_cdr++!='-')return OP_FALSE;
- _cdr+=op_http_lwsspn(_cdr);
- last=op_http_parse_nonnegative_int64(&_cdr,_cdr);
- if(OP_UNLIKELY(last<0))return (int)last;
- _cdr+=op_http_lwsspn(_cdr);
- }
- else{
- /*This is for a 416 response (Requested range not satisfiable).*/
- first=last=-1;
- _cdr++;
- }
- if(OP_UNLIKELY(*_cdr++!='/'))return OP_FALSE;
- if(*_cdr!='*'){
- length=op_http_parse_nonnegative_int64(&_cdr,_cdr);
- if(OP_UNLIKELY(length<0))return (int)length;
- }
- else{
- /*The total length is unspecified.*/
- _cdr++;
- length=-1;
- }
- if(OP_UNLIKELY(*_cdr!='\0'))return OP_FALSE;
- if(OP_UNLIKELY(last<first))return OP_FALSE;
- if(length>=0&&OP_UNLIKELY(last>=length))return OP_FALSE;
- *_first=first;
- *_last=last;
- *_length=length;
- return 0;
-}
-
-/*Parse the Connection response header and look for a "close" token.
- Return: 1 if a "close" token is found, 0 if it's not found, and a negative
- value on error.*/
-static int op_http_parse_connection(char *_cdr){
- size_t d;
- int ret;
- ret=0;
- for(;;){
- d=strcspn(_cdr,OP_HTTP_CTOKEN);
- if(OP_UNLIKELY(d<=0))return OP_FALSE;
- if(op_strncasecmp(_cdr,"close",(int)d)==0)ret=1;
- /*We're supposed to strip and ignore any headers mentioned in the
- Connection header if this response is from an HTTP/1.0 server (to
- work around forwarding of hop-by-hop headers by old proxies), but the
- only hop-by-hop header we look at is Connection itself.
- Everything else is a well-defined end-to-end header, and going back and
- undoing the things we did based on already-examined headers would be
- hard (since we only scan them once, in a destructive manner).
- Therefore we just ignore all the other tokens.*/
- _cdr+=d;
- d=op_http_lwsspn(_cdr);
- if(d<=0)break;
- _cdr+=d;
- }
- return OP_UNLIKELY(*_cdr!='\0')?OP_FALSE:ret;
-}
-
-typedef int (*op_ssl_step_func)(SSL *_ssl_conn);
-
-/*Try to run an SSL function to completion (blocking if necessary).*/
-static int op_do_ssl_step(SSL *_ssl_conn,op_sock _fd,op_ssl_step_func _step){
- struct pollfd fd;
- fd.fd=_fd;
- for(;;){
- int ret;
- int err;
- ret=(*_step)(_ssl_conn);
- if(ret>=0)return ret;
- err=SSL_get_error(_ssl_conn,ret);
- if(err==SSL_ERROR_WANT_READ)fd.events=POLLIN;
- else if(err==SSL_ERROR_WANT_WRITE)fd.events=POLLOUT;
- else return OP_FALSE;
- if(poll(&fd,1,OP_POLL_TIMEOUT_MS)<=0)return OP_FALSE;
- }
-}
-
-/*Implement a BIO type that just indicates every operation should be retried.
- We use this when initializing an SSL connection via a proxy to allow the
- initial handshake to proceed all the way up to the first read attempt, and
- then return.
- This allows the TLS client hello message to be pipelined with the HTTP
- CONNECT request.*/
-
-static int op_bio_retry_write(BIO *_b,const char *_buf,int _num){
- (void)_buf;
- (void)_num;
- BIO_clear_retry_flags(_b);
- BIO_set_retry_write(_b);
- return -1;
-}
-
-static int op_bio_retry_read(BIO *_b,char *_buf,int _num){
- (void)_buf;
- (void)_num;
- BIO_clear_retry_flags(_b);
- BIO_set_retry_read(_b);
- return -1;
-}
-
-static int op_bio_retry_puts(BIO *_b,const char *_str){
- return op_bio_retry_write(_b,_str,0);
-}
-
-static long op_bio_retry_ctrl(BIO *_b,int _cmd,long _num,void *_ptr){
- long ret;
- (void)_b;
- (void)_num;
- (void)_ptr;
- ret=0;
- switch(_cmd){
- case BIO_CTRL_RESET:
- case BIO_C_RESET_READ_REQUEST:{
- BIO_clear_retry_flags(_b);
- /*Fall through.*/
- }
- case BIO_CTRL_EOF:
- case BIO_CTRL_SET:
- case BIO_CTRL_SET_CLOSE:
- case BIO_CTRL_FLUSH:
- case BIO_CTRL_DUP:{
- ret=1;
- }break;
- }
- return ret;
-}
-
-# if OPENSSL_VERSION_NUMBER<0x10100000L
-# define BIO_set_data(_b,_ptr) ((_b)->ptr=(_ptr))
-# define BIO_set_init(_b,_init) ((_b)->init=(_init))
-# endif
-
-static int op_bio_retry_new(BIO *_b){
- BIO_set_init(_b,1);
-# if OPENSSL_VERSION_NUMBER<0x10100000L
- _b->num=0;
-# endif
- BIO_set_data(_b,NULL);
- return 1;
-}
-
-static int op_bio_retry_free(BIO *_b){
- return _b!=NULL;
-}
-
-# if OPENSSL_VERSION_NUMBER<0x10100000L
-/*This is not const because OpenSSL doesn't allow it, even though it won't
- write to it.*/
-static BIO_METHOD op_bio_retry_method={
- BIO_TYPE_NULL,
- "retry",
- op_bio_retry_write,
- op_bio_retry_read,
- op_bio_retry_puts,
- NULL,
- op_bio_retry_ctrl,
- op_bio_retry_new,
- op_bio_retry_free,
- NULL
-};
-# endif
-
-/*Establish a CONNECT tunnel and pipeline the start of the TLS handshake for
- proxying https URL requests.*/
-static int op_http_conn_establish_tunnel(OpusHTTPStream *_stream,
- OpusHTTPConn *_conn,op_sock _fd,SSL *_ssl_conn,BIO *_ssl_bio){
-# if OPENSSL_VERSION_NUMBER>=0x10100000L
- BIO_METHOD *bio_retry_method;
-# endif
- BIO *retry_bio;
- char *status_code;
- char *next;
- int ret;
- _conn->ssl_conn=NULL;
- _conn->fd=_fd;
- OP_ASSERT(_stream->proxy_connect.nbuf>0);
- ret=op_http_conn_write_fully(_conn,
- _stream->proxy_connect.buf,_stream->proxy_connect.nbuf);
- if(OP_UNLIKELY(ret<0))return ret;
-# if OPENSSL_VERSION_NUMBER>=0x10100000L
- bio_retry_method=BIO_meth_new(BIO_TYPE_NULL,"retry");
- if(bio_retry_method==NULL)return OP_EFAULT;
- BIO_meth_set_write(bio_retry_method,op_bio_retry_write);
- BIO_meth_set_read(bio_retry_method,op_bio_retry_read);
- BIO_meth_set_puts(bio_retry_method,op_bio_retry_puts);
- BIO_meth_set_ctrl(bio_retry_method,op_bio_retry_ctrl);
- BIO_meth_set_create(bio_retry_method,op_bio_retry_new);
- BIO_meth_set_destroy(bio_retry_method,op_bio_retry_free);
- retry_bio=BIO_new(bio_retry_method);
- if(OP_UNLIKELY(retry_bio==NULL)){
- BIO_meth_free(bio_retry_method);
- return OP_EFAULT;
- }
-# else
- retry_bio=BIO_new(&op_bio_retry_method);
- if(OP_UNLIKELY(retry_bio==NULL))return OP_EFAULT;
-# endif
- SSL_set_bio(_ssl_conn,retry_bio,_ssl_bio);
- SSL_set_connect_state(_ssl_conn);
- /*This shouldn't succeed, since we can't read yet.*/
- OP_ALWAYS_TRUE(SSL_connect(_ssl_conn)<0);
- SSL_set_bio(_ssl_conn,_ssl_bio,_ssl_bio);
-# if OPENSSL_VERSION_NUMBER>=0x10100000L
- BIO_meth_free(bio_retry_method);
-# endif
- /*Only now do we disable write coalescing, to allow the CONNECT
- request and the start of the TLS handshake to be combined.*/
- op_sock_set_tcp_nodelay(_fd,1);
- ret=op_http_conn_read_response(_conn,&_stream->response);
- if(OP_UNLIKELY(ret<0))return ret;
- next=op_http_parse_status_line(NULL,&status_code,_stream->response.buf);
- /*According to RFC 2817, "Any successful (2xx) response to a
- CONNECT request indicates that the proxy has established a
- connection to the requested host and port.*/
- if(OP_UNLIKELY(next==NULL)||OP_UNLIKELY(status_code[0]!='2'))return OP_FALSE;
- return 0;
-}
-
-/*Match a host name against a host with a possible wildcard pattern according
- to the rules of RFC 6125 Section 6.4.3.
- Return: 0 if the pattern doesn't match, and a non-zero value if it does.*/
-static int op_http_hostname_match(const char *_host,size_t _host_len,
- ASN1_STRING *_pattern){
- const char *pattern;
- size_t host_label_len;
- size_t host_suffix_len;
- size_t pattern_len;
- size_t pattern_label_len;
- size_t pattern_prefix_len;
- size_t pattern_suffix_len;
- pattern=(const char *)ASN1_STRING_data(_pattern);
- pattern_len=strlen(pattern);
- /*Check the pattern for embedded NULs.*/
- if(OP_UNLIKELY(pattern_len!=(size_t)ASN1_STRING_length(_pattern)))return 0;
- pattern_label_len=strcspn(pattern,".");
- OP_ASSERT(pattern_label_len<=pattern_len);
- pattern_prefix_len=strcspn(pattern,"*");
- if(pattern_prefix_len>=pattern_label_len){
- /*"The client SHOULD NOT attempt to match a presented identifier in which
- the wildcard character comprises a label other than the left-most label
- (e.g., do not match bar.*.example.net)." [RFC 6125 Section 6.4.3]*/
- if(pattern_prefix_len<pattern_len)return 0;
- /*If the pattern does not contain a wildcard in the first element, do an
- exact match.
- Don't use the system strcasecmp here, as that uses the locale and
- RFC 4343 makes clear that DNS's case-insensitivity only applies to
- the ASCII range.*/
- return _host_len==pattern_len&&op_strncasecmp(_host,pattern,_host_len)==0;
- }
- /*"However, the client SHOULD NOT attempt to match a presented identifier
- where the wildcard character is embedded within an A-label or U-label of
- an internationalized domain name." [RFC 6125 Section 6.4.3]*/
- if(op_strncasecmp(pattern,"xn--",4)==0)return 0;
- host_label_len=strcspn(_host,".");
- /*Make sure the host has at least two dots, to prevent the wildcard match
- from being ridiculously wide.
- We should have already checked to ensure it had at least one.*/
- if(OP_UNLIKELY(_host[host_label_len]!='.')
- ||strchr(_host+host_label_len+1,'.')==NULL){
- return 0;
- }
- OP_ASSERT(host_label_len<_host_len);
- /*"If the wildcard character is the only character of the left-most label in
- the presented identifier, the client SHOULD NOT compare against anything
- but the left-most label of the reference identifier (e.g., *.example.com
- would match foo.example.com but not bar.foo.example.com)." [RFC 6125
- Section 6.4.3]
- This is really confusingly worded, as we check this by actually comparing
- the rest of the pattern for an exact match.
- We also use the fact that the wildcard must match at least one character,
- so the left-most label of the hostname must be at least as large as the
- left-most label of the pattern.*/
- if(host_label_len<pattern_label_len)return 0;
- OP_ASSERT(pattern[pattern_prefix_len]=='*');
- /*"The client MAY match a presented identifier in which the wildcard
- character is not the only character of the label (e.g., baz*.example.net
- and *baz.example.net and b*z.example.net would be taken to match
- baz1.example.net and foobaz.example.net and buzz.example.net,
- respectively)." [RFC 6125 Section 6.4.3]*/
- pattern_suffix_len=pattern_len-pattern_prefix_len-1;
- host_suffix_len=_host_len-host_label_len
- +pattern_label_len-pattern_prefix_len-1;
- return pattern_suffix_len==host_suffix_len
- &&op_strncasecmp(_host,pattern,pattern_prefix_len)==0
- &&op_strncasecmp(_host+_host_len-host_suffix_len,
- pattern+pattern_prefix_len+1,host_suffix_len)==0;
-}
-
-/*Convert a host to a numeric address, if possible.
- Return: A struct addrinfo containing the address, if it was numeric, and NULL
- otherise.*/
-static struct addrinfo *op_inet_pton(const char *_host){
- struct addrinfo *addrs;
- struct addrinfo hints;
- memset(&hints,0,sizeof(hints));
- hints.ai_socktype=SOCK_STREAM;
- hints.ai_flags=AI_NUMERICHOST;
- if(!getaddrinfo(_host,NULL,&hints,&addrs))return addrs;
- return NULL;
-}
-
-/*Verify the server's hostname matches the certificate they presented using
- the procedure from Section 6 of RFC 6125.
- Return: 0 if the certificate doesn't match, and a non-zero value if it does.*/
-static int op_http_verify_hostname(OpusHTTPStream *_stream,SSL *_ssl_conn){
- X509 *peer_cert;
- STACK_OF(GENERAL_NAME) *san_names;
- char *host;
- size_t host_len;
- int ret;
- host=_stream->url.host;
- host_len=strlen(host);
- peer_cert=SSL_get_peer_certificate(_ssl_conn);
- /*We set VERIFY_PEER, so we shouldn't get here without a certificate.*/
- if(OP_UNLIKELY(peer_cert==NULL))return 0;
- ret=0;
- OP_ASSERT(host_len<INT_MAX);
- /*RFC 2818 says (after correcting for Eratta 1077): "If a subjectAltName
- extension of type dNSName is present, that MUST be used as the identity.
- Otherwise, the (most specific) Common Name field in the Subject field of
- the certificate MUST be used.
- Although the use of the Common Name is existing practice, it is deprecated
- and Certification Authorities are encouraged to use the dNSName
- instead."
- "Matching is performed using the matching rules specified by RFC 2459.
- If more than one identity of a given type is present in the certificate
- (e.g., more than one dNSName name), a match in any one of the set is
- considered acceptable.
- Names may contain the wildcard character * which is condered to match any
- single domain name component or component fragment.
- E.g., *.a.com matches foo.a.com but not bar.foo.a.com.
- f*.com matches foo.com but not bar.com."
- "In some cases, the URI is specified as an IP address rather than a
- hostname.
- In this case, the iPAddress subjectAltName must be present in the
- certificate and must exactly match the IP in the URI."*/
- san_names=X509_get_ext_d2i(peer_cert,NID_subject_alt_name,NULL,NULL);
- if(san_names!=NULL){
- struct addrinfo *addr;
- unsigned char *ip;
- int ip_len;
- int nsan_names;
- int sni;
- /*Check to see if the host was specified as a simple IP address.*/
- addr=op_inet_pton(host);
- ip=NULL;
- ip_len=0;
- if(addr!=NULL){
- switch(addr->ai_family){
- case AF_INET:{
- struct sockaddr_in *s;
- s=(struct sockaddr_in *)addr->ai_addr;
- OP_ASSERT(addr->ai_addrlen>=sizeof(*s));
- ip=(unsigned char *)&s->sin_addr;
- ip_len=sizeof(s->sin_addr);
- }break;
- case AF_INET6:{
- struct sockaddr_in6 *s;
- s=(struct sockaddr_in6 *)addr->ai_addr;
- OP_ASSERT(addr->ai_addrlen>=sizeof(*s));
- ip=(unsigned char *)&s->sin6_addr;
- ip_len=sizeof(s->sin6_addr);
- }break;
- }
- }
- /*We can only verify fully-qualified domain names.
- To quote RFC 6125: "The extracted data MUST include only information that
- can be securely parsed out of the inputs (e.g., parsing the fully
- qualified DNS domain name out of the "host" component (or its
- equivalent) of a URI or deriving the application service type from the
- scheme of a URI) ..."
- We don't have a way to check (without relying on DNS records, which might
- be subverted) if this address is fully-qualified.
- This is particularly problematic when using a CONNECT tunnel, as it is
- the server that does DNS lookup, not us.
- However, we are certain that if the hostname has no '.', it is definitely
- not a fully-qualified domain name (with the exception of crazy TLDs that
- actually resolve, like "uz", but I am willing to ignore those).
- RFC 1535 says "...in any event where a '.' exists in a specified name it
- should be assumed to be a fully qualified domain name (FQDN) and SHOULD
- be tried as a rooted name first."
- That doesn't give us any security guarantees, of course (a subverted DNS
- could fail the original query and our resolver might still retry with a
- local domain appended).
- If we don't have a FQDN, just set the number of names to 0, so we'll fail
- and clean up any resources we allocated.*/
- if(ip==NULL&&strchr(host,'.')==NULL)nsan_names=0;
- /*RFC 2459 says there MUST be at least one, but we don't depend on it.*/
- else nsan_names=sk_GENERAL_NAME_num(san_names);
- for(sni=0;sni<nsan_names;sni++){
- const GENERAL_NAME *name;
- name=sk_GENERAL_NAME_value(san_names,sni);
- if(ip==NULL){
- if(name->type==GEN_DNS
- &&op_http_hostname_match(host,host_len,name->d.dNSName)){
- ret=1;
- break;
- }
- }
- else if(name->type==GEN_IPADD){
- unsigned char *cert_ip;
- /*If we do have an IP address, compare it directly.
- RFC 6125: "When the reference identity is an IP address, the identity
- MUST be converted to the 'network byte order' octet string
- representation.
- For IP Version 4, as specified in RFC 791, the octet string will
- contain exactly four octets.
- For IP Version 6, as specified in RFC 2460, the octet string will
- contain exactly sixteen octets.
- This octet string is then compared against subjectAltName values of
- type iPAddress.
- A match occurs if the reference identity octet string and the value
- octet strings are identical."*/
- cert_ip=ASN1_STRING_data(name->d.iPAddress);
- if(ip_len==ASN1_STRING_length(name->d.iPAddress)
- &&memcmp(ip,cert_ip,ip_len)==0){
- ret=1;
- break;
- }
- }
- }
- sk_GENERAL_NAME_pop_free(san_names,GENERAL_NAME_free);
- if(addr!=NULL)freeaddrinfo(addr);
- }
- /*Do the same FQDN check we did above.
- We don't do this once in advance for both cases, because in the
- subjectAltName case we might have an IPv6 address without a dot.*/
- else if(strchr(host,'.')!=NULL){
- int last_cn_loc;
- int cn_loc;
- /*If there is no subjectAltName, match against commonName.
- RFC 6125 says that at least one significant CA is known to issue certs
- with multiple CNs, although it SHOULD NOT.
- It also says: "The server's identity may also be verified by comparing
- the reference identity to the Common Name (CN) value in the last
- Relative Distinguished Name (RDN) of the subject field of the server's
- certificate (where "last" refers to the DER-encoded order...)."
- So find the last one and check it.*/
- cn_loc=-1;
- do{
- last_cn_loc=cn_loc;
- cn_loc=X509_NAME_get_index_by_NID(X509_get_subject_name(peer_cert),
- NID_commonName,last_cn_loc);
- }
- while(cn_loc>=0);
- ret=last_cn_loc>=0
- &&op_http_hostname_match(host,host_len,
- X509_NAME_ENTRY_get_data(
- X509_NAME_get_entry(X509_get_subject_name(peer_cert),last_cn_loc)));
- }
- X509_free(peer_cert);
- return ret;
-}
-
-/*Perform the TLS handshake on a new connection.*/
-static int op_http_conn_start_tls(OpusHTTPStream *_stream,OpusHTTPConn *_conn,
- op_sock _fd,SSL *_ssl_conn){
- SSL_SESSION *ssl_session;
- BIO *ssl_bio;
- int skip_certificate_check;
- int ret;
- ssl_bio=BIO_new_socket(_fd,BIO_NOCLOSE);
- if(OP_LIKELY(ssl_bio==NULL))return OP_FALSE;
-# if !defined(OPENSSL_NO_TLSEXT)
- /*Support for RFC 6066 Server Name Indication.*/
- SSL_set_tlsext_host_name(_ssl_conn,_stream->url.host);
-# endif
- /*Resume a previous session if available.*/
- if(_stream->ssl_session!=NULL){
- SSL_set_session(_ssl_conn,_stream->ssl_session);
- }
- /*If we're proxying, establish the CONNECT tunnel.*/
- if(_stream->proxy_connect.nbuf>0){
- ret=op_http_conn_establish_tunnel(_stream,_conn,
- _fd,_ssl_conn,ssl_bio);
- if(OP_UNLIKELY(ret<0))return ret;
- }
- else{
- /*Otherwise, just use this socket directly.*/
- op_sock_set_tcp_nodelay(_fd,1);
- SSL_set_bio(_ssl_conn,ssl_bio,ssl_bio);
- SSL_set_connect_state(_ssl_conn);
- }
- ret=op_do_ssl_step(_ssl_conn,_fd,SSL_connect);
- if(OP_UNLIKELY(ret<=0))return OP_FALSE;
- ssl_session=_stream->ssl_session;
- skip_certificate_check=_stream->skip_certificate_check;
- if(ssl_session==NULL||!skip_certificate_check){
- ret=op_do_ssl_step(_ssl_conn,_fd,SSL_do_handshake);
- if(OP_UNLIKELY(ret<=0))return OP_FALSE;
- /*OpenSSL does not do hostname verification, despite the fact that we just
- passed it the hostname above in the call to SSL_set_tlsext_host_name(),
- because they are morons.
- Do it for them.*/
- if(!skip_certificate_check&&!op_http_verify_hostname(_stream,_ssl_conn)){
- return OP_FALSE;
- }
- if(ssl_session==NULL){
- /*Save the session for later resumption.*/
- _stream->ssl_session=SSL_get1_session(_ssl_conn);
- }
- }
- _conn->ssl_conn=_ssl_conn;
- _conn->fd=_fd;
- _conn->nrequests_left=OP_PIPELINE_MAX_REQUESTS;
- return 0;
-}
-
-/*Try to start a connection to the next address in the given list of a given
- type.
- _fd: The socket to connect with.
- [inout] _addr: A pointer to the list of addresses.
- This will be advanced to the first one that matches the given
- address family (possibly the current one).
- _ai_family: The address family to connect to.
- Return: 1 If the connection was successful.
- 0 If the connection is in progress.
- OP_FALSE If the connection failed and there were no more addresses
- left to try.
- *_addr will be set to NULL in this case.*/
-static int op_sock_connect_next(op_sock _fd,
- const struct addrinfo **_addr,int _ai_family){
- const struct addrinfo *addr;
- int err;
- addr=*_addr;
- for(;;){
- /*Move to the next address of the requested type.*/
- for(;addr!=NULL&&addr->ai_family!=_ai_family;addr=addr->ai_next);
- *_addr=addr;
- /*No more: failure.*/
- if(addr==NULL)return OP_FALSE;
- if(connect(_fd,addr->ai_addr,addr->ai_addrlen)>=0)return 1;
- err=op_errno();
- /*Winsock will set WSAEWOULDBLOCK.*/
- if(OP_LIKELY(err==EINPROGRESS||err==EWOULDBLOCK))return 0;
- addr=addr->ai_next;
- }
-}
-
-/*The number of address families to try connecting to simultaneously.*/
-# define OP_NPROTOS (2)
-
-static int op_http_connect_impl(OpusHTTPStream *_stream,OpusHTTPConn *_conn,
- const struct addrinfo *_addrs,struct timeb *_start_time){
- const struct addrinfo *addr;
- const struct addrinfo *addrs[OP_NPROTOS];
- struct pollfd fds[OP_NPROTOS];
- int ai_family;
- int nprotos;
- int ret;
- int pi;
- int pj;
- for(pi=0;pi<OP_NPROTOS;pi++)addrs[pi]=NULL;
- /*Try connecting via both IPv4 and IPv6 simultaneously, and keep the first
- one that succeeds.
- Start by finding the first address from each family.
- We order the first connection attempts in the same order the address
- families were returned in the DNS records in accordance with RFC 6555.*/
- for(addr=_addrs,nprotos=0;addr!=NULL&&nprotos<OP_NPROTOS;addr=addr->ai_next){
- if(addr->ai_family==AF_INET6||addr->ai_family==AF_INET){
- OP_ASSERT(addr->ai_addrlen<=sizeof(struct sockaddr_in6));
- OP_ASSERT(addr->ai_addrlen<=sizeof(struct sockaddr_in));
- /*If we've seen this address family before, skip this address for now.*/
- for(pi=0;pi<nprotos;pi++)if(addrs[pi]->ai_family==addr->ai_family)break;
- if(pi<nprotos)continue;
- addrs[nprotos++]=addr;
- }
- }
- /*Pop the connection off the free list and put it on the LRU list.*/
- OP_ASSERT(_stream->free_head==_conn);
- _stream->free_head=_conn->next;
- _conn->next=_stream->lru_head;
- _stream->lru_head=_conn;
- ftime(_start_time);
- *&_conn->read_time=*_start_time;
- _conn->read_bytes=0;
- _conn->read_rate=0;
- /*Try to start a connection to each protocol.
- RFC 6555 says it is RECOMMENDED that connection attempts be paced
- 150...250 ms apart "to balance human factors against network load", but
- that "stateful algorithms" (that's us) "are expected to be more
- aggressive".
- We are definitely more aggressive: we don't pace at all.*/
- for(pi=0;pi<nprotos;pi++){
- ai_family=addrs[pi]->ai_family;
- fds[pi].fd=socket(ai_family,SOCK_STREAM,addrs[pi]->ai_protocol);
- fds[pi].events=POLLOUT;
- if(OP_LIKELY(fds[pi].fd!=OP_INVALID_SOCKET)){
- if(OP_LIKELY(op_sock_set_nonblocking(fds[pi].fd,1)>=0)){
- ret=op_sock_connect_next(fds[pi].fd,addrs+pi,ai_family);
- if(OP_UNLIKELY(ret>0)){
- /*It succeeded right away (technically possible), so stop.*/
- nprotos=pi+1;
- break;
- }
- /*Otherwise go on to the next protocol, and skip the clean-up below.*/
- else if(ret==0)continue;
- /*Tried all the addresses for this protocol.*/
- }
- /*Clean up the socket.*/
- close(fds[pi].fd);
- }
- /*Remove this protocol from the list.*/
- memmove(addrs+pi,addrs+pi+1,sizeof(*addrs)*(nprotos-pi-1));
- nprotos--;
- pi--;
- }
- /*Wait for one of the connections to finish.*/
- while(pi>=nprotos&&nprotos>0&&poll(fds,nprotos,OP_POLL_TIMEOUT_MS)>0){
- for(pi=0;pi<nprotos;pi++){
- socklen_t errlen;
- int err;
- /*Still waiting...*/
- if(!fds[pi].revents)continue;
- errlen=sizeof(err);
- /*Some platforms will return the pending error in &err and return 0.
- Others will put it in errno and return -1.*/
- ret=getsockopt(fds[pi].fd,SOL_SOCKET,SO_ERROR,&err,&errlen);
- if(ret<0)err=op_errno();
- /*Success!*/
- if(err==0||err==EISCONN)break;
- /*Move on to the next address for this protocol.*/
- ai_family=addrs[pi]->ai_family;
- addrs[pi]=addrs[pi]->ai_next;
- ret=op_sock_connect_next(fds[pi].fd,addrs+pi,ai_family);
- /*It succeeded right away, so stop.*/
- if(ret>0)break;
- /*Otherwise go on to the next protocol, and skip the clean-up below.*/
- else if(ret==0)continue;
- /*Tried all the addresses for this protocol.
- Remove it from the list.*/
- close(fds[pi].fd);
- memmove(fds+pi,fds+pi+1,sizeof(*fds)*(nprotos-pi-1));
- memmove(addrs+pi,addrs+pi+1,sizeof(*addrs)*(nprotos-pi-1));
- nprotos--;
- pi--;
- }
- }
- /*Close all the other sockets.*/
- for(pj=0;pj<nprotos;pj++)if(pi!=pj)close(fds[pj].fd);
- /*If none of them succeeded, we're done.*/
- if(pi>=nprotos)return OP_FALSE;
- /*Save this address for future connection attempts.*/
- if(addrs[pi]!=&_stream->addr_info){
- memcpy(&_stream->addr_info,addrs[pi],sizeof(_stream->addr_info));
- _stream->addr_info.ai_addr=&_stream->addr.s;
- _stream->addr_info.ai_next=NULL;
- memcpy(&_stream->addr,addrs[pi]->ai_addr,addrs[pi]->ai_addrlen);
- }
- if(OP_URL_IS_SSL(&_stream->url)){
- SSL *ssl_conn;
- /*Start the SSL connection.*/
- OP_ASSERT(_stream->ssl_ctx!=NULL);
- ssl_conn=SSL_new(_stream->ssl_ctx);
- if(OP_LIKELY(ssl_conn!=NULL)){
- ret=op_http_conn_start_tls(_stream,_conn,fds[pi].fd,ssl_conn);
- if(OP_LIKELY(ret>=0))return ret;
- SSL_free(ssl_conn);
- }
- close(fds[pi].fd);
- _conn->fd=OP_INVALID_SOCKET;
- return OP_FALSE;
- }
- /*Just a normal non-SSL connection.*/
- _conn->ssl_conn=NULL;
- _conn->fd=fds[pi].fd;
- _conn->nrequests_left=OP_PIPELINE_MAX_REQUESTS;
- /*Disable write coalescing.
- We always send whole requests at once and always parse the response headers
- before sending another one.*/
- op_sock_set_tcp_nodelay(fds[pi].fd,1);
- return 0;
-}
-
-static int op_http_connect(OpusHTTPStream *_stream,OpusHTTPConn *_conn,
- const struct addrinfo *_addrs,struct timeb *_start_time){
- struct timeb resolve_time;
- struct addrinfo *new_addrs;
- int ret;
- /*Re-resolve the host if we need to (RFC 6555 says we MUST do so
- occasionally).*/
- new_addrs=NULL;
- ftime(&resolve_time);
- if(_addrs!=&_stream->addr_info||op_time_diff_ms(&resolve_time,
- &_stream->resolve_time)>=OP_RESOLVE_CACHE_TIMEOUT_MS){
- new_addrs=op_resolve(_stream->connect_host,_stream->connect_port);
- if(OP_LIKELY(new_addrs!=NULL)){
- _addrs=new_addrs;
- *&_stream->resolve_time=*&resolve_time;
- }
- else if(OP_LIKELY(_addrs==NULL))return OP_FALSE;
- }
- ret=op_http_connect_impl(_stream,_conn,_addrs,_start_time);
- if(new_addrs!=NULL)freeaddrinfo(new_addrs);
- return ret;
-}
-
-# define OP_BASE64_LENGTH(_len) (((_len)+2)/3*4)
-
-static const char BASE64_TABLE[64]={
- 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
- 'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f',
- 'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v',
- 'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/'
-};
-
-static char *op_base64_encode(char *_dst,const char *_src,int _len){
- unsigned s0;
- unsigned s1;
- unsigned s2;
- int ngroups;
- int i;
- ngroups=_len/3;
- for(i=0;i<ngroups;i++){
- s0=_src[3*i+0];
- s1=_src[3*i+1];
- s2=_src[3*i+2];
- _dst[4*i+0]=BASE64_TABLE[s0>>2];
- _dst[4*i+1]=BASE64_TABLE[(s0&3)<<4|s1>>4];
- _dst[4*i+2]=BASE64_TABLE[(s1&15)<<2|s2>>6];
- _dst[4*i+3]=BASE64_TABLE[s2&63];
- }
- _len-=3*i;
- if(_len==1){
- s0=_src[3*i+0];
- _dst[4*i+0]=BASE64_TABLE[s0>>2];
- _dst[4*i+1]=BASE64_TABLE[(s0&3)<<4];
- _dst[4*i+2]='=';
- _dst[4*i+3]='=';
- i++;
- }
- else if(_len==2){
- s0=_src[3*i+0];
- s1=_src[3*i+1];
- _dst[4*i+0]=BASE64_TABLE[s0>>2];
- _dst[4*i+1]=BASE64_TABLE[(s0&3)<<4|s1>>4];
- _dst[4*i+2]=BASE64_TABLE[(s1&15)<<2];
- _dst[4*i+3]='=';
- i++;
- }
- _dst[4*i]='\0';
- return _dst+4*i;
-}
-
-/*Construct an HTTP authorization header using RFC 2617's Basic Authentication
- Scheme and append it to the given string buffer.*/
-static int op_sb_append_basic_auth_header(OpusStringBuf *_sb,
- const char *_header,const char *_user,const char *_pass){
- int user_len;
- int pass_len;
- int user_pass_len;
- int base64_len;
- int nbuf_total;
- int ret;
- ret=op_sb_append_string(_sb,_header);
- ret|=op_sb_append(_sb,": Basic ",8);
- user_len=strlen(_user);
- pass_len=strlen(_pass);
- if(OP_UNLIKELY(pass_len>INT_MAX-user_len))return OP_EFAULT;
- if(OP_UNLIKELY(user_len+pass_len>(INT_MAX>>2)*3-3))return OP_EFAULT;
- user_pass_len=user_len+1+pass_len;
- base64_len=OP_BASE64_LENGTH(user_pass_len);
- /*Stick "user:pass" at the end of the buffer so we can Base64 encode it
- in-place.*/
- nbuf_total=_sb->nbuf;
- if(OP_UNLIKELY(base64_len>INT_MAX-nbuf_total))return OP_EFAULT;
- nbuf_total+=base64_len;
- ret|=op_sb_ensure_capacity(_sb,nbuf_total);
- if(OP_UNLIKELY(ret<0))return ret;
- _sb->nbuf=nbuf_total-user_pass_len;
- OP_ALWAYS_TRUE(!op_sb_append(_sb,_user,user_len));
- OP_ALWAYS_TRUE(!op_sb_append(_sb,":",1));
- OP_ALWAYS_TRUE(!op_sb_append(_sb,_pass,pass_len));
- op_base64_encode(_sb->buf+nbuf_total-base64_len,
- _sb->buf+nbuf_total-user_pass_len,user_pass_len);
- return op_sb_append(_sb,"\r\n",2);
-}
-
-static int op_http_allow_pipelining(const char *_server){
- /*Servers known to do bad things with pipelined requests.
- This list is taken from Gecko's nsHttpConnection::SupportsPipelining() (in
- netwerk/protocol/http/nsHttpConnection.cpp).*/
- static const char *BAD_SERVERS[]={
- "EFAServer/",
- "Microsoft-IIS/4.",
- "Microsoft-IIS/5.",
- "Netscape-Enterprise/3.",
- "Netscape-Enterprise/4.",
- "Netscape-Enterprise/5.",
- "Netscape-Enterprise/6.",
- "WebLogic 3.",
- "WebLogic 4.",
- "WebLogic 5.",
- "WebLogic 6.",
- "Winstone Servlet Engine v0."
- };
-# define NBAD_SERVERS ((int)(sizeof(BAD_SERVERS)/sizeof(*BAD_SERVERS)))
- if(*_server>='E'&&*_server<='W'){
- int si;
- for(si=0;si<NBAD_SERVERS;si++){
- if(strncmp(_server,BAD_SERVERS[si],strlen(BAD_SERVERS[si]))==0){
- return 0;
- }
- }
- }
- return 1;
-# undef NBAD_SERVERS
-}
-
-static int op_http_stream_open(OpusHTTPStream *_stream,const char *_url,
- int _skip_certificate_check,const char *_proxy_host,unsigned _proxy_port,
- const char *_proxy_user,const char *_proxy_pass,OpusServerInfo *_info){
- struct addrinfo *addrs;
- int nredirs;
- int ret;
-#if defined(_WIN32)
- op_init_winsock();
-#endif
- ret=op_parse_url(&_stream->url,_url);
- if(OP_UNLIKELY(ret<0))return ret;
- if(_proxy_host!=NULL){
- if(OP_UNLIKELY(_proxy_port>65535U))return OP_EINVAL;
- _stream->connect_host=op_string_dup(_proxy_host);
- _stream->connect_port=_proxy_port;
- }
- else{
- _stream->connect_host=_stream->url.host;
- _stream->connect_port=_stream->url.port;
- }
- addrs=NULL;
- for(nredirs=0;nredirs<OP_REDIRECT_LIMIT;nredirs++){
- OpusParsedURL next_url;
- struct timeb start_time;
- struct timeb end_time;
- char *next;
- char *status_code;
- int minor_version_pos;
- int v1_1_compat;
- /*Initialize the SSL library if necessary.*/
- if(OP_URL_IS_SSL(&_stream->url)&&_stream->ssl_ctx==NULL){
- SSL_CTX *ssl_ctx;
-# if OPENSSL_VERSION_NUMBER<0x10100000L
-# if !defined(OPENSSL_NO_LOCKING)
- /*The documentation says SSL_library_init() is not reentrant.
- We don't want to add our own depenencies on a threading library, and it
- appears that it's safe to call OpenSSL's locking functions before the
- library is initialized, so that's what we'll do (really OpenSSL should
- do this for us).
- This doesn't guarantee that _other_ threads in the application aren't
- calling SSL_library_init() at the same time, but there's not much we
- can do about that.*/
- CRYPTO_w_lock(CRYPTO_LOCK_SSL);
-# endif
- SSL_library_init();
- /*Needed to get SHA2 algorithms with old OpenSSL versions.*/
- OpenSSL_add_ssl_algorithms();
-# if !defined(OPENSSL_NO_LOCKING)
- CRYPTO_w_unlock(CRYPTO_LOCK_SSL);
-# endif
-# else
- /*Finally, OpenSSL does this for us, but as penance, it can now fail.*/
- if(!OPENSSL_init_ssl(0,NULL))return OP_EFAULT;
-# endif
- ssl_ctx=SSL_CTX_new(SSLv23_client_method());
- if(ssl_ctx==NULL)return OP_EFAULT;
- if(!_skip_certificate_check){
- /*We don't do anything if this fails, since it just means we won't load
- any certificates (and thus all checks will fail).
- However, as that is probably the result of a system
- mis-configuration, assert here to make it easier to identify.*/
- OP_ALWAYS_TRUE(SSL_CTX_set_default_verify_paths(ssl_ctx));
- SSL_CTX_set_verify(ssl_ctx,SSL_VERIFY_PEER,NULL);
- }
- _stream->ssl_ctx=ssl_ctx;
- _stream->skip_certificate_check=_skip_certificate_check;
- if(_proxy_host!=NULL){
- /*We need to establish a CONNECT tunnel to handle https proxying.
- Build the request we'll send to do so.*/
- _stream->proxy_connect.nbuf=0;
- ret=op_sb_append(&_stream->proxy_connect,"CONNECT ",8);
- ret|=op_sb_append_string(&_stream->proxy_connect,_stream->url.host);
- ret|=op_sb_append_port(&_stream->proxy_connect,_stream->url.port);
- /*CONNECT requires at least HTTP 1.1.*/
- ret|=op_sb_append(&_stream->proxy_connect," HTTP/1.1\r\n",11);
- ret|=op_sb_append(&_stream->proxy_connect,"Host: ",6);
- ret|=op_sb_append_string(&_stream->proxy_connect,_stream->url.host);
- /*The example in RFC 2817 Section 5.2 specifies an explicit port even
- when connecting to the default port.
- Given that the proxy doesn't know whether we're trying to connect to
- an http or an https URL except by the port number, this seems like a
- good idea.*/
- ret|=op_sb_append_port(&_stream->proxy_connect,_stream->url.port);
- ret|=op_sb_append(&_stream->proxy_connect,"\r\n",2);
- ret|=op_sb_append(&_stream->proxy_connect,"User-Agent: .\r\n",15);
- if(_proxy_user!=NULL&&_proxy_pass!=NULL){
- ret|=op_sb_append_basic_auth_header(&_stream->proxy_connect,
- "Proxy-Authorization",_proxy_user,_proxy_pass);
- }
- /*For backwards compatibility.*/
- ret|=op_sb_append(&_stream->proxy_connect,
- "Proxy-Connection: keep-alive\r\n",30);
- ret|=op_sb_append(&_stream->proxy_connect,"\r\n",2);
- if(OP_UNLIKELY(ret<0))return ret;
- }
- }
- /*Actually make the connection.*/
- ret=op_http_connect(_stream,_stream->conns+0,addrs,&start_time);
- if(OP_UNLIKELY(ret<0))return ret;
- /*Build the request to send.*/
- _stream->request.nbuf=0;
- ret=op_sb_append(&_stream->request,"GET ",4);
- ret|=op_sb_append_string(&_stream->request,
- _proxy_host!=NULL?_url:_stream->url.path);
- /*Send HTTP/1.0 by default for maximum compatibility (so we don't have to
- re-try if HTTP/1.1 fails, though it shouldn't, even for a 1.0 server).
- This means we aren't conditionally compliant with RFC 2145, because we
- violate the requirement that "An HTTP client SHOULD send a request
- version equal to the highest version for which the client is at least
- conditionally compliant...".
- According to RFC 2145, that means we can't claim any compliance with any
- IETF HTTP specification.*/
- ret|=op_sb_append(&_stream->request," HTTP/1.0\r\n",11);
- /*Remember where this is so we can upgrade to HTTP/1.1 if the server
- supports it.*/
- minor_version_pos=_stream->request.nbuf-3;
- ret|=op_sb_append(&_stream->request,"Host: ",6);
- ret|=op_sb_append_string(&_stream->request,_stream->url.host);
- if(!OP_URL_IS_DEFAULT_PORT(&_stream->url)){
- ret|=op_sb_append_port(&_stream->request,_stream->url.port);
- }
- ret|=op_sb_append(&_stream->request,"\r\n",2);
- /*User-Agents have been a bad idea, so send as little as possible.
- RFC 2616 requires at least one token in the User-Agent, which must have
- at least one character.*/
- ret|=op_sb_append(&_stream->request,"User-Agent: .\r\n",15);
- if(_proxy_host!=NULL&&!OP_URL_IS_SSL(&_stream->url)
- &&_proxy_user!=NULL&&_proxy_pass!=NULL){
- ret|=op_sb_append_basic_auth_header(&_stream->request,
- "Proxy-Authorization",_proxy_user,_proxy_pass);
- }
- if(_stream->url.user!=NULL&&_stream->url.pass!=NULL){
- ret|=op_sb_append_basic_auth_header(&_stream->request,
- "Authorization",_stream->url.user,_stream->url.pass);
- }
- /*Always send a Referer [sic] header.
- It's common to refuse to serve a resource unless one is present.
- We just use the relative "/" URI to suggest we came from the same domain,
- as this is the most common check.
- This might violate RFC 2616's mandate that the field "MUST NOT be sent if
- the Request-URI was obtained from a source that does not have its own
- URI, such as input from the user keyboard," but we don't really have any
- way to know.*/
- /*TODO: Should we update this on redirects?*/
- ret|=op_sb_append(&_stream->request,"Referer: /\r\n",12);
- /*Always send a Range request header to find out if we're seekable.
- This requires an HTTP/1.1 server to succeed, but we'll still get what we
- want with an HTTP/1.0 server that ignores this request header.*/
- ret|=op_sb_append(&_stream->request,"Range: bytes=0-\r\n",17);
- /*Remember where this is so we can append offsets to it later.*/
- _stream->request_tail=_stream->request.nbuf-4;
- ret|=op_sb_append(&_stream->request,"\r\n",2);
- if(OP_UNLIKELY(ret<0))return ret;
- ret=op_http_conn_write_fully(_stream->conns+0,
- _stream->request.buf,_stream->request.nbuf);
- if(OP_UNLIKELY(ret<0))return ret;
- ret=op_http_conn_read_response(_stream->conns+0,&_stream->response);
- if(OP_UNLIKELY(ret<0))return ret;
- ftime(&end_time);
- next=op_http_parse_status_line(&v1_1_compat,&status_code,
- _stream->response.buf);
- if(OP_UNLIKELY(next==NULL))return OP_FALSE;
- if(status_code[0]=='2'){
- opus_int64 content_length;
- opus_int64 range_length;
- int pipeline_supported;
- int pipeline_disabled;
- /*We only understand 20x codes.*/
- if(status_code[1]!='0')return OP_FALSE;
- content_length=-1;
- range_length=-1;
- /*Pipelining must be explicitly enabled.*/
- pipeline_supported=0;
- pipeline_disabled=0;
- for(;;){
- char *header;
- char *cdr;
- ret=op_http_get_next_header(&header,&cdr,&next);
- if(OP_UNLIKELY(ret<0))return ret;
- if(header==NULL)break;
- if(strcmp(header,"content-length")==0){
- /*Two Content-Length headers?*/
- if(OP_UNLIKELY(content_length>=0))return OP_FALSE;
- content_length=op_http_parse_content_length(cdr);
- if(OP_UNLIKELY(content_length<0))return (int)content_length;
- /*Make sure the Content-Length and Content-Range headers match.*/
- if(range_length>=0&&OP_UNLIKELY(content_length!=range_length)){
- return OP_FALSE;
- }
- }
- else if(strcmp(header,"content-range")==0){
- opus_int64 range_first;
- opus_int64 range_last;
- /*Two Content-Range headers?*/
- if(OP_UNLIKELY(range_length>=0))return OP_FALSE;
- ret=op_http_parse_content_range(&range_first,&range_last,
- &range_length,cdr);
- if(OP_UNLIKELY(ret<0))return ret;
- /*"A response with satus code 206 (Partial Content) MUST NOT
- include a Content-Range field with a byte-range-resp-spec of
- '*'."*/
- if(status_code[2]=='6'
- &&(OP_UNLIKELY(range_first<0)||OP_UNLIKELY(range_last<0))){
- return OP_FALSE;
- }
- /*We asked for the entire resource.*/
- if(range_length>=0){
- /*Quit if we didn't get it.*/
- if(range_last>=0&&OP_UNLIKELY(range_last!=range_length-1)){
- return OP_FALSE;
- }
- }
- /*If there was no length, use the end of the range.*/
- else if(range_last>=0)range_length=range_last+1;
- /*Make sure the Content-Length and Content-Range headers match.*/
- if(content_length>=0&&OP_UNLIKELY(content_length!=range_length)){
- return OP_FALSE;
- }
- }
- else if(strcmp(header,"connection")==0){
- /*According to RFC 2616, if an HTTP/1.1 application does not support
- pipelining, it "MUST include the 'close' connection option in
- every message."
- Therefore, if we receive one in the initial response, disable
- pipelining entirely.
- The server still might support it (e.g., we might just have hit the
- request limit for a temporary child process), but if it doesn't
- and we assume it does, every time we cross a chunk boundary we'll
- error out and reconnect, adding lots of latency.*/
- ret=op_http_parse_connection(cdr);
- if(OP_UNLIKELY(ret<0))return ret;
- pipeline_disabled|=ret;
- }
- else if(strcmp(header,"server")==0){
- /*If we got a Server response header, and it wasn't from a known-bad
- server, enable pipelining, as long as it's at least HTTP/1.1.
- According to RFC 2145, the server is supposed to respond with the
- highest minor version number it supports unless it is known or
- suspected that we incorrectly implement the HTTP specification.
- So it should send back at least HTTP/1.1, despite our HTTP/1.0
- request.*/
- pipeline_supported=v1_1_compat;
- if(v1_1_compat)pipeline_disabled|=!op_http_allow_pipelining(cdr);
- if(_info!=NULL&&_info->server==NULL)_info->server=op_string_dup(cdr);
- }
- /*Collect station information headers if the caller requested it.
- If there's more than one copy of a header, the first one wins.*/
- else if(_info!=NULL){
- if(strcmp(header,"content-type")==0){
- if(_info->content_type==NULL){
- _info->content_type=op_string_dup(cdr);
- }
- }
- else if(header[0]=='i'&&header[1]=='c'
- &&(header[2]=='e'||header[2]=='y')&&header[3]=='-'){
- if(strcmp(header+4,"name")==0){
- if(_info->name==NULL)_info->name=op_string_dup(cdr);
- }
- else if(strcmp(header+4,"description")==0){
- if(_info->description==NULL)_info->description=op_string_dup(cdr);
- }
- else if(strcmp(header+4,"genre")==0){
- if(_info->genre==NULL)_info->genre=op_string_dup(cdr);
- }
- else if(strcmp(header+4,"url")==0){
- if(_info->url==NULL)_info->url=op_string_dup(cdr);
- }
- else if(strcmp(header,"icy-br")==0
- ||strcmp(header,"ice-bitrate")==0){
- if(_info->bitrate_kbps<0){
- opus_int64 bitrate_kbps;
- /*Just re-using this function to parse a random unsigned
- integer field.*/
- bitrate_kbps=op_http_parse_content_length(cdr);
- if(bitrate_kbps>=0&&bitrate_kbps<=OP_INT32_MAX){
- _info->bitrate_kbps=(opus_int32)bitrate_kbps;
- }
- }
- }
- else if(strcmp(header,"icy-pub")==0
- ||strcmp(header,"ice-public")==0){
- if(_info->is_public<0&&(cdr[0]=='0'||cdr[0]=='1')&&cdr[1]=='\0'){
- _info->is_public=cdr[0]-'0';
- }
- }
- }
- }
- }
- switch(status_code[2]){
- /*200 OK*/
- case '0':break;
- /*203 Non-Authoritative Information*/
- case '3':break;
- /*204 No Content*/
- case '4':{
- if(content_length>=0&&OP_UNLIKELY(content_length!=0)){
- return OP_FALSE;
- }
- }break;
- /*206 Partial Content*/
- case '6':{
- /*No Content-Range header.*/
- if(OP_UNLIKELY(range_length<0))return OP_FALSE;
- content_length=range_length;
- /*The server supports range requests for this resource.
- We can seek.*/
- _stream->seekable=1;
- }break;
- /*201 Created: the response "SHOULD include an entity containing a list
- of resource characteristics and location(s)," but not an Opus file.
- 202 Accepted: the response "SHOULD include an indication of request's
- current status and either a pointer to a status monitor or some
- estimate of when the user can expect the request to be fulfilled,"
- but not an Opus file.
- 205 Reset Content: this "MUST NOT include an entity," meaning no Opus
- file.
- 207...209 are not yet defined, so we don't know how to handle them.*/
- default:return OP_FALSE;
- }
- _stream->content_length=content_length;
- _stream->pipeline=pipeline_supported&&!pipeline_disabled;
- /*Pipelining requires HTTP/1.1 persistent connections.*/
- if(_stream->pipeline)_stream->request.buf[minor_version_pos]='1';
- _stream->conns[0].pos=0;
- _stream->conns[0].end_pos=_stream->seekable?content_length:-1;
- _stream->conns[0].chunk_size=-1;
- _stream->cur_conni=0;
- _stream->connect_rate=op_time_diff_ms(&end_time,&start_time);
- _stream->connect_rate=OP_MAX(_stream->connect_rate,1);
- if(_info!=NULL)_info->is_ssl=OP_URL_IS_SSL(&_stream->url);
- /*The URL has been successfully opened.*/
- return 0;
- }
- /*Shouldn't get 1xx; 4xx and 5xx are both failures (and we don't retry).
- Everything else is undefined.*/
- else if(status_code[0]!='3')return OP_FALSE;
- /*We have some form of redirect request.*/
- /*We only understand 30x codes.*/
- if(status_code[1]!='0')return OP_FALSE;
- switch(status_code[2]){
- /*300 Multiple Choices: "If the server has a preferred choice of
- representation, it SHOULD include the specific URI for that
- representation in the Location field," otherwise we'll fail.*/
- case '0':
- /*301 Moved Permanently*/
- case '1':
- /*302 Found*/
- case '2':
- /*307 Temporary Redirect*/
- case '7':
- /*308 Permanent Redirect (defined by draft-reschke-http-status-308-07).*/
- case '8':break;
- /*305 Use Proxy: "The Location field gives the URI of the proxy."
- TODO: This shouldn't actually be that hard to do.*/
- case '5':return OP_EIMPL;
- /*303 See Other: "The new URI is not a substitute reference for the
- originally requested resource."
- 304 Not Modified: "The 304 response MUST NOT contain a message-body."
- 306 (Unused)
- 309 is not yet defined, so we don't know how to handle it.*/
- default:return OP_FALSE;
- }
- _url=NULL;
- for(;;){
- char *header;
- char *cdr;
- ret=op_http_get_next_header(&header,&cdr,&next);
- if(OP_UNLIKELY(ret<0))return ret;
- if(header==NULL)break;
- if(strcmp(header,"location")==0&&OP_LIKELY(_url==NULL))_url=cdr;
- }
- if(OP_UNLIKELY(_url==NULL))return OP_FALSE;
- ret=op_parse_url(&next_url,_url);
- if(OP_UNLIKELY(ret<0))return ret;
- if(_proxy_host==NULL||_stream->ssl_session!=NULL){
- if(strcmp(_stream->url.host,next_url.host)==0
- &&_stream->url.port==next_url.port){
- /*Try to skip re-resolve when connecting to the same host.*/
- addrs=&_stream->addr_info;
- }
- else{
- if(_stream->ssl_session!=NULL){
- /*Forget any cached SSL session from the last host.*/
- SSL_SESSION_free(_stream->ssl_session);
- _stream->ssl_session=NULL;
- }
- }
- }
- if(_proxy_host==NULL){
- OP_ASSERT(_stream->connect_host==_stream->url.host);
- _stream->connect_host=next_url.host;
- _stream->connect_port=next_url.port;
- }
- /*Always try to skip re-resolve for proxy connections.*/
- else addrs=&_stream->addr_info;
- op_parsed_url_clear(&_stream->url);
- *&_stream->url=*&next_url;
- /*TODO: On servers/proxies that support pipelining, we might be able to
- re-use this connection.*/
- op_http_conn_close(_stream,_stream->conns+0,&_stream->lru_head,1);
- }
- /*Redirection limit reached.*/
- return OP_FALSE;
-}
-
-static int op_http_conn_send_request(OpusHTTPStream *_stream,
- OpusHTTPConn *_conn,opus_int64 _pos,opus_int32 _chunk_size,
- int _try_not_to_block){
- opus_int64 next_end;
- int ret;
- /*We shouldn't have another request outstanding.*/
- OP_ASSERT(_conn->next_pos<0);
- /*Build the request to send.*/
- OP_ASSERT(_stream->request.nbuf>=_stream->request_tail);
- _stream->request.nbuf=_stream->request_tail;
- ret=op_sb_append_nonnegative_int64(&_stream->request,_pos);
- ret|=op_sb_append(&_stream->request,"-",1);
- if(_chunk_size>0&&OP_ADV_OFFSET(_pos,2*_chunk_size)<_stream->content_length){
- /*We shouldn't be pipelining requests with non-HTTP/1.1 servers.*/
- OP_ASSERT(_stream->pipeline);
- next_end=_pos+_chunk_size;
- ret|=op_sb_append_nonnegative_int64(&_stream->request,next_end-1);
- /*Use a larger chunk size for our next request.*/
- _chunk_size<<=1;
- /*But after a while, just request the rest of the resource.*/
- if(_chunk_size>OP_PIPELINE_CHUNK_SIZE_MAX)_chunk_size=-1;
- }
- else{
- /*Either this was a non-pipelined request or we were close enough to the
- end to just ask for the rest.*/
- next_end=-1;
- _chunk_size=-1;
- }
- ret|=op_sb_append(&_stream->request,"\r\n\r\n",4);
- if(OP_UNLIKELY(ret<0))return ret;
- /*If we don't want to block, check to see if there's enough space in the send
- queue.
- There's still a chance we might block, even if there is enough space, but
- it's a much slimmer one.
- Blocking at all is pretty unlikely, as we won't have any requests queued
- when _try_not_to_block is set, so if FIONSPACE isn't available (e.g., on
- Linux), just skip the test.*/
- if(_try_not_to_block){
-# if defined(FIONSPACE)
- int available;
- ret=ioctl(_conn->fd,FIONSPACE,&available);
- if(ret<0||available<_stream->request.nbuf)return 1;
-# endif
- }
- ret=op_http_conn_write_fully(_conn,
- _stream->request.buf,_stream->request.nbuf);
- if(OP_UNLIKELY(ret<0))return ret;
- _conn->next_pos=_pos;
- _conn->next_end=next_end;
- /*Save the chunk size to use for the next request.*/
- _conn->chunk_size=_chunk_size;
- _conn->nrequests_left--;
- return ret;
-}
-
-/*Handles the response to all requests after the first one.
- Return: 1 if the connection was closed or timed out, 0 on success, or a
- negative value on any other error.*/
-static int op_http_conn_handle_response(OpusHTTPStream *_stream,
- OpusHTTPConn *_conn){
- char *next;
- char *status_code;
- opus_int64 range_length;
- opus_int64 next_pos;
- opus_int64 next_end;
- int ret;
- ret=op_http_conn_read_response(_conn,&_stream->response);
- /*If the server just closed the connection on us, we may have just hit a
- connection re-use limit, so we might want to retry.*/
- if(OP_UNLIKELY(ret<0))return ret==OP_EREAD?1:ret;
- next=op_http_parse_status_line(NULL,&status_code,_stream->response.buf);
- if(OP_UNLIKELY(next==NULL))return OP_FALSE;
- /*We _need_ a 206 Partial Content response.
- Nothing else will do.*/
- if(strncmp(status_code,"206",3)!=0){
- /*But on a 408 Request Timeout, we might want to re-try.*/
- return strncmp(status_code,"408",3)==0?1:OP_FALSE;
- }
- next_pos=_conn->next_pos;
- next_end=_conn->next_end;
- range_length=-1;
- for(;;){
- char *header;
- char *cdr;
- ret=op_http_get_next_header(&header,&cdr,&next);
- if(OP_UNLIKELY(ret<0))return ret;
- if(header==NULL)break;
- if(strcmp(header,"content-range")==0){
- opus_int64 range_first;
- opus_int64 range_last;
- /*Two Content-Range headers?*/
- if(OP_UNLIKELY(range_length>=0))return OP_FALSE;
- ret=op_http_parse_content_range(&range_first,&range_last,
- &range_length,cdr);
- if(OP_UNLIKELY(ret<0))return ret;
- /*"A response with satus code 206 (Partial Content) MUST NOT
- include a Content-Range field with a byte-range-resp-spec of
- '*'."*/
- if(OP_UNLIKELY(range_first<0)||OP_UNLIKELY(range_last<0))return OP_FALSE;
- /*We also don't want range_last to overflow.*/
- if(OP_UNLIKELY(range_last>=OP_INT64_MAX))return OP_FALSE;
- range_last++;
- /*Quit if we didn't get the offset we asked for.*/
- if(range_first!=next_pos)return OP_FALSE;
- if(next_end<0){
- /*We asked for the rest of the resource.*/
- if(range_length>=0){
- /*Quit if we didn't get it.*/
- if(OP_UNLIKELY(range_last!=range_length))return OP_FALSE;
- }
- /*If there was no length, use the end of the range.*/
- else range_length=range_last;
- next_end=range_last;
- }
- else{
- if(range_last!=next_end)return OP_FALSE;
- /*If there was no length, use the larger of the content length or the
- end of this chunk.*/
- if(range_length<0){
- range_length=OP_MAX(range_last,_stream->content_length);
- }
- }
- }
- else if(strcmp(header,"content-length")==0){
- opus_int64 content_length;
- /*Validate the Content-Length header, if present, against the request we
- made.*/
- content_length=op_http_parse_content_length(cdr);
- if(OP_UNLIKELY(content_length<0))return (int)content_length;
- if(next_end<0){
- /*If we haven't seen the Content-Range header yet and we asked for the
- rest of the resource, set next_end, so we can make sure they match
- when we do find the Content-Range header.*/
- if(OP_UNLIKELY(next_pos>OP_INT64_MAX-content_length))return OP_FALSE;
- next_end=next_pos+content_length;
- }
- /*Otherwise, make sure they match now.*/
- else if(OP_UNLIKELY(next_end-next_pos!=content_length))return OP_FALSE;
- }
- else if(strcmp(header,"connection")==0){
- ret=op_http_parse_connection(cdr);
- if(OP_UNLIKELY(ret<0))return ret;
- /*If the server told us it was going to close the connection, don't make
- any more requests.*/
- if(OP_UNLIKELY(ret>0))_conn->nrequests_left=0;
- }
- }
- /*No Content-Range header.*/
- if(OP_UNLIKELY(range_length<0))return OP_FALSE;
- /*Update the content_length if necessary.*/
- _stream->content_length=range_length;
- _conn->pos=next_pos;
- _conn->end_pos=next_end;
- _conn->next_pos=-1;
- return 0;
-}
-
-/*Open a new connection that will start reading at byte offset _pos.
- _pos: The byte offset to start reading from.
- _chunk_size: The number of bytes to ask for in the initial request, or -1 to
- request the rest of the resource.
- This may be more bytes than remain, in which case it will be
- converted into a request for the rest.*/
-static int op_http_conn_open_pos(OpusHTTPStream *_stream,
- OpusHTTPConn *_conn,opus_int64 _pos,opus_int32 _chunk_size){
- struct timeb start_time;
- struct timeb end_time;
- opus_int32 connect_rate;
- opus_int32 connect_time;
- int ret;
- ret=op_http_connect(_stream,_conn,&_stream->addr_info,&start_time);
- if(OP_UNLIKELY(ret<0))return ret;
- ret=op_http_conn_send_request(_stream,_conn,_pos,_chunk_size,0);
- if(OP_UNLIKELY(ret<0))return ret;
- ret=op_http_conn_handle_response(_stream,_conn);
- if(OP_UNLIKELY(ret!=0))return OP_FALSE;
- ftime(&end_time);
- _stream->cur_conni=_conn-_stream->conns;
- OP_ASSERT(_stream->cur_conni>=0&&_stream->cur_conni<OP_NCONNS_MAX);
- /*The connection has been successfully opened.
- Update the connection time estimate.*/
- connect_time=op_time_diff_ms(&end_time,&start_time);
- connect_rate=_stream->connect_rate;
- connect_rate+=OP_MAX(connect_time,1)-connect_rate+8>>4;
- _stream->connect_rate=connect_rate;
- return 0;
-}
-
-/*Read data from the current response body.
- If we're pipelining and we get close to the end of this response, queue
- another request.
- If we've reached the end of this response body, parse the next response and
- keep going.
- [out] _buf: Returns the data read.
- _buf_size: The size of the buffer.
- Return: A positive number of bytes read on success.
- 0: The connection was closed.
- OP_EREAD: There was a fatal read error.*/
-static int op_http_conn_read_body(OpusHTTPStream *_stream,
- OpusHTTPConn *_conn,unsigned char *_buf,int _buf_size){
- opus_int64 pos;
- opus_int64 end_pos;
- opus_int64 next_pos;
- opus_int64 content_length;
- int nread;
- int pipeline;
- int ret;
- /*Currently this function can only be called on the LRU head.
- Otherwise, we'd need a _pnext pointer if we needed to close the connection,
- and re-opening it would re-organize the lists.*/
- OP_ASSERT(_stream->lru_head==_conn);
- /*We should have filtered out empty reads by this point.*/
- OP_ASSERT(_buf_size>0);
- pos=_conn->pos;
- end_pos=_conn->end_pos;
- next_pos=_conn->next_pos;
- pipeline=_stream->pipeline;
- content_length=_stream->content_length;
- if(end_pos>=0){
- /*Have we reached the end of the current response body?*/
- if(pos>=end_pos){
- OP_ASSERT(content_length>=0);
- /*If this was the end of the stream, we're done.
- Also return early if a non-blocking read was requested (regardless of
- whether we might be able to parse the next response without
- blocking).*/
- if(content_length<=end_pos)return 0;
- /*Otherwise, start on the next response.*/
- if(next_pos<0){
- /*We haven't issued another request yet.*/
- if(!pipeline||_conn->nrequests_left<=0){
- /*There are two ways to get here: either the server told us it was
- going to close the connection after the last request, or we
- thought we were reading the whole resource, but it grew while we
- were reading it.
- The only way the latter could have happened is if content_length
- changed while seeking.
- Open a new request to read the rest.*/
- OP_ASSERT(_stream->seekable);
- /*Try to open a new connection to read another chunk.*/
- op_http_conn_close(_stream,_conn,&_stream->lru_head,1);
- /*If we're not pipelining, we should be requesting the rest.*/
- OP_ASSERT(pipeline||_conn->chunk_size==-1);
- ret=op_http_conn_open_pos(_stream,_conn,end_pos,_conn->chunk_size);
- if(OP_UNLIKELY(ret<0))return OP_EREAD;
- }
- else{
- /*Issue the request now (better late than never).*/
- ret=op_http_conn_send_request(_stream,_conn,pos,_conn->chunk_size,0);
- if(OP_UNLIKELY(ret<0))return OP_EREAD;
- next_pos=_conn->next_pos;
- OP_ASSERT(next_pos>=0);
- }
- }
- if(next_pos>=0){
- /*We shouldn't be trying to read past the current request body if we're
- seeking somewhere else.*/
- OP_ASSERT(next_pos==end_pos);
- ret=op_http_conn_handle_response(_stream,_conn);
- if(OP_UNLIKELY(ret<0))return OP_EREAD;
- if(OP_UNLIKELY(ret>0)&&pipeline){
- opus_int64 next_end;
- next_end=_conn->next_end;
- /*Our request timed out or the server closed the connection.
- Try re-connecting.*/
- op_http_conn_close(_stream,_conn,&_stream->lru_head,1);
- /*Unless there's a bug, we should be able to convert
- (next_pos,next_end) into valid (_pos,_chunk_size) parameters.*/
- OP_ASSERT(next_end<0
- ||next_end-next_pos>=0&&next_end-next_pos<=OP_INT32_MAX);
- ret=op_http_conn_open_pos(_stream,_conn,next_pos,
- next_end<0?-1:(opus_int32)(next_end-next_pos));
- if(OP_UNLIKELY(ret<0))return OP_EREAD;
- }
- else if(OP_UNLIKELY(ret!=0))return OP_EREAD;
- }
- pos=_conn->pos;
- end_pos=_conn->end_pos;
- content_length=_stream->content_length;
- }
- OP_ASSERT(end_pos>pos);
- _buf_size=OP_MIN(_buf_size,end_pos-pos);
- }
- nread=op_http_conn_read(_conn,(char *)_buf,_buf_size,1);
- if(OP_UNLIKELY(nread<0))return nread;
- pos+=nread;
- _conn->pos=pos;
- OP_ASSERT(end_pos<0||content_length>=0);
- /*TODO: If nrequests_left<=0, we can't make a new request, and there will be
- a big pause after we hit the end of the chunk while we open a new
- connection.
- It would be nice to be able to start that process now, but we have no way
- to do it in the background without blocking (even if we could start it, we
- have no guarantee the application will return control to us in a
- sufficiently timely manner to allow us to complete it, and this is
- uncommon enough that it's not worth using threads just for this).*/
- if(end_pos>=0&&end_pos<content_length&&next_pos<0
- &&pipeline&&OP_LIKELY(_conn->nrequests_left>0)){
- opus_int64 request_thresh;
- opus_int32 chunk_size;
- /*Are we getting close to the end of the current response body?
- If so, we should request more data.*/
- request_thresh=_stream->connect_rate*_conn->read_rate>>12;
- /*But don't commit ourselves too quickly.*/
- chunk_size=_conn->chunk_size;
- if(chunk_size>=0)request_thresh=OP_MIN(chunk_size>>2,request_thresh);
- if(end_pos-pos<request_thresh){
- ret=op_http_conn_send_request(_stream,_conn,end_pos,_conn->chunk_size,1);
- if(OP_UNLIKELY(ret<0))return OP_EREAD;
- }
- }
- return nread;
-}
-
-static int op_http_stream_read(void *_stream,
- unsigned char *_ptr,int _buf_size){
- OpusHTTPStream *stream;
- ptrdiff_t nread;
- opus_int64 size;
- opus_int64 pos;
- int ci;
- stream=(OpusHTTPStream *)_stream;
- /*Check for an empty read.*/
- if(_buf_size<=0)return 0;
- ci=stream->cur_conni;
- /*No current connection => EOF.*/
- if(ci<0)return 0;
- pos=stream->conns[ci].pos;
- size=stream->content_length;
- /*Check for EOF.*/
- if(size>=0){
- if(pos>=size)return 0;
- /*Check for a short read.*/
- if(_buf_size>size-pos)_buf_size=(int)(size-pos);
- }
- nread=op_http_conn_read_body(stream,stream->conns+ci,_ptr,_buf_size);
- if(OP_UNLIKELY(nread<=0)){
- /*We hit an error or EOF.
- Either way, we're done with this connection.*/
- op_http_conn_close(stream,stream->conns+ci,&stream->lru_head,1);
- stream->cur_conni=-1;
- stream->pos=pos;
- }
- return nread;
-}
-
-/*Discard data until we reach the _target position.
- This destroys the contents of _stream->response.buf, as we need somewhere to
- read this data, and that is a convenient place.
- _just_read_ahead: Whether or not this is a plain fast-forward.
- If 0, we need to issue a new request for a chunk at _target
- and discard all the data from our current request(s).
- Otherwise, we should be able to reach _target without
- issuing any new requests.
- _target: The stream position to which to read ahead.*/
-static int op_http_conn_read_ahead(OpusHTTPStream *_stream,
- OpusHTTPConn *_conn,int _just_read_ahead,opus_int64 _target){
- opus_int64 pos;
- opus_int64 end_pos;
- opus_int64 next_pos;
- opus_int64 next_end;
- ptrdiff_t nread;
- int ret;
- pos=_conn->pos;
- end_pos=_conn->end_pos;
- next_pos=_conn->next_pos;
- next_end=_conn->next_end;
- if(!_just_read_ahead){
- /*We need to issue a new pipelined request.
- This is the only case where we allow more than one outstanding request
- at a time, so we need to reset next_pos (we'll restore it below if we
- did have an outstanding request).*/
- OP_ASSERT(_stream->pipeline);
- _conn->next_pos=-1;
- ret=op_http_conn_send_request(_stream,_conn,_target,
- OP_PIPELINE_CHUNK_SIZE,0);
- if(OP_UNLIKELY(ret<0))return ret;
- }
- /*We can reach the target position by reading forward in the current chunk.*/
- if(_just_read_ahead&&(end_pos<0||_target<end_pos))end_pos=_target;
- else if(next_pos>=0){
- opus_int64 next_next_pos;
- opus_int64 next_next_end;
- /*We already have a request outstanding.
- Finish off the current chunk.*/
- while(pos<end_pos){
- nread=op_http_conn_read(_conn,_stream->response.buf,
- (int)OP_MIN(end_pos-pos,_stream->response.cbuf),1);
- /*We failed to read ahead.*/
- if(nread<=0)return OP_FALSE;
- pos+=nread;
- }
- OP_ASSERT(pos==end_pos);
- if(_just_read_ahead){
- next_next_pos=next_next_end=-1;
- end_pos=_target;
- }
- else{
- OP_ASSERT(_conn->next_pos==_target);
- next_next_pos=_target;
- next_next_end=_conn->next_end;
- _conn->next_pos=next_pos;
- _conn->next_end=next_end;
- end_pos=next_end;
- }
- ret=op_http_conn_handle_response(_stream,_conn);
- if(OP_UNLIKELY(ret!=0))return OP_FALSE;
- _conn->next_pos=next_next_pos;
- _conn->next_end=next_next_end;
- }
- while(pos<end_pos){
- nread=op_http_conn_read(_conn,_stream->response.buf,
- (int)OP_MIN(end_pos-pos,_stream->response.cbuf),1);
- /*We failed to read ahead.*/
- if(nread<=0)return OP_FALSE;
- pos+=nread;
- }
- OP_ASSERT(pos==end_pos);
- if(!_just_read_ahead){
- ret=op_http_conn_handle_response(_stream,_conn);
- if(OP_UNLIKELY(ret!=0))return OP_FALSE;
- }
- else _conn->pos=end_pos;
- OP_ASSERT(_conn->pos==_target);
- return 0;
-}
-
-static int op_http_stream_seek(void *_stream,opus_int64 _offset,int _whence){
- struct timeb seek_time;
- OpusHTTPStream *stream;
- OpusHTTPConn *conn;
- OpusHTTPConn **pnext;
- OpusHTTPConn *close_conn;
- OpusHTTPConn **close_pnext;
- opus_int64 content_length;
- opus_int64 pos;
- int pipeline;
- int ci;
- int ret;
- stream=(OpusHTTPStream *)_stream;
- if(!stream->seekable)return -1;
- content_length=stream->content_length;
- /*If we're seekable, we should have gotten a Content-Length.*/
- OP_ASSERT(content_length>=0);
- ci=stream->cur_conni;
- pos=ci<0?content_length:stream->conns[ci].pos;
- switch(_whence){
- case SEEK_SET:{
- /*Check for overflow:*/
- if(_offset<0)return -1;
- pos=_offset;
- }break;
- case SEEK_CUR:{
- /*Check for overflow:*/
- if(_offset<-pos||_offset>OP_INT64_MAX-pos)return -1;
- pos+=_offset;
- }break;
- case SEEK_END:{
- /*Check for overflow:*/
- if(_offset>content_length||_offset<content_length-OP_INT64_MAX)return -1;
- pos=content_length-_offset;
- }break;
- default:return -1;
- }
- /*Mark when we deactivated the active connection.*/
- if(ci>=0){
- op_http_conn_read_rate_update(stream->conns+ci);
- *&seek_time=*&stream->conns[ci].read_time;
- }
- else ftime(&seek_time);
- /*If we seeked past the end of the stream, just disable the active
- connection.*/
- if(pos>=content_length){
- stream->cur_conni=-1;
- stream->pos=pos;
- return 0;
- }
- /*First try to find a connection we can use without waiting.*/
- pnext=&stream->lru_head;
- conn=stream->lru_head;
- while(conn!=NULL){
- opus_int64 conn_pos;
- opus_int64 end_pos;
- int available;
- /*If this connection has been dormant too long or has made too many
- requests, close it.
- This is to prevent us from hitting server limits/firewall timeouts.*/
- if(op_time_diff_ms(&seek_time,&conn->read_time)>
- OP_CONNECTION_IDLE_TIMEOUT_MS
- ||conn->nrequests_left<OP_PIPELINE_MIN_REQUESTS){
- op_http_conn_close(stream,conn,pnext,1);
- conn=*pnext;
- continue;
- }
- available=op_http_conn_estimate_available(conn);
- conn_pos=conn->pos;
- end_pos=conn->end_pos;
- if(conn->next_pos>=0){
- OP_ASSERT(end_pos>=0);
- OP_ASSERT(conn->next_pos==end_pos);
- end_pos=conn->next_end;
- }
- OP_ASSERT(end_pos<0||conn_pos<=end_pos);
- /*Can we quickly read ahead without issuing a new request or waiting for
- any more data?
- If we have an oustanding request, we'll over-estimate the amount of data
- it has available (because we'll count the response headers, too), but
- that probably doesn't matter.*/
- if(conn_pos<=pos&&pos-conn_pos<=available&&(end_pos<0||pos<end_pos)){
- /*Found a suitable connection to re-use.*/
- ret=op_http_conn_read_ahead(stream,conn,1,pos);
- if(OP_UNLIKELY(ret<0)){
- /*The connection might have become stale, so close it and keep going.*/
- op_http_conn_close(stream,conn,pnext,1);
- conn=*pnext;
- continue;
- }
- /*Sucessfully resurrected this connection.*/
- *pnext=conn->next;
- conn->next=stream->lru_head;
- stream->lru_head=conn;
- stream->cur_conni=conn-stream->conns;
- return 0;
- }
- pnext=&conn->next;
- conn=conn->next;
- }
- /*Chances are that didn't work, so now try to find one we can use by reading
- ahead a reasonable amount and/or by issuing a new request.*/
- close_pnext=NULL;
- close_conn=NULL;
- pnext=&stream->lru_head;
- conn=stream->lru_head;
- pipeline=stream->pipeline;
- while(conn!=NULL){
- opus_int64 conn_pos;
- opus_int64 end_pos;
- opus_int64 read_ahead_thresh;
- int available;
- int just_read_ahead;
- /*Dividing by 2048 instead of 1000 scales this by nearly 1/2, biasing away
- from connection re-use (and roughly compensating for the lag required to
- reopen the TCP window of a connection that's been idle).
- There's no overflow checking here, because it's vanishingly unlikely, and
- all it would do is cause us to make poor decisions.*/
- read_ahead_thresh=OP_MAX(OP_READAHEAD_THRESH_MIN,
- stream->connect_rate*conn->read_rate>>11);
- available=op_http_conn_estimate_available(conn);
- conn_pos=conn->pos;
- end_pos=conn->end_pos;
- if(conn->next_pos>=0){
- OP_ASSERT(end_pos>=0);
- OP_ASSERT(conn->next_pos==end_pos);
- end_pos=conn->next_end;
- }
- OP_ASSERT(end_pos<0||conn_pos<=end_pos);
- /*Can we quickly read ahead without issuing a new request?*/
- just_read_ahead=conn_pos<=pos&&pos-conn_pos-available<=read_ahead_thresh
- &&(end_pos<0||pos<end_pos);
- if(just_read_ahead||pipeline&&end_pos>=0
- &&end_pos-conn_pos-available<=read_ahead_thresh){
- /*Found a suitable connection to re-use.*/
- ret=op_http_conn_read_ahead(stream,conn,just_read_ahead,pos);
- if(OP_UNLIKELY(ret<0)){
- /*The connection might have become stale, so close it and keep going.*/
- op_http_conn_close(stream,conn,pnext,1);
- conn=*pnext;
- continue;
- }
- /*Sucessfully resurrected this connection.*/
- *pnext=conn->next;
- conn->next=stream->lru_head;
- stream->lru_head=conn;
- stream->cur_conni=conn-stream->conns;
- return 0;
- }
- close_pnext=pnext;
- close_conn=conn;
- pnext=&conn->next;
- conn=conn->next;
- }
- /*No suitable connections.
- Open a new one.*/
- if(stream->free_head==NULL){
- /*All connections in use.
- Expire one of them (we should have already picked which one when scanning
- the list).*/
- OP_ASSERT(close_conn!=NULL);
- OP_ASSERT(close_pnext!=NULL);
- op_http_conn_close(stream,close_conn,close_pnext,1);
- }
- OP_ASSERT(stream->free_head!=NULL);
- conn=stream->free_head;
- /*If we can pipeline, only request a chunk of data.
- If we're seeking now, there's a good chance we will want to seek again
- soon, and this avoids committing this connection to reading the rest of
- the stream.
- Particularly with SSL or proxies, issuing a new request on the same
- connection can be substantially faster than opening a new one.
- This also limits the amount of data the server will blast at us on this
- connection if we later seek elsewhere and start reading from a different
- connection.*/
- ret=op_http_conn_open_pos(stream,conn,pos,
- pipeline?OP_PIPELINE_CHUNK_SIZE:-1);
- if(OP_UNLIKELY(ret<0)){
- op_http_conn_close(stream,conn,&stream->lru_head,1);
- return -1;
- }
- return 0;
-}
-
-static opus_int64 op_http_stream_tell(void *_stream){
- OpusHTTPStream *stream;
- int ci;
- stream=(OpusHTTPStream *)_stream;
- ci=stream->cur_conni;
- return ci<0?stream->pos:stream->conns[ci].pos;
-}
-
-static int op_http_stream_close(void *_stream){
- OpusHTTPStream *stream;
- stream=(OpusHTTPStream *)_stream;
- if(OP_LIKELY(stream!=NULL)){
- op_http_stream_clear(stream);
- _ogg_free(stream);
- }
- return 0;
-}
-
-static const OpusFileCallbacks OP_HTTP_CALLBACKS={
- op_http_stream_read,
- op_http_stream_seek,
- op_http_stream_tell,
- op_http_stream_close
-};
-#endif
-
-void opus_server_info_init(OpusServerInfo *_info){
- _info->name=NULL;
- _info->description=NULL;
- _info->genre=NULL;
- _info->url=NULL;
- _info->server=NULL;
- _info->content_type=NULL;
- _info->bitrate_kbps=-1;
- _info->is_public=-1;
- _info->is_ssl=0;
-}
-
-void opus_server_info_clear(OpusServerInfo *_info){
- _ogg_free(_info->content_type);
- _ogg_free(_info->server);
- _ogg_free(_info->url);
- _ogg_free(_info->genre);
- _ogg_free(_info->description);
- _ogg_free(_info->name);
-}
-
-/*The actual URL stream creation function.
- This one isn't extensible like the application-level interface, but because
- it isn't public, we're free to change it in the future.*/
-static void *op_url_stream_create_impl(OpusFileCallbacks *_cb,const char *_url,
- int _skip_certificate_check,const char *_proxy_host,unsigned _proxy_port,
- const char *_proxy_user,const char *_proxy_pass,OpusServerInfo *_info){
- const char *path;
- /*Check to see if this is a valid file: URL.*/
- path=op_parse_file_url(_url);
- if(path!=NULL){
- char *unescaped_path;
- void *ret;
- unescaped_path=op_string_dup(path);
- if(OP_UNLIKELY(unescaped_path==NULL))return NULL;
- ret=op_fopen(_cb,op_unescape_url_component(unescaped_path),"rb");
- _ogg_free(unescaped_path);
- return ret;
- }
-#if defined(OP_ENABLE_HTTP)
- /*If not, try http/https.*/
- else{
- OpusHTTPStream *stream;
- int ret;
- stream=(OpusHTTPStream *)_ogg_malloc(sizeof(*stream));
- if(OP_UNLIKELY(stream==NULL))return NULL;
- op_http_stream_init(stream);
- ret=op_http_stream_open(stream,_url,_skip_certificate_check,
- _proxy_host,_proxy_port,_proxy_user,_proxy_pass,_info);
- if(OP_UNLIKELY(ret<0)){
- op_http_stream_clear(stream);
- _ogg_free(stream);
- return NULL;
- }
- *_cb=*&OP_HTTP_CALLBACKS;
- return stream;
- }
-#else
- (void)_skip_certificate_check;
- (void)_proxy_host;
- (void)_proxy_port;
- (void)_proxy_user;
- (void)_proxy_pass;
- (void)_info;
- return NULL;
-#endif
-}
-
-/*The actual implementation of op_url_stream_vcreate().
- We have to do a careful dance here to avoid potential memory leaks if
- OpusServerInfo is requested, since this function is also used by
- op_vopen_url() and op_vtest_url().
- Even if this function succeeds, those functions might ultimately fail.
- If they do, they should return without having touched the OpusServerInfo
- passed by the application.
- Therefore, if this function succeeds and OpusServerInfo is requested, the
- actual info will be stored in *_info and a pointer to the application's
- storage will be placed in *_pinfo.
- If this function fails or if the application did not request OpusServerInfo,
- *_pinfo will be NULL.
- Our caller is responsible for copying *_info to **_pinfo if it ultimately
- succeeds, or for clearing *_info if it ultimately fails.*/
-void *op_url_stream_vcreate_impl(OpusFileCallbacks *_cb,
- const char *_url,OpusServerInfo *_info,OpusServerInfo **_pinfo,va_list _ap){
- int skip_certificate_check;
- const char *proxy_host;
- opus_int32 proxy_port;
- const char *proxy_user;
- const char *proxy_pass;
- OpusServerInfo *pinfo;
- skip_certificate_check=0;
- proxy_host=NULL;
- proxy_port=8080;
- proxy_user=NULL;
- proxy_pass=NULL;
- pinfo=NULL;
- for(;;){
- ptrdiff_t request;
- request=va_arg(_ap,char *)-(char *)NULL;
- /*If we hit NULL, we're done processing options.*/
- if(!request)break;
- switch(request){
- case OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST:{
- skip_certificate_check=!!va_arg(_ap,opus_int32);
- }break;
- case OP_HTTP_PROXY_HOST_REQUEST:{
- proxy_host=va_arg(_ap,const char *);
- }break;
- case OP_HTTP_PROXY_PORT_REQUEST:{
- proxy_port=va_arg(_ap,opus_int32);
- if(proxy_port<0||proxy_port>(opus_int32)65535)return NULL;
- }break;
- case OP_HTTP_PROXY_USER_REQUEST:{
- proxy_user=va_arg(_ap,const char *);
- }break;
- case OP_HTTP_PROXY_PASS_REQUEST:{
- proxy_pass=va_arg(_ap,const char *);
- }break;
- case OP_GET_SERVER_INFO_REQUEST:{
- pinfo=va_arg(_ap,OpusServerInfo *);
- }break;
- /*Some unknown option.*/
- default:return NULL;
- }
- }
- /*If the caller has requested server information, proxy it to a local copy to
- simplify error handling.*/
- *_pinfo=NULL;
- if(pinfo!=NULL){
- void *ret;
- opus_server_info_init(_info);
- ret=op_url_stream_create_impl(_cb,_url,skip_certificate_check,
- proxy_host,proxy_port,proxy_user,proxy_pass,_info);
- if(ret!=NULL)*_pinfo=pinfo;
- else opus_server_info_clear(_info);
- return ret;
- }
- return op_url_stream_create_impl(_cb,_url,skip_certificate_check,
- proxy_host,proxy_port,proxy_user,proxy_pass,NULL);
-}
-
-void *op_url_stream_vcreate(OpusFileCallbacks *_cb,
- const char *_url,va_list _ap){
- OpusServerInfo info;
- OpusServerInfo *pinfo;
- void *ret;
- ret=op_url_stream_vcreate_impl(_cb,_url,&info,&pinfo,_ap);
- if(pinfo!=NULL)*pinfo=*&info;
- return ret;
-}
-
-void *op_url_stream_create(OpusFileCallbacks *_cb,
- const char *_url,...){
- va_list ap;
- void *ret;
- va_start(ap,_url);
- ret=op_url_stream_vcreate(_cb,_url,ap);
- va_end(ap);
- return ret;
-}
-
-/*Convenience routines to open/test URLs in a single step.*/
-
-OggOpusFile *op_vopen_url(const char *_url,int *_error,va_list _ap){
- OpusFileCallbacks cb;
- OggOpusFile *of;
- OpusServerInfo info;
- OpusServerInfo *pinfo;
- void *source;
- source=op_url_stream_vcreate_impl(&cb,_url,&info,&pinfo,_ap);
- if(OP_UNLIKELY(source==NULL)){
- OP_ASSERT(pinfo==NULL);
- if(_error!=NULL)*_error=OP_EFAULT;
- return NULL;
- }
- of=op_open_callbacks(source,&cb,NULL,0,_error);
- if(OP_UNLIKELY(of==NULL)){
- if(pinfo!=NULL)opus_server_info_clear(&info);
- (*cb.close)(source);
- }
- else if(pinfo!=NULL)*pinfo=*&info;
- return of;
-}
-
-OggOpusFile *op_open_url(const char *_url,int *_error,...){
- OggOpusFile *ret;
- va_list ap;
- va_start(ap,_error);
- ret=op_vopen_url(_url,_error,ap);
- va_end(ap);
- return ret;
-}
-
-OggOpusFile *op_vtest_url(const char *_url,int *_error,va_list _ap){
- OpusFileCallbacks cb;
- OggOpusFile *of;
- OpusServerInfo info;
- OpusServerInfo *pinfo;
- void *source;
- source=op_url_stream_vcreate_impl(&cb,_url,&info,&pinfo,_ap);
- if(OP_UNLIKELY(source==NULL)){
- OP_ASSERT(pinfo==NULL);
- if(_error!=NULL)*_error=OP_EFAULT;
- return NULL;
- }
- of=op_test_callbacks(source,&cb,NULL,0,_error);
- if(OP_UNLIKELY(of==NULL)){
- if(pinfo!=NULL)opus_server_info_clear(&info);
- (*cb.close)(source);
- }
- else if(pinfo!=NULL)*pinfo=*&info;
- return of;
-}
-
-OggOpusFile *op_test_url(const char *_url,int *_error,...){
- OggOpusFile *ret;
- va_list ap;
- va_start(ap,_error);
- ret=op_vtest_url(_url,_error,ap);
- va_end(ap);
- return ret;
-}
diff --git a/thirdparty/opus/wincerts.c b/thirdparty/opus/wincerts.c
deleted file mode 100644
index b0e35aa352..0000000000
--- a/thirdparty/opus/wincerts.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE libopusfile SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE libopusfile SOURCE CODE IS (C) COPYRIGHT 2013 *
- * by the Xiph.Org Foundation and contributors http://www.xiph.org/ *
- * *
- ********************************************************************/
-
-/*This should really be part of OpenSSL, but there's been a patch [1] sitting
- in their bugtracker for over two years that implements this, without any
- action, so I'm giving up and re-implementing it locally.
-
- [1] <http://rt.openssl.org/Ticket/Display.html?id=2158>*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "internal.h"
-#if defined(OP_ENABLE_HTTP)&&defined(_WIN32)
-/*You must include windows.h before wincrypt.h and x509.h.*/
-# define WIN32_LEAN_AND_MEAN
-# define WIN32_EXTRA_LEAN
-# include <windows.h>
-/*You must include wincrypt.h before x509.h, too, or X509_NAME doesn't get
- defined properly.*/
-# include <wincrypt.h>
-# include <openssl/ssl.h>
-# include <openssl/err.h>
-# include <openssl/x509.h>
-
-static int op_capi_new(X509_LOOKUP *_lu){
- HCERTSTORE h_store;
- h_store=CertOpenStore(CERT_STORE_PROV_SYSTEM_A,0,0,
- CERT_STORE_OPEN_EXISTING_FLAG|CERT_STORE_READONLY_FLAG|
- CERT_SYSTEM_STORE_CURRENT_USER|CERT_STORE_SHARE_CONTEXT_FLAG,"ROOT");
- if(h_store!=NULL){
- _lu->method_data=(char *)h_store;
- return 1;
- }
- return 0;
-}
-
-static void op_capi_free(X509_LOOKUP *_lu){
- HCERTSTORE h_store;
- h_store=(HCERTSTORE)_lu->method_data;
-# if defined(OP_ENABLE_ASSERTIONS)
- OP_ALWAYS_TRUE(CertCloseStore(h_store,CERT_CLOSE_STORE_CHECK_FLAG));
-# else
- CertCloseStore(h_store,0);
-# endif
-}
-
-static int op_capi_retrieve_by_subject(X509_LOOKUP *_lu,int _type,
- X509_NAME *_name,X509_OBJECT *_ret){
- X509_OBJECT *obj;
- CRYPTO_w_lock(CRYPTO_LOCK_X509_STORE);
- obj=X509_OBJECT_retrieve_by_subject(_lu->store_ctx->objs,_type,_name);
- CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
- if(obj!=NULL){
- _ret->type=obj->type;
- memcpy(&_ret->data,&obj->data,sizeof(_ret->data));
- return 1;
- }
- return 0;
-}
-
-static int op_capi_get_by_subject(X509_LOOKUP *_lu,int _type,X509_NAME *_name,
- X509_OBJECT *_ret){
- HCERTSTORE h_store;
- if(_name==NULL)return 0;
- if(_name->bytes==NULL||_name->bytes->length<=0||_name->modified){
- if(i2d_X509_NAME(_name,NULL)<0)return 0;
- OP_ASSERT(_name->bytes->length>0);
- }
- h_store=(HCERTSTORE)_lu->method_data;
- switch(_type){
- case X509_LU_X509:{
- CERT_NAME_BLOB find_para;
- PCCERT_CONTEXT cert;
- X509 *x;
- int ret;
- /*Although X509_NAME contains a canon_enc field, that "canonical" [1]
- encoding was just made up by OpenSSL.
- It doesn't correspond to any actual standard, and since it drops the
- initial sequence header, won't be recognized by the Crypto API.
- The assumption here is that CertFindCertificateInStore() will allow any
- appropriate variations in the encoding when it does its comparison.
- This is, however, emphatically not true under Wine, which just compares
- the encodings with memcmp().
- Most of the time things work anyway, though, and there isn't really
- anything we can do to make the situation better.
-
- [1] A "canonical form" is defined as the one where, if you locked 10
- mathematicians in a room and asked them to come up with a
- representation for something, it's the answer that 9 of them would
- give you back.
- I don't think OpenSSL's encoding qualifies.*/
- find_para.cbData=_name->bytes->length;
- find_para.pbData=(unsigned char *)_name->bytes->data;
- cert=CertFindCertificateInStore(h_store,X509_ASN_ENCODING,0,
- CERT_FIND_SUBJECT_NAME,&find_para,NULL);
- if(cert==NULL)return 0;
- x=d2i_X509(NULL,(const unsigned char **)&cert->pbCertEncoded,
- cert->cbCertEncoded);
- CertFreeCertificateContext(cert);
- if(x==NULL)return 0;
- ret=X509_STORE_add_cert(_lu->store_ctx,x);
- X509_free(x);
- if(ret)return op_capi_retrieve_by_subject(_lu,_type,_name,_ret);
- }break;
- case X509_LU_CRL:{
- CERT_INFO cert_info;
- CERT_CONTEXT find_para;
- PCCRL_CONTEXT crl;
- X509_CRL *x;
- int ret;
- ret=op_capi_retrieve_by_subject(_lu,_type,_name,_ret);
- if(ret>0)return ret;
- memset(&cert_info,0,sizeof(cert_info));
- cert_info.Issuer.cbData=_name->bytes->length;
- cert_info.Issuer.pbData=(unsigned char *)_name->bytes->data;
- memset(&find_para,0,sizeof(find_para));
- find_para.pCertInfo=&cert_info;
- crl=CertFindCRLInStore(h_store,0,0,CRL_FIND_ISSUED_BY,&find_para,NULL);
- if(crl==NULL)return 0;
- x=d2i_X509_CRL(NULL,(const unsigned char **)&crl->pbCrlEncoded,
- crl->cbCrlEncoded);
- CertFreeCRLContext(crl);
- if(x==NULL)return 0;
- ret=X509_STORE_add_crl(_lu->store_ctx,x);
- X509_CRL_free(x);
- if(ret)return op_capi_retrieve_by_subject(_lu,_type,_name,_ret);
- }break;
- }
- return 0;
-}
-
-/*This is not const because OpenSSL doesn't allow it, even though it won't
- write to it.*/
-static X509_LOOKUP_METHOD X509_LOOKUP_CAPI={
- "Load Crypto API store into cache",
- op_capi_new,
- op_capi_free,
- NULL,
- NULL,
- NULL,
- op_capi_get_by_subject,
- NULL,
- NULL,
- NULL
-};
-
-int SSL_CTX_set_default_verify_paths_win32(SSL_CTX *_ssl_ctx){
- X509_STORE *store;
- X509_LOOKUP *lu;
- /*We intentionally do not add the normal default paths, as they are usually
- wrong, and are just asking to be used as an exploit vector.*/
- store=SSL_CTX_get_cert_store(_ssl_ctx);
- OP_ASSERT(store!=NULL);
- lu=X509_STORE_add_lookup(store,&X509_LOOKUP_CAPI);
- if(lu==NULL)return 0;
- ERR_clear_error();
- return 1;
-}
-
-#endif
diff --git a/thirdparty/opus/winerrno.h b/thirdparty/opus/winerrno.h
deleted file mode 100644
index 32a90b4ee1..0000000000
--- a/thirdparty/opus/winerrno.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE libopusfile SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE libopusfile SOURCE CODE IS (C) COPYRIGHT 2012 *
- * by the Xiph.Org Foundation and contributors http://www.xiph.org/ *
- * *
- ********************************************************************/
-#if !defined(_opusfile_winerrno_h)
-# define _opusfile_winerrno_h (1)
-
-# include <errno.h>
-# include <winerror.h>
-
-/*These conflict with the MSVC errno.h definitions, but we don't need to use
- the original ones in any file that deals with sockets.
- We could map the WSA errors to the errno.h ones (most of which are only
- available on sufficiently new versions of MSVC), but they aren't ordered the
- same, and given how rarely we actually look at the values, I don't think
- it's worth a lookup table.*/
-# undef EWOULDBLOCK
-# undef EINPROGRESS
-# undef EALREADY
-# undef ENOTSOCK
-# undef EDESTADDRREQ
-# undef EMSGSIZE
-# undef EPROTOTYPE
-# undef ENOPROTOOPT
-# undef EPROTONOSUPPORT
-# undef EOPNOTSUPP
-# undef EAFNOSUPPORT
-# undef EADDRINUSE
-# undef EADDRNOTAVAIL
-# undef ENETDOWN
-# undef ENETUNREACH
-# undef ENETRESET
-# undef ECONNABORTED
-# undef ECONNRESET
-# undef ENOBUFS
-# undef EISCONN
-# undef ENOTCONN
-# undef ETIMEDOUT
-# undef ECONNREFUSED
-# undef ELOOP
-# undef ENAMETOOLONG
-# undef EHOSTUNREACH
-# undef ENOTEMPTY
-
-# define EWOULDBLOCK (WSAEWOULDBLOCK-WSABASEERR)
-# define EINPROGRESS (WSAEINPROGRESS-WSABASEERR)
-# define EALREADY (WSAEALREADY-WSABASEERR)
-# define ENOTSOCK (WSAENOTSOCK-WSABASEERR)
-# define EDESTADDRREQ (WSAEDESTADDRREQ-WSABASEERR)
-# define EMSGSIZE (WSAEMSGSIZE-WSABASEERR)
-# define EPROTOTYPE (WSAEPROTOTYPE-WSABASEERR)
-# define ENOPROTOOPT (WSAENOPROTOOPT-WSABASEERR)
-# define EPROTONOSUPPORT (WSAEPROTONOSUPPORT-WSABASEERR)
-# define ESOCKTNOSUPPORT (WSAESOCKTNOSUPPORT-WSABASEERR)
-# define EOPNOTSUPP (WSAEOPNOTSUPP-WSABASEERR)
-# define EPFNOSUPPORT (WSAEPFNOSUPPORT-WSABASEERR)
-# define EAFNOSUPPORT (WSAEAFNOSUPPORT-WSABASEERR)
-# define EADDRINUSE (WSAEADDRINUSE-WSABASEERR)
-# define EADDRNOTAVAIL (WSAEADDRNOTAVAIL-WSABASEERR)
-# define ENETDOWN (WSAENETDOWN-WSABASEERR)
-# define ENETUNREACH (WSAENETUNREACH-WSABASEERR)
-# define ENETRESET (WSAENETRESET-WSABASEERR)
-# define ECONNABORTED (WSAECONNABORTED-WSABASEERR)
-# define ECONNRESET (WSAECONNRESET-WSABASEERR)
-# define ENOBUFS (WSAENOBUFS-WSABASEERR)
-# define EISCONN (WSAEISCONN-WSABASEERR)
-# define ENOTCONN (WSAENOTCONN-WSABASEERR)
-# define ESHUTDOWN (WSAESHUTDOWN-WSABASEERR)
-# define ETOOMANYREFS (WSAETOOMANYREFS-WSABASEERR)
-# define ETIMEDOUT (WSAETIMEDOUT-WSABASEERR)
-# define ECONNREFUSED (WSAECONNREFUSED-WSABASEERR)
-# define ELOOP (WSAELOOP-WSABASEERR)
-# define ENAMETOOLONG (WSAENAMETOOLONG-WSABASEERR)
-# define EHOSTDOWN (WSAEHOSTDOWN-WSABASEERR)
-# define EHOSTUNREACH (WSAEHOSTUNREACH-WSABASEERR)
-# define ENOTEMPTY (WSAENOTEMPTY-WSABASEERR)
-# define EPROCLIM (WSAEPROCLIM-WSABASEERR)
-# define EUSERS (WSAEUSERS-WSABASEERR)
-# define EDQUOT (WSAEDQUOT-WSABASEERR)
-# define ESTALE (WSAESTALE-WSABASEERR)
-# define EREMOTE (WSAEREMOTE-WSABASEERR)
-
-#endif